Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp2382216ybf; Mon, 2 Mar 2020 07:33:30 -0800 (PST) X-Google-Smtp-Source: APXvYqwm+aVC72oSW09KuMqfZZreyeyHQsvNYRJjwTpQrNa0ylrlHwuYjbYzH/aQyQS21RvMhy0c X-Received: by 2002:a9d:760d:: with SMTP id k13mr12784197otl.42.1583163210420; Mon, 02 Mar 2020 07:33:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583163210; cv=none; d=google.com; s=arc-20160816; b=JP9YD6WwXhp5rnNnJcYaE80qBv7fheFBaOV1aecvCok3xTNweY+mbP84TtZyT7IVBU uvID9/8RewmEECcMhuAwTN+4xkcdxu4T91yA1avb/WHY5AUH1pNLuqEVwGev273G2ZXp o5BypRU8XRbXKwq1CSNKhNV1xTNYzbatdSobPGH5LyDR+JWe3qQ/ck8pzP9wychsRtCR kZuRzEs/X/8HkywscSkMM1NJuAPOOcsXLzGRhVPPS3eYRqbobkqash8crzdoeRmVW/GE zcI8xKNePqKIcuJhR27C/0Yk2KQfPBuUahqQkgGEI7POJ8iZZDaJAvxqH2fgLGfxKzPG kljA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date:dkim-signature :dkim-signature; bh=4ty4OMsggr2IXSfvIoxmig00R9NrjvZYJNogXY9j9mM=; b=qkedy1epylQeDRqHGrUZk1fZOp5jg/mPdw5TZjbb1rgNpjIVvprZwHqMDqCdbmbFp4 MhcmAhHrmK3KvQhGPkIkmJXN0BFtvykU5JoYv432gb6D9ElBZnjrIonE4jdP5ESmKye9 roTcBUlLEApzK8DP3JYbsMR+A0mbIZP8yXonPy1AnnDhScGqnCoaUvL4C6iCOxFvwsHQ RhwLPV5vbciQDfxlhZv6akLe75K180vmK06nkh/wNEs6iik1nznCA78i/skxBzb7knbZ 4eKSUgIPw1NwX0HZHO62adLlSaXPbIjPPqkU686uIUpJQS3YnQoIq/ugvfhgOPFCB3Hp PlXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pobox.com header.s=sasl header.b=cb0gklsR; dkim=temperror (no key for signature) header.i=@fluxnic.net header.s=2016-12.pbsmtp header.b=yCWE4Ce1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 2si6405300ois.221.2020.03.02.07.33.18; Mon, 02 Mar 2020 07:33:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@pobox.com header.s=sasl header.b=cb0gklsR; dkim=temperror (no key for signature) header.i=@fluxnic.net header.s=2016-12.pbsmtp header.b=yCWE4Ce1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727117AbgCBPby (ORCPT + 99 others); Mon, 2 Mar 2020 10:31:54 -0500 Received: from pb-smtp2.pobox.com ([64.147.108.71]:62715 "EHLO pb-smtp2.pobox.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726751AbgCBPby (ORCPT ); Mon, 2 Mar 2020 10:31:54 -0500 Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 2251A5E9EC; Mon, 2 Mar 2020 10:31:52 -0500 (EST) (envelope-from nico@fluxnic.net) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=date:from:to :cc:subject:in-reply-to:message-id:references:mime-version :content-type; s=sasl; bh=+w0TjN0sgfinY77qlaN2DDq+4MI=; b=cb0gkl sR9djEG5wDD+oYCv2F3RvKhPPaRBTl/O6Ggvc1WGCUxCwBCXQf4pwa5G7sGePs0J CXZlkE/Iui3yN8WVlMVJM+oNm0cSfMabp029SBfGlCzMUMaHz8kGLAkeT9ifkoNt sgSvdg6x8LLdue7BMqx+jhhIsuPQdiQlvV8Qc= Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 1911B5E9EB; Mon, 2 Mar 2020 10:31:52 -0500 (EST) (envelope-from nico@fluxnic.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=fluxnic.net; h=date:from:to:cc:subject:in-reply-to:message-id:references:mime-version:content-type; s=2016-12.pbsmtp; bh=WFfea9XXdTCiyqDrZWumH0aOM0ikm6o03o4Ib1MKO6s=; b=yCWE4Ce18rB4VWGl5FYMYYxA+GIP4zQNaSZyYucR4+/AEs6OmTN0GMXiiDy1K/XddT0lduzhElCaZiMbTQ6l21cVmm8dJytVjhbgxI/O3D2h1cajHQE4LBg/YPkwJuEJZ5lflyNXArr5v7aVZ6vA33/DTf2gI1mFCdL+C9C2zhs= Received: from yoda.home (unknown [24.203.50.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 804655E9EA; Mon, 2 Mar 2020 10:31:51 -0500 (EST) (envelope-from nico@fluxnic.net) Received: from xanadu.home (xanadu.home [192.168.2.2]) by yoda.home (Postfix) with ESMTPSA id 9FBC12DA0227; Mon, 2 Mar 2020 10:31:50 -0500 (EST) Date: Mon, 2 Mar 2020 10:31:50 -0500 (EST) From: Nicolas Pitre To: Masahiro Yamada cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Ulf Magnusson , Geert Uytterhoeven , Jonathan Corbet , Michal Marek , linux-doc@vger.kernel.org Subject: Re: [PATCH 1/2] kconfig: allow symbols implied by y to become m In-Reply-To: <20200302062340.21453-1-masahiroy@kernel.org> Message-ID: References: <20200302062340.21453-1-masahiroy@kernel.org> User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Pobox-Relay-ID: F05AC3AE-5C9A-11EA-B458-D1361DBA3BAF-78420484!pb-smtp2.pobox.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2 Mar 2020, Masahiro Yamada wrote: > The 'imply' keyword restricts a symbol to y or n, excluding m > when it is implied by y. This is the original behavior since > commit 237e3ad0f195 ("Kconfig: Introduce the "imply" keyword"). > > However, the author of the 'imply' keyword, Nicolas Pitre, stated > that the 'imply' keyword should not impose any restrictions. [1] > > I agree, and want to get rid of this tricky behavior. > > [1]: https://lkml.org/lkml/2020/2/19/714 > > Suggested-by: Nicolas Pitre > Signed-off-by: Masahiro Yamada Acked-by: Nicolas Pitre In addition to the IS_REACHABLE() note, it might be a good idea to suggest adding an "imply" reference to the dependency if the feature provided by BAZ is highli desirable, e.g.: config FOO tristate imply BAR imply BAZ > --- > > Documentation/kbuild/kconfig-language.rst | 12 +++++++++++- > scripts/kconfig/symbol.c | 5 +---- > 2 files changed, 12 insertions(+), 5 deletions(-) > > diff --git a/Documentation/kbuild/kconfig-language.rst b/Documentation/kbuild/kconfig-language.rst > index d0111dd26410..d4d988aea679 100644 > --- a/Documentation/kbuild/kconfig-language.rst > +++ b/Documentation/kbuild/kconfig-language.rst > @@ -173,7 +173,7 @@ applicable everywhere (see syntax). > === === ============= ============== > n y n N/m/y > m y m M/y/n > - y y y Y/n > + y y y Y/m/n > y n * N > === === ============= ============== > > @@ -181,6 +181,16 @@ applicable everywhere (see syntax). > ability to hook into a secondary subsystem while allowing the user to > configure that subsystem out without also having to unset these drivers. > > + Note: If the combination of FOO=y and BAR=m causes a link error, > + you can guard the function call with IS_REACHABLE():: > + > + foo_init() > + { > + if (IS_REACHABLE(CONFIG_BAZ)) > + baz_register(&foo); > + ... > + } > + > - limiting menu display: "visible if" > > This attribute is only applicable to menu blocks, if the condition is > diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c > index 8d38b700b314..b101ef3c377a 100644 > --- a/scripts/kconfig/symbol.c > +++ b/scripts/kconfig/symbol.c > @@ -401,8 +401,7 @@ void sym_calc_value(struct symbol *sym) > sym_warn_unmet_dep(sym); > newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri); > } > - if (newval.tri == mod && > - (sym_get_type(sym) == S_BOOLEAN || sym->implied.tri == yes)) > + if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN) > newval.tri = yes; > break; > case S_STRING: > @@ -484,8 +483,6 @@ bool sym_tristate_within_range(struct symbol *sym, tristate val) > return false; > if (sym->visible <= sym->rev_dep.tri) > return false; > - if (sym->implied.tri == yes && val == mod) > - return false; > if (sym_is_choice_value(sym) && sym->visible == yes) > return val == yes; > return val >= sym->rev_dep.tri && val <= sym->visible; > -- > 2.17.1 > >