Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2921048pxa; Tue, 18 Aug 2020 01:21:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdUiOCdMhMvChckiRJNfSRUGoPYDHGT7w3JWukcJRBVEafC8Xl+/2Ihn6N7jDX90GCfZUg X-Received: by 2002:a17:906:2f07:: with SMTP id v7mr19790435eji.313.1597738868313; Tue, 18 Aug 2020 01:21:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597738868; cv=none; d=google.com; s=arc-20160816; b=YL/Rezi2a2nQvu1W38EfUgW2aHp5fZI8IxA2UarZ4AuZKogslaI/iBff1qhi7DUMpS Wsf9zu6eTCeKhOpYCd+zz9BpqZKpn/xMw9unPlrZtLoHinAcDNSHxQ1nc7ncDIf6jpfN 5eXdYG9d11Mcpi0t3kP+P5sPwyb3Zhtw74QR73RuisXUPot8QEtN2ZQGhjhqzARFcCHC KgSCLfQymWqOBfNqVwxyki2VSj5hqDv4fgEi71/2MvZm+z+2JAJMVfHoCxwQyy9xrG44 aqtqLMeFugqcmakLE9P1rZyuOnZK3mBgr+WAxOa5Q6ksPTMY+Atq/AhcQt4E0uD5IcM0 B/wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=KBMoIX0wDDizUWSV+BZ1wgLVBF7AgO627hD9co2j+K8=; b=yWNgoCBGpwL8xC8YtXeaYPyjdJy72x2WJdLrb7qZC2FNwrN8PjsPRpUGup3Y1oJ+oU okIB3OMNONJWonhro25PZNnvITzcwGdoAQR1yKZNRQQ/l8rylT2zpVZF2DUFjsszQto7 9DevXePp9ZubpnTpg3OFOVMJyF2wFmFnNv2mzsdybTXFinGP1N9f8OJZO9f2FMNn5P4u wl4Fd6S5Qs8IYWHSO7L4EKY21+AqBgR2gQiRZi1xhcLE/1NnEvaZfdP4r073cjSiIS6R R39C8zS3cYAub7b823L4Iuao+3rCQ/bDa7ll3QBnFtbG0rwiOdfTwZllAKVTHTQ+s04m 7DVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=NJtnJvq8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gr23si13068070ejb.132.2020.08.18.01.20.44; Tue, 18 Aug 2020 01:21:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=NJtnJvq8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726593AbgHRIR4 (ORCPT + 99 others); Tue, 18 Aug 2020 04:17:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726043AbgHRIRz (ORCPT ); Tue, 18 Aug 2020 04:17:55 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7927C061389 for ; Tue, 18 Aug 2020 01:17:54 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id 3so16118805wmi.1 for ; Tue, 18 Aug 2020 01:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forissier-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KBMoIX0wDDizUWSV+BZ1wgLVBF7AgO627hD9co2j+K8=; b=NJtnJvq8/z39J3VudGdLJM9ahaPuoBAe+pfv0cKRVhvmDXVHYUltRJIo7XM4Ah9840 DtLg1LCLQvEbnPj/jWaWBt8qz2p2MJotiIvPYVomKfINHV+kPCwp4kd4+Ik53tEuTdYH kHFxGZdhnVHdY/09JbZJAroYaOZBHuj1DkxYcUU4uf9Ftc0P9mJahqnRA9J8fdKAOB3t El+4HagOL3BVbHSFUnNi/Zi7+Z+p3RW2qEo/Z77VUp0VPhQNMRts3l/Y345A7iWshHKi GQaPCD4so2tpkUGwyzYLx4HZHP8EYNrPG9zP/tIkR9FePIMJbYO4PRMpdHsEr3s6kofA PefA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KBMoIX0wDDizUWSV+BZ1wgLVBF7AgO627hD9co2j+K8=; b=VMcgj9KR1fViFE2bSUPBuoGUS+3X+O8ay9ykYZpt5YOJzDx5z9U7ulVC87ZX3W1OOq TFw7Uu8XK4CQFDuPNRtddUpYDv+t+796blLDnNDUkRwUa4rNdKMMpe3AQ4OGV9wnR1wI +vA7mL84NMehumpw5vXGJj+laI0Zg6Sc47oa5wXB4ZQx/QLaMniLNwZRFT9/ysImPSY6 JZT592+gUDuzZ00XxQ+o/mRtFHKNOvtoOTNXDWJoiDYRuu8VRAD8IbDopO+TRvTCf+d1 B9ou05582Hf3b0ZepLz7jsUGTzzIQBJoDx6OXB1wKz2AZ/DPdRrY+1NpgpH/Nw4fKg0q BeMg== X-Gm-Message-State: AOAM530gvMS0l3zxdNaESEEDlIIi7s7rGr9k+0vooIvu+M2Vp6ZDB79F JkwfOeQ0kRYG80IDp24tULeQig== X-Received: by 2002:a7b:c056:: with SMTP id u22mr18310189wmc.188.1597738673337; Tue, 18 Aug 2020 01:17:53 -0700 (PDT) Received: from matebook.home ([2a01:e0a:3cb:7bb0:8875:d92:eae5:ceb5]) by smtp.gmail.com with ESMTPSA id h5sm37443151wrc.97.2020.08.18.01.17.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Aug 2020 01:17:52 -0700 (PDT) From: Jerome Forissier To: Andy Whitcroft , Joe Perches , linux-kernel@vger.kernel.org Cc: Jerome Forissier Subject: [PATCH v4] checkpatch: add --kconfig-prefix Date: Tue, 18 Aug 2020 10:17:32 +0200 Message-Id: <20200818081732.800449-1-jerome@forissier.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200817095056.31001-1-jerome@forissier.org> References: <20200817095056.31001-1-jerome@forissier.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Kconfig allows to customize the CONFIG_ prefix via the $CONFIG_ environment variable. Out-of-tree projects may therefore use Kconfig with a different prefix, or they may use a custom configuration tool which does not use the CONFIG_ prefix at all. Such projects may still want to adhere to the Linux kernel coding style and run checkpatch.pl. One example is OP-TEE [1] which does not use Kconfig but does have configuration options prefixed with CFG_. It also mostly follows the kernel coding style and therefore being able to use checkpatch is quite valuable. To make this possible, add the --kconfig-prefix command line option. [1] https://github.com/OP-TEE/optee_os Signed-off-by: Jerome Forissier Acked-by: Joe Perches --- scripts/checkpatch.pl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) v4: - Add missing link - Apply Joe's Acked-by: tag v3: - Use ${CONFIG_} instead of $CONFIG_. - Expand the commit message to mention OP-TEE. v2: - Use a command-line/.checkpatch.conf option instead of the _CONFIG environment variable. - Changed the patch subject (was: "checkpatch: get CONFIG_ prefix from the environment"). diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 2cbeae6d9aee..fd65f8c774ed 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -65,6 +65,7 @@ my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANC # git output parsing needs US English output, so first set backtick child process LANGUAGE my $git_command ='export LANGUAGE=en_US.UTF-8; git'; my $tabsize = 8; +my ${CONFIG_} = "CONFIG_"; sub help { my ($exitcode) = @_; @@ -127,6 +128,8 @@ Options: --typedefsfile Read additional types from this file --color[=WHEN] Use colors 'always', 'never', or only when output is a terminal ('auto'). Default is 'auto'. + --kconfig-prefix=WORD use WORD as a prefix for Kconfig symbols (default + ${CONFIG_}) -h, --help, --version display this help and exit When FILE is - read standard input. @@ -235,6 +238,7 @@ GetOptions( 'color=s' => \$color, 'no-color' => \$color, #keep old behaviors of -nocolor 'nocolor' => \$color, #keep old behaviors of -nocolor + 'kconfig-prefix=s' => \${CONFIG_}, 'h|help' => \$help, 'version' => \$help ) or help(1); @@ -6528,16 +6532,16 @@ sub process { } # check for IS_ENABLED() without CONFIG_ ($rawline for comments too) - if ($rawline =~ /\bIS_ENABLED\s*\(\s*(\w+)\s*\)/ && $1 !~ /^CONFIG_/) { + if ($rawline =~ /\bIS_ENABLED\s*\(\s*(\w+)\s*\)/ && $1 !~ /^${CONFIG_}/) { WARN("IS_ENABLED_CONFIG", - "IS_ENABLED($1) is normally used as IS_ENABLED(CONFIG_$1)\n" . $herecurr); + "IS_ENABLED($1) is normally used as IS_ENABLED(${CONFIG_}$1)\n" . $herecurr); } # check for #if defined CONFIG_ || defined CONFIG__MODULE - if ($line =~ /^\+\s*#\s*if\s+defined(?:\s*\(?\s*|\s+)(CONFIG_[A-Z_]+)\s*\)?\s*\|\|\s*defined(?:\s*\(?\s*|\s+)\1_MODULE\s*\)?\s*$/) { + if ($line =~ /^\+\s*#\s*if\s+defined(?:\s*\(?\s*|\s+)(${CONFIG_}[A-Z_]+)\s*\)?\s*\|\|\s*defined(?:\s*\(?\s*|\s+)\1_MODULE\s*\)?\s*$/) { my $config = $1; if (WARN("PREFER_IS_ENABLED", - "Prefer IS_ENABLED() to CONFIG_ || CONFIG__MODULE\n" . $herecurr) && + "Prefer IS_ENABLED() to ${CONFIG_} || ${CONFIG_}_MODULE\n" . $herecurr) && $fix) { $fixed[$fixlinenr] = "\+#if IS_ENABLED($config)"; } -- 2.25.1