Received: by 2002:ab2:7903:0:b0:1fb:b500:807b with SMTP id a3csp1072854lqj; Mon, 3 Jun 2024 09:19:30 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVMSLvND/OhuyfioamJhP5eqt1/JNAUNvuzicRqXB3Klmm5ap8LhqtmfvOx/SNUmfx3I79u10etDS7pwRvOJWTBUjoFwX0baGdMC7EnGg== X-Google-Smtp-Source: AGHT+IFzzGiBbpcPglwNqQiGIi4Q9ajW6H+ZN95OUZ+74qsfA9dch0IQXW5gkyeG/FJAYCPZgFfo X-Received: by 2002:a17:906:a895:b0:a68:bcf6:5a57 with SMTP id a640c23a62f3a-a68bcf65bbdmr374341366b.44.1717431570116; Mon, 03 Jun 2024 09:19:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717431570; cv=pass; d=google.com; s=arc-20160816; b=m/gxPvxCamjj7sfGdSJGZAvcTg3y/oMQCWEbWZrMAAuPE5BTKGl8l3YJzjQ28RLUtq oWZRhURLTO6tftDpDAlsXvdE9jkKGINxT1Dj+qK7O4v6EcRawD5bcgIyRRg9No5NY3G9 dCuDgSg5cgFpDAb7rGEGxgTLbpEnw7COtl7MR83Pi7/vD7zSFX3FVOAhwQ0l+uYc3RlQ EtVB3sRuEtMcq8P80yC9U1PWVcASu9hH5kKxuaV+mWxSIqZf9BRKtPrkrxdC8bkVHgoc 6bpd49FTwG5S5HdTg/o0UBP6iJ9ioh1tjohqNbf7RoQT2D/NlgykbmY+ZqT6r5g11ZVo dgNg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=jy1GK4ea1Xxs3e6vuFOiFcVTWHMWhrPDwRy36FQA3HA=; fh=oQbvuNnOUeIuBT5siQdg+euUHNNdn+CeEwAg69/1RSo=; b=KGt3/6Jccgc/YscGjd9MicpfUV2JQ8YqJ878u0Higm3yQOisUB++G9hRG4HCtLQMlb Q1NazQ92js2Qlt+mZKBsw9Ml/CaJXtJi8SYKDITbc7IAKY0YU05xRkvseEuUOLLg/KVI hQoAan3+8HcArwl7eoHE0Rx3aNm0baFikPTozCPDt5yoq4OYcFF+DTVrTHYuisDRil/W 1vYR7vFXI+3EW/hhfyt1c3OZra0pjuwtl+5vmuw9KZWk0r+l1BQnO+7uTw0kz5xiayub D5O/xQW1+Qa8KYZpf+doBYxpDcqIp812SpgLO4ktpMqHAwLrdn1czjJd0WI9KMGWn6oa tVKw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=B1TzhTBF; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-199422-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-199422-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id a640c23a62f3a-a67eae709f3si420578366b.789.2024.06.03.09.19.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 09:19:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-199422-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=B1TzhTBF; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-199422-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-199422-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id CD5B41F2275F for ; Mon, 3 Jun 2024 16:19:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B4DAE13699E; Mon, 3 Jun 2024 16:19:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B1TzhTBF" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE04F13666E; Mon, 3 Jun 2024 16:19:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717431551; cv=none; b=H5BSY1otwJ/WrvUpS3TnX0G0d6jjD1FmqBFQkdyBnhIBScefVgTzBEYDBCSh+1MIX6+/lZFrsgGcA4I8XUTMH+b4ipW2UJZVyDD3H+pie1gVaQonMu1o3ucSl4wH4zqg0or4Px5i+hdXnVJGzHKHUxqEBeZ9IuXZFETeCVXc91E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717431551; c=relaxed/simple; bh=0bw9I6ni7Nse9gvjkZM4wnIf7S4Gr9HtUnYYALwSU9k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=G8LcSFE4PemgA1LmJazDsQUd6eM4DHRL3TNB4aeknFYBSwOMQsUupl+Jm34rHh5iR5A7K+hOHs4SNiwJDfttsYT3tpbtxUo19BHpdlm/BMCk2XuSmVSDvorSB3fswOpHsKkk8nhGBVO9yPGckQCRiwSZpuuxsVPB8doyn1+ZgkI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B1TzhTBF; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81A70C4AF07; Mon, 3 Jun 2024 16:19:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717431549; bh=0bw9I6ni7Nse9gvjkZM4wnIf7S4Gr9HtUnYYALwSU9k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B1TzhTBF64viQqPXi128HEVvAo0+Vm+xMXkfnMxdV01EB/SAjdVNQoHxlW1IwNgPU rrX+8QfXODepI1oSZbwr58Gnc52YsVCeHu9b1tkmntAQLtyGuh/YWa2Bw8mTlZvZ9N 0UzohFxNMvM2by1W+wcVrdPHP6JuzrEGAFvbjuPrOE9fmb79KgOYXALaurOFAcfe0I fqdNJs795Bw2gpkS6jzXpGJBRZcykYN4KF9Wfwe5vSWmTBRRu0uKwZf6hBTn6dAG/n jxMfwcpQPZLx00Hlgzd69iH4hEnPBv68VRFXECHZOhemwEzkTrqPy/mhE5PRl9ARf1 qYecH3q6cFL1Q== From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada Subject: [PATCH 2/3] kconfig: doc: document behavior of 'select' and 'imply' followed by 'if' Date: Tue, 4 Jun 2024 01:19:03 +0900 Message-Id: <20240603161904.1663388-2-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240603161904.1663388-1-masahiroy@kernel.org> References: <20240603161904.1663388-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Documentation/kbuild/kconfig-language.rst explains the behavior of 'select' as follows: reverse dependencies can be used to force a lower limit of another symbol. The value of the current menu symbol is used as the minimal value can be set to. This is not true when the 'select' property is followed by 'if'. [Test Code] config MODULES def_bool y modules config A def_tristate y select C if B config B def_tristate m config C tristate [Result] CONFIG_MODULES=y CONFIG_A=y CONFIG_B=m CONFIG_C=m If "the value of A is used as the minimal value C can be set to", C must be 'y'. The actual behavior is "C is selected by (A && B)". The lower limit of C is downgraded due to B being 'm'. I have always thought this behavior was odd, and this ha arisen several times in the mailing list. I do not know whether it is a bug or intended behavior. Anyway, it is not feasible to change it now because many Kconfig files rely on this behavior. The same applies to 'imply'. Document this (but reserve the possibility for a future change). Signed-off-by: Masahiro Yamada --- Documentation/kbuild/kconfig-language.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/kbuild/kconfig-language.rst b/Documentation/kbuild/kconfig-language.rst index 86be5b857cc4..1fb3f5e6193c 100644 --- a/Documentation/kbuild/kconfig-language.rst +++ b/Documentation/kbuild/kconfig-language.rst @@ -150,6 +150,12 @@ applicable everywhere (see syntax). That will limit the usefulness but on the other hand avoid the illegal configurations all over. + If "select" is followed by "if" , will be + selected by the logical AND of the value of the current menu symbol + and . This means, the lower limit can be downgraded due to the + presence of "if" . This behavior may seem weird, but we rely on + it. (The future of this behavior is undecided.) + - weak reverse dependencies: "imply" ["if" ] This is similar to "select" as it enforces a lower limit on another @@ -202,6 +208,10 @@ applicable everywhere (see syntax). imply BAR imply BAZ + Note: If "imply" is followed by "if" , the default of + will be the logical AND of the value of the current menu symbol and . + (The future of this behavior is undecided.) + - limiting menu display: "visible if" This attribute is only applicable to menu blocks, if the condition is -- 2.40.1