Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp944515pxu; Wed, 2 Dec 2020 07:17:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJxUJR0DIaziA3BaY7DXpeo0BkgOxq3UkZLzUPViE1VhlRRQExjyUrQP0Ts1yers2eG0uigA X-Received: by 2002:a17:906:6d0b:: with SMTP id m11mr262633ejr.230.1606922259190; Wed, 02 Dec 2020 07:17:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606922259; cv=none; d=google.com; s=arc-20160816; b=ntQPzUDeNNHCN6CR8cL3i2SCRVeo/+mjV+5/mpsfKwHLWkvQH/WquMOCSErmMtvPgh hOVbuvkNsYzwSYa6HWs6/8kv5d419x0LF8zl1aHiFbyR86dRsYBcMczcE+/zr4yc8a00 Jc1aajB1zJEuakJs1yLj8y5YnjwEiYQoMfPkL3CY1di5gd2hoQeKs57vFaVpK2JOSueC k/xViEtYZm7Fg6JjSXJNH4bWUZI4UIBVLvPuhtgAhrU/2umbaQoM5QrZPdIHk/z+y88i mrOKQYf3QptoANm4T6cYgiKrLWvQr5PhCffV4iJbYOqWkIMSm7PKV/b+PUC2hru1sOFA Pk/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :sender:dkim-signature; bh=QqJF4A6O3nLNI0rY+zC99vFcx7l8dIoUknmC7mSKqg8=; b=qWqd3Hh0reTRSmzgEUGMoDXDfhNsofLl1BSed/Po7Fv/oAHoKMFXtljHLbm9QeFqD0 Gy8P+R3FrOlhTV3TRP3yQ3t/I1QoLI1yHl/4t5O+iEGzol8Emgsw35PWDbUgbCQtO9bf izlBZStgsfElWDiIvIlGEesT2sOMdyoQiFHLU7bs74erQK0OzrN51btCgFdY7LkOq9Qp 2oLzu6b4goyz6SWG9PF2XTO0maqQrobeqvhMnPHIIaBevEmd3z2zMD0mnOA9HEcHs8GS cFL6PlhAxxrhgepR4KQCk0R1IFzbV2skRzfa9H78E5N+wFNKz6CrVrX77s/Sf/PZxTC0 bchA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=EoUHrSr4; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p20si136092ejx.41.2020.12.02.07.17.14; Wed, 02 Dec 2020 07:17:39 -0800 (PST) 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=@google.com header.s=20161025 header.b=EoUHrSr4; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729094AbgLBPNc (ORCPT + 99 others); Wed, 2 Dec 2020 10:13:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727315AbgLBPNb (ORCPT ); Wed, 2 Dec 2020 10:13:31 -0500 Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 807E0C0613D4 for ; Wed, 2 Dec 2020 07:12:51 -0800 (PST) Received: by mail-qt1-x849.google.com with SMTP id z8so1606535qti.17 for ; Wed, 02 Dec 2020 07:12:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=QqJF4A6O3nLNI0rY+zC99vFcx7l8dIoUknmC7mSKqg8=; b=EoUHrSr4R3GR5xGAC80j/tthJ4QasodNiPqymZrb2TbeZCSOBgcZaw3ZuXb5E1iW4D 6U5i/MDMvREtvkPnSdQ3q0KFk0P6VMAQjzl7WRW3/L/IE6Znw+gGsBaPl5yqtImD6bz1 0LyTqnKJP1v5GY/sFmenAORypi/VDub3z/bCRHHEtN2Zwj+JbdyNRoaMojrm+HsY5qqY fbQ+YdATbXbVuNH+ThROrbR/3RbFRNLYpERjNicPg4zxGrm6WxZr/9RYvcx7VnFJxWj0 3BghIczMVv9jPaLyZ3UbnTVET0XZYUIG6b1IklJgF7q5UEEYU0jcI0voJgSdq80jWx1m b65Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=QqJF4A6O3nLNI0rY+zC99vFcx7l8dIoUknmC7mSKqg8=; b=pWy+EQg0MURWtTI4buhYTVEI6gSdHGdDsnBiLVQI1wIdSuimFel13JWvnpABDFeND8 JAPSuaKab0gwwwL69ZogSbC+9KmQKdSONuLNI3NpZaxrp9dyAhlGGIQbZburMCwFvW0S ZIAiLu4oIKKGgttRTPEl6i9qb33c2bfkYkqHYHZzTFe9SZfvIUcSy/v6JqIVni6La66Q YKBSotuklrSptpsOC693JP6LSpS1NxfSurBX0Hdtc+zLqJqJG/8R8fziCtU6drRlYPyK b8Q1rJqm166UA5/Qh7VgqL+XNiG1LgjQvJtqXKorTyJbZmGfnNv0oAAaPfLcDAMrmnHL dwMw== X-Gm-Message-State: AOAM531xsjSPcLyvQK58AB6qZTm3Qbx0NhYZwv+xmZIuO+V0LHfvj33c 62OTj9ITosoI32dx+qv4BlWhXQ3o1+kBeRDA1GRa7O+anjjhtkANxW1T3lcZzx07/wzdOOUnLxU SsEwBAwWIdrv1CTyvQR1DiUfz5wM1H7VXtN6gZziR04GXFI8HojiSHym/1ztd3I9TMT0FsBYgcl E= Sender: "maennich via sendgmr" X-Received: from lux.lon.corp.google.com ([2a00:79e0:d:210:7220:84ff:fe09:a3aa]) (user=maennich job=sendgmr) by 2002:a05:6214:24:: with SMTP id b4mr2839664qvr.29.1606921970522; Wed, 02 Dec 2020 07:12:50 -0800 (PST) Date: Wed, 2 Dec 2020 15:12:39 +0000 Message-Id: <20201202151238.3776616-1-maennich@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.29.2.454.gaff20da3a2-goog Subject: [PATCH] scripts: merge_config: add strict mode to fail upon any redefinition From: Matthias Maennich To: linux-kernel@vger.kernel.org Cc: kernel-team@android.com, maennich@google.com, linux-kbuild@vger.kernel.org, Masahiro Yamada Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When merging configuration fragments, it might be of interest to identify mismatches (redefinitions) programmatically. Hence add the option -s (strict mode) to instruct merge_config.sh to bail out in case any redefinition has been detected. With strict mode, warnings are emitted as before, but the script terminates with rc=1. If -y is set to define "builtin having precedence over modules", fragments are still allowed to set =m (while the base config has =y). Strict mode will tolerate that as demotions from =y to =m are ignored when setting -y. Cc: Masahiro Yamada Signed-off-by: Matthias Maennich --- scripts/kconfig/merge_config.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh index 63c8565206a4..d0b957b20cbf 100755 --- a/scripts/kconfig/merge_config.sh +++ b/scripts/kconfig/merge_config.sh @@ -28,6 +28,7 @@ usage() { echo " -r list redundant entries when merging fragments" echo " -y make builtin have precedence over modules" echo " -O dir to put generated output files. Consider setting \$KCONFIG_CONFIG instead." + echo " -s strict mode. Fail if the fragment redefines any value." echo echo "Used prefix: '$CONFIG_PREFIX'. You can redefine it with \$CONFIG_ environment variable." } @@ -37,6 +38,7 @@ ALLTARGET=alldefconfig WARNREDUN=false BUILTIN=false OUTPUT=. +STRICT=false CONFIG_PREFIX=${CONFIG_-CONFIG_} while true; do @@ -75,6 +77,11 @@ while true; do shift 2 continue ;; + "-s") + STRICT=true + shift + continue + ;; *) break ;; @@ -141,6 +148,9 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do echo Previous value: $PREV_VAL echo New value: $NEW_VAL echo + if [ "$STRICT" = "true" ]; then + STRICT_MODE_VIOLATED=true + fi elif [ "$WARNREDUN" = "true" ]; then echo Value of $CFG is redundant by fragment $ORIG_MERGE_FILE: fi @@ -153,6 +163,11 @@ for ORIG_MERGE_FILE in $MERGE_LIST ; do cat $MERGE_FILE >> $TMP_FILE done +if [ "$STRICT_MODE_VIOLATED" = "true" ]; then + echo "The fragment redefined a value and strict mode had been passed." + exit 1 +fi + if [ "$RUNMAKE" = "false" ]; then cp -T -- "$TMP_FILE" "$KCONFIG_CONFIG" echo "#" -- 2.29.2.454.gaff20da3a2-goog