From patchwork Mon Sep 12 06:46:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12973320 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 076CFECAAD5 for ; Mon, 12 Sep 2022 06:46:48 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.405448.647906 (Exim 4.92) (envelope-from ) id 1oXdDG-0006Vd-9m; Mon, 12 Sep 2022 06:46:34 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 405448.647906; Mon, 12 Sep 2022 06:46:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oXdDG-0006VW-6f; Mon, 12 Sep 2022 06:46:34 +0000 Received: by outflank-mailman (input) for mailman id 405448; Mon, 12 Sep 2022 06:46:33 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oXdDE-0006VQ-Vo for xen-devel@lists.xenproject.org; Mon, 12 Sep 2022 06:46:32 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2080.outbound.protection.outlook.com [40.107.22.80]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a2967975-3266-11ed-a31c-8f8a9ae3403f; Mon, 12 Sep 2022 08:46:31 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DB9PR04MB8347.eurprd04.prod.outlook.com (2603:10a6:10:245::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Mon, 12 Sep 2022 06:46:30 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::59bc:901a:98a7:76d4]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::59bc:901a:98a7:76d4%5]) with mapi id 15.20.5612.022; Mon, 12 Sep 2022 06:46:30 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a2967975-3266-11ed-a31c-8f8a9ae3403f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AMq6+CkqdrAr42k5XudWqiAX90MYDbd32ZXKkzPiPyj3F2th+Mn0XknOH0sIbelcq/n24vwMDn2gJpk6bW5ushYuNVMvzUek9dB1y1gU8ZOljYaBborVHNFhorMRFJAyUzdrtKuUFJlBF5bvAtWP/HbFQ+MOevc6ioq8JOu7bt0l3CeIBdDVOVHTQrUb2c046S+mjQceewejGMKso8WrSOw3OJA7A7vWUJZZpW6CAiqcfxVPgn1nBVRfLEResueJySAFTRFf7Nw/EZ4FWpmb68sgGc0S1dVA3FTl0MjcTNXBaswWSU9poAI0razOnai27aEKaU4o87/7sCXMDuxyhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NbFs4FLfoe7rY9uiZUQIJxZ8jXRz6b8XdHmvqPqvCOE=; b=e7qseqA/a5TzRTAaIvkTjDIdPHWD5cSWsDQGWerL+WDWSrKuNDH5B2M8r9hGqQwtnzzkSCMgl/KF0Ewcw15TELULmfFEJ2NzsadzSQZ70bVx23z5bey1GCqkHRF2+6f9gjAzkaB4uJzDS/lM5BL48yXGdKCnWAWOgo9o2Dsq2A+gA0bkT5RngezTOKORFf2GKq0k7wSxYFdweE/kGVDJGsIxXpuzdwUdke23+Ya0kGHgd4jLX2E+Onl7Af2jFeo0z+Q+hddla+BBI6rdgLSrMaE5otc18H5kB2Ik+iqBkb10M7qjTwp/cjVjiyVWpt3WlCR/c9oRybx8FsZp5QxwJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NbFs4FLfoe7rY9uiZUQIJxZ8jXRz6b8XdHmvqPqvCOE=; b=UCZpuUTb3Bs6wY7qaZKF96/MlST4sBL/apMLbrp02GHmLmlD1sDPmTL7ASBVHGhhMvyeiLTt3/VSAgXwg6GDreoAI5fkPLXLGVwm/Ga6XZKpPxdWnUUoPhOyQ2Wo7YaXbEGzNEojkAH4Y7TMzQkfy94+lPe31mWnWSfRYYs4xSQVNkD5Szhviq5//HkXSj8fg/w9oZIdg5I+NbjjJ72Yc823tQT5DsZzpo3OXHCkyIrjRWHeXo9JO/Oq+vyYwbJaUaZn98pGc1zHtDP2Aylh4NAo/mMEzpxt8IbUdkrJrVwDLDxD3cUaQdUHWIstxORubAItGWhGEt3A3897k3gs/Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Mon, 12 Sep 2022 08:46:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: Jan Beulich Subject: [PATCH v2] build: correct cppcheck-misra make rule To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Julien Grall , Stefano Stabellini , Wei Liu , Bertrand Marquis , Anthony Perard Content-Language: en-US X-ClientProxiedBy: FR0P281CA0129.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB9PR04MB8347:EE_ X-MS-Office365-Filtering-Correlation-Id: 7769b3c2-bdff-4bd6-d38a-08da948a8608 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vvpB80vfdOhGhmZPMcxwlzSpAddGkrnevzuRiUzbJ+vjHJYGMZjSJXlKPPAfa7k/1wNo7kk8Lb7PRPs1DpFH3+3PRuHeXQydSoDjz+glQbwoFNIrNkswoF0Poh8kiNpWsr5XsHPHIfh6mdrOo4TboTY2A1DtKPIbRfepdI4Cq8AwnZX08Ihre649lWPVRA0feBLYkEs4aVI2Qo2KD2girvjY5/dKWBNcYeXtRJCIFhjS6f2CQ3tgYMULsDmmwnLxICd9pYsWnFn7JgdrycI0+sIE4B74onmVK3/0Ler++0+f1FDyyrD4Tvt0bYL/aJHINW7qFs461NQ02rxZ8wUrC/eLfj4vEmu/rQhm583YWEMiVtgrUm6XobKfnGBHMUAJxFgkpPLyifRCXaeFG8GtvGyq0dSlQVPJfASawxlVakwU197JMgAl7d9XQk7CqW16Tj11sErSQv9XOuYS5fB2kH3WsGAhmRVZ0BMbWzn07QwJgyfE8Zrmr9VqbrhghLYZcx6ZIa8p6po9E4lhGTwNTFtbdWJV/PVU2Qaql9bttnH3TzrK2aA9uYQ/DA5cj+hf0VOgAU0gjSZ9v14Ng6RynHa9Lfobt/NkOC1UDNySMgIGqO6Ca7tFPj3gaJWjutkYLMn0JY/4wRqJQ1J3WWaZdEgbxwN7VhadAlD0LKCmsVkXIZfmg+t7O/3C8THIIBEqRAdtggMSiegSAsnMXFzNDFq98TVykXONyFJYs6OCkIYF2oKedUJCQc8zQAsEmd2l5jZZjirEHsFIPCFpO9xqsEGX++KFDpf1m3nHnGPJWqE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(396003)(346002)(136003)(366004)(376002)(66476007)(38100700002)(31686004)(86362001)(31696002)(4326008)(8676002)(66556008)(66946007)(36756003)(6506007)(478600001)(83380400001)(2616005)(6512007)(26005)(6486002)(41300700001)(6916009)(186003)(316002)(54906003)(2906002)(8936002)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?E56CnlzhewTPrLeXIBCP2iCRlLFg?= =?utf-8?q?zAojFuEE2RXtBBvR4bz5sehxREFvCp+EaiAxCl4nYiH3bm65/wdgg+wN24GjuHfOp?= =?utf-8?q?IIf2xnEjy5TcsqSSfvD+JqQq4ZgXCH85oGI97xTLF7UPPVl1GrytR9jnUA7TU11ez?= =?utf-8?q?IXf/4aqPUuxDtLSb4ltfNMDdSjIAYwB4xPfVxWVt6cELloThHC+7fjPOn5iiZ1izo?= =?utf-8?q?CkQBtPsMuafCgqdAEgSaR/OkhEMkYdEEOJCpySgGIHbxfRL3Y9/qhmJv3mIda9/1l?= =?utf-8?q?YKDwewGVi1GA+XHRgXbzdQGmOtG/aDmj8yTI7oAczhEoyuxJmmX/PbQ354Mrw1YVq?= =?utf-8?q?4sycy9z2r7C9E6MyexzdtYYdAERKVD8PjrrVcaB15SCrTHjlN+xD7r2D34iHPfPd5?= =?utf-8?q?PDYPEOtWEJm1dkvwOhjt6mrc0vqiHOx2HFGwojCM853JwHkkF2GQMBwBQiOSPEaxT?= =?utf-8?q?bXY8xsS+l/lPnkBy1XPP8al/SAj813d9fjI9YYrfEvZJ71QweY4AdP8BSxH1O5tva?= =?utf-8?q?VwvnZtiW8zVqUMUtHndTS9ZR60qUOvUYi3QC5QguTrkLP0ggKYbJR6FGY/KBEi42N?= =?utf-8?q?kBO7LIOg8Mw0xhnWzACGB886+BY2FHg7wVHEbsNKt5GQjZpXULsiIWTpRcABH/xAC?= =?utf-8?q?31Vu367Cbkfp3z3ATsIfnpkdlvzUyfMZQdgpFb+T9IhmcysUTf3BsSFiEYtOhQbkT?= =?utf-8?q?KEeDyMheIfNS8M2mVDL+iA6HpyYA3mOHMyyRA6wY3QzKQ7HzGBx+NXSxJqegb9BxV?= =?utf-8?q?9asbf3nqyH88hpNZdTy32QywccCr0ohIy+pCGBXwOUyFhIo0417xJFWQkXi9qvd9y?= =?utf-8?q?fbdhseF/U6tne4cuFbOrrMk+x4MMu3SFmYIy5RkYKlxQbJRtsCGicYO8T7smV7xSq?= =?utf-8?q?qCc8g6qnp4QL1BqJbWqhWGPHbjzX6tyx156Lb3ChcNmYbOYmFrtd6iDRmc1kjfY1x?= =?utf-8?q?Wwu9WDilzO8VkNcFhz8Ghc4s8jg9gVjdacbXDZUB8AW4cplzlQhlNjOWsqjSMs0Ke?= =?utf-8?q?ntl1tYF42yPAW0rEGJdx9UiJD/43zbbTCXTOXsbWyE0UYeuuo1wgJMbPvQqpGqahb?= =?utf-8?q?nzZOKhb9hV39vXgXfUOypZbaIBbZlvbLUXUewPN+smkA1kcbV7IJqh5aEZkUTj0LP?= =?utf-8?q?NDFGHj7UWzjETDuZNolgdPrb9Kz67p0rvYS5l8qRbOt23HIS+5xO2VkSjg+I2ihww?= =?utf-8?q?haSDI7792kBVVeeaDciIfUtjEwLXacn7fVcL7QI0RjZYVvw23mvjHkQ2yp8N7B8Jm?= =?utf-8?q?o67iVSXXIVyF6ELRzhOPUwmfr789MOVgnXcy2CbhVwqn9rifIvUOb6uJvzPQXYNw7?= =?utf-8?q?FfeJMHjSoqfovU6Fq7f8rVvEHPAoEj6fVK9RVc6/v5RhEBAH0f26kOSU0ujgcO78n?= =?utf-8?q?4ImZHskdRDuur0SCoGSAUYi0DRV14UZzZg1u+HkSbHW8NRjbF6Ns5a3RPpLzf2uoc?= =?utf-8?q?yrLsLM8dAPU+EBuXyAZqH6GvVUEz+Ku/cwqhNTGc6UwadA383tCZWd1sotAyZAGo1?= =?utf-8?q?6wP4rmWQG0i+?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7769b3c2-bdff-4bd6-d38a-08da948a8608 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2022 06:46:30.2875 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L+WO7xJrd5EIMZbRVdhTAL1UzfLtytZ0gieBgJt0FkYURneSnPRPZ+Fwj9IttFOKxOoV0YOq3x4aoQneAwtmEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8347 Having cppcheck-misra.json depend on cppcheck-misra.txt does not properly address the multiple targets problem. If cppcheck-misra.json is deleted from the build tree but cppcheck-misra.txt is still there, nothing will re-generate cppcheck-misra.json. With GNU make 4.3 or newer we could use the &: grouped target separator, but since we support older make as well we need to use some other mechanism. Convert the rule to a pattern one (with "cppcheck" kind of arbitrarily chosen as the stem), thus making known to make that both files are created by a single command invocation. Since, as a result, the JSON file is now "intermediate" from make's perspective, prevent it being deleted again by making it a prereq of .PRECIOUS. Fixes: 57caa5375321 ("xen: Add MISRA support to cppcheck make rule") Signed-off-by: Jan Beulich Reviewed-by: Bertrand Marquis --- v2: Add comment. Add Fixes: tag. --- It has been bothering me for a while that I made a bad suggestion during review; I'm sorry for that. --- a/xen/Makefile +++ b/xen/Makefile @@ -746,11 +746,12 @@ cppcheck-version: # documentation file. Also generate a json file with the right arguments for # cppcheck in json format including the list of rules to ignore. # -cppcheck-misra.txt: $(XEN_ROOT)/docs/misra/rules.rst $(srctree)/tools/convert_misra_doc.py - $(Q)$(PYTHON) $(srctree)/tools/convert_misra_doc.py -i $< -o $@ -j $(@:.txt=.json) - -# convert_misra_doc is generating both files. -cppcheck-misra.json: cppcheck-misra.txt +# convert_misra_doc.py, producing both targets at the same time, should be +# executed only once. Utilize a pattern rule to achieve this effect, with the +# stem kind of arbitrarily chosen to be "cppcheck". +.PRECIOUS: %-misra.json +%-misra.txt %-misra.json: $(XEN_ROOT)/docs/misra/rules.rst $(srctree)/tools/convert_misra_doc.py + $(Q)$(PYTHON) $(srctree)/tools/convert_misra_doc.py -i $< -o $*-misra.txt -j $*-misra.json # Put this in generated headers this way it is cleaned by include/Makefile $(objtree)/include/generated/compiler-def.h: