<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in lkc.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a16219bd - scripts: move hash function from scripts/kconfig/ to scripts/include/</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#a16219bd</link>
        <description>scripts: move hash function from scripts/kconfig/ to scripts/include/This function was originally added by commit 8af27e1dc4e4 (&quot;fixdep: usehash table instead of a single array&quot;).Move it to scripts/include/ so that other host programs can use it.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 08 Sep 2024 12:43:16 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>a9d83d74 - kbuild: split x*alloc() functions in kconfig to scripts/include/xalloc.h</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#a9d83d74</link>
        <description>kbuild: split x*alloc() functions in kconfig to scripts/include/xalloc.hThese functions will be useful for other host programs.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Mon, 12 Aug 2024 12:48:50 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>94a4b0a4 - kconfig: remove SYMBOL_CHOICEVAL flag</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#94a4b0a4</link>
        <description>kconfig: remove SYMBOL_CHOICEVAL flagThis flag is unneeded because a choice member can be detected byother means.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 07 Jul 2024 15:38:06 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>6425e3b2 - kconfig: add const qualifiers to several function arguments</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#6425e3b2</link>
        <description>kconfig: add const qualifiers to several function argumentsClarify that the given structures are not modified.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 07 Jul 2024 15:38:05 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>e8fcd915 - kconfig: change sym_choice_default() to take the choice menu</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#e8fcd915</link>
        <description>kconfig: change sym_choice_default() to take the choice menuChange the argument of sym_choice_default() to ease further cleanups.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Tue, 18 Jun 2024 10:35:24 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>bd0db4b6 - kconfig: remove sym_get_choice_value()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#bd0db4b6</link>
        <description>kconfig: remove sym_get_choice_value()sym_get_choice_value(menu-&gt;sym) is equivalent to sym_calc_choice(menu).Convert all call sites of sym_get_choice_value() and then remove it.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Tue, 18 Jun 2024 10:35:22 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>f79dc03f - kconfig: refactor choice value calculation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#f79dc03f</link>
        <description>kconfig: refactor choice value calculationHandling choices has always been in a PITA in Kconfig.For example, fixes and reverts were repeated for randconfig withKCONFIG_ALLCONFIG: - 422c809f03f0 (&quot;kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG&quot;) - 23a5dfdad22a (&quot;Revert &quot;kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG&quot;&quot;) - 8357b48549e1 (&quot;kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG&quot;) - 490f16171119 (&quot;Revert &quot;kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG&quot;&quot;)As these commits pointed out, randconfig does not randomize choices whenKCONFIG_ALLCONFIG is used. This issue still remains.[Test Case]    choice            prompt &quot;choose&quot;    config A            bool &quot;A&quot;    config B            bool &quot;B&quot;    endchoice    $ echo &gt; all.config    $ make KCONFIG_ALLCONFIG=1 randconfigThe output is always as follows:    CONFIG_A=y    # CONFIG_B is not setNot only randconfig, but other all*config variants are also broken withKCONFIG_ALLCONFIG.With the same Kconfig,    $ echo &apos;# CONFIG_A is not set&apos; &gt; all.config    $ make KCONFIG_ALLCONFIG=1 allyesconfigYou will get this:    CONFIG_A=y    # CONFIG_B is not setThis is incorrect because it does not respect all.config.The correct output should be:    # CONFIG_A is not set    CONFIG_B=yTo handle user inputs more accurately, this commit refactors the codebased on the following principles: - When a user value is given, Kconfig must set it immediately.   Do not defer it by setting SYMBOL_NEED_SET_CHOICE_VALUES. - The SYMBOL_DEF_USER flag must not be cleared, unless a new config   file is loaded. Kconfig must not forget user inputs.In addition, user values for choices must be managed with priority.If user inputs conflict within a choice block, the newest value wins.The values given by randconfig have lower priority than explicit userinputs.This commit implements it by using a linked list. Every time a choiceblock gets a new input, it is moved to the top of the list.Let me explain how it works.Let&apos;s say, we have a choice block that consists of five symbols:A, B, C, D, and E.Initially, the linked list looks like this:    A(=?) --&gt; B(=?) --&gt; C(=?) --&gt; D(=?) --&gt; E(=?)Suppose randconfig is executed with the following KCONFIG_ALLCONFIG:    CONFIG_C=y    # CONFIG_A is not set    CONFIG_D=yFirst, CONFIG_C=y is read. C is set to &apos;y&apos; and moved to the top.    C(=y) --&gt; A(=?) --&gt; B(=?) --&gt; D(=?) --&gt; E(=?)Next, &apos;# CONFIG_A is not set&apos; is read. A is set to &apos;n&apos; and moved tothe top.    A(=n) --&gt; C(=y) --&gt; B(=?) --&gt; D(=?) --&gt; E(=?)Then, &apos;CONFIG_D=y&apos; is read. D is set to &apos;y&apos; and moved to the top.    D(=y) --&gt; A(=n) --&gt; C(=y) --&gt; B(=?) --&gt; E(=?)Lastly, randconfig shuffles the order of the remaining symbols,resulting in:    D(=y) --&gt; A(=n) --&gt; C(=y) --&gt; B(=y) --&gt; E(=y)or    D(=y) --&gt; A(=n) --&gt; C(=y) --&gt; E(=y) --&gt; B(=y)When calculating the output, the linked list is traversed and the firstvisible symbol with &apos;y&apos; is taken. In this case, it is D if visible.If D is hidden by &apos;depends on&apos;, the next node, A, is examined. Sinceit is already specified as &apos;n&apos;, it is skipped. Next, C is checked, andselected if it is visible.If C is also invisible, either B or E is chosen as a result of therandomization.If B and E are also invisible, the linked list is traversed in thereverse order, and the least prioritized &apos;n&apos; symbol is chosen. It isA in this case.Now, Kconfig remembers all user values. This is a big difference fromthe previous implementation, where Kconfig would forget CONFIG_C=y whenCONFIG_D=y appeared in the same input file.The new appaorch respects user-specified values as much as possible.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Tue, 18 Jun 2024 10:35:21 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>6a121588 - kconfig: remove &apos;optional&apos; property support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#6a121588</link>
        <description>kconfig: remove &apos;optional&apos; property supportThe &apos;choice&apos; statement is primarily used to exclusively select oneoption, but the &apos;optional&apos; property allows all entries to be disabled.In the following example, both A and B can be disabled simultaneously:    choice            prompt &quot;choose A, B, or nothing&quot;            optional    config A            bool &quot;A&quot;    config B            bool &quot;B&quot;    endchoiceYou can achieve the equivalent outcome by other means.A common solution is to add another option to guard the choice block.In the following example, you can set ENABLE_A_B_CHOICE=n to disablethe entire choice block:    choice            prompt &quot;choose A or B&quot;            depends on ENABLE_A_B_CHOICE    config A            bool &quot;A&quot;    config B            bool &quot;B&quot;    endchoiceAnother approach is to insert one more entry:    choice            prompt &quot;choose A, B, or disable both&quot;    config A            bool &quot;A&quot;    config B            bool &quot;B&quot;    config DISABLE_A_AND_B            bool &quot;choose this to disable both A and B&quot;    endchoiceSome real examples are DEBUG_INFO_NONE, INITRAMFS_COMPRESSION_NONE,LTO_NONE, etc.The &apos;optional&apos; property is even more unnecessary for a tristate choice.Without the &apos;optional&apos; property, you can disable A and B; you can set&apos;m&apos; in the choice prompt, and disable A and B individually:    choice            prompt &quot;choose one built-in or make them modular&quot;    config A            tristate &quot;A&quot;    config B            tristate &quot;B&quot;    endchoiceIn conclusion, the &apos;optional&apos; property was unneeded.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Reviewed-by: Nicolas Schier &lt;n.schier@avm.de&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Mon, 22 Apr 2024 16:41:04 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>1da251c6 - kconfig: remove SYMBOL_CHOICE flag</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#1da251c6</link>
        <description>kconfig: remove SYMBOL_CHOICE flagAll symbols except choices have a name.Previously, choices were allowed to have a name, but commit c83f020973bc(&quot;kconfig: remove named choice support&quot;) eliminated that possibility.Now, it is easy to distinguish choices from normal symbols; if the nameis NULL, it is a choice.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Reviewed-by: Nicolas Schier &lt;n.schier@avm.de&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Mon, 22 Apr 2024 16:10:54 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>7284b4fb - kconfig: add menu_next() function and menu_for_each(_sub)_entry macros</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#7284b4fb</link>
        <description>kconfig: add menu_next() function and menu_for_each(_sub)_entry macrosSeveral functions require traversing menu entries sequentially. Thiscommit introduces some helpers to simplify such operations.The menu_next() function facilitates depth-first traversal: 1. Descend to the child level if the current menu has one 2. Move to the next sibling at the same level if available 3. Ascend to the parent level if there is no more child or siblingThe menu_for_each_sub_entry() macro iterates over all submenu entriesusing depth-first traverse.The menu_for_each_entry() macro is the same, but over all menu entries.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 21 Apr 2024 09:02:51 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>7e3465f6 - kconfig: do not reparent the menu inside a choice block</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#7e3465f6</link>
        <description>kconfig: do not reparent the menu inside a choice blockThe boolean &apos;choice&apos; is used to list exclusively selected configoptions.You must not add a dependency between choice members, because such adependency would create an invisible entry.In the following test case, it is impossible to choose &apos;C&apos;.[Test Case 1]  choice          prompt &quot;Choose one, but how to choose C?&quot;  config A          bool &quot;A&quot;  config B          bool &quot;B&quot;  config C          bool &quot;C&quot;          depends on A  endchoiceHence, Kconfig shows the following error message:  Kconfig:1:error: recursive dependency detected!  Kconfig:1:      choice &lt;choice&gt; contains symbol C  Kconfig:10:     symbol C is part of choice A  Kconfig:4:      symbol A is part of choice &lt;choice&gt;  For a resolution refer to Documentation/kbuild/kconfig-language.rst  subsection &quot;Kconfig recursive dependency limitations&quot;However, Kconfig does not report anything for the following similar code:[Test Case 2]  choice         prompt &quot;Choose one, but how to choose B?&quot;  config A          bool &quot;A&quot;  config B          bool &quot;B&quot;          depends on A  config C          bool &quot;C&quot;  endchoiceThis is because menu_finalize() reparents the menu tree when an entrydepends on the preceding one.With reparenting, the menu tree:  choice   |- A   |- B   \- C... will be transformed into the following structure:  choice   |- A   |  \- B   \- CConsequently, Kconfig considers only &apos;A&apos; and &apos;C&apos; as choice members.This behavior is awkward. The second test case should be an error too.This commit stops reparenting inside a choice.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sat, 23 Mar 2024 08:51:01 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>7c4aa901 - kconfig: move strhash() to util.c as a global function</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#7c4aa901</link>
        <description>kconfig: move strhash() to util.c as a global functionRemove the &apos;static&apos; qualifier from strhash() so that it can be accessedfrom other files. Move it to util.c, which is a more appropriate location.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Fri, 02 Feb 2024 15:58:22 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>5b058034 - kconfig: change file_lookup() to return the file name</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#5b058034</link>
        <description>kconfig: change file_lookup() to return the file nameCurrently, file_lookup() returns a pointer to (struct file), but thecallers use only file-&gt;name.Make it return the -&gt;name member directly.This adjustment encapsulates struct file and file_list as internalimplementation.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Fri, 02 Feb 2024 15:58:16 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>1d7c4f10 - kconfig: remove zconf_curname() and zconf_lineno()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#1d7c4f10</link>
        <description>kconfig: remove zconf_curname() and zconf_lineno()Now zconf_curname() and zconf_lineno() are so simple that they justreturn cur_filename, cur_lineno, respectively.Remove these functions, and then use cur_filename and cur_linenodirectly.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Fri, 02 Feb 2024 15:58:08 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>526396b7 - kconfig: write Kconfig files to autoconf.cmd in order</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#526396b7</link>
        <description>kconfig: write Kconfig files to autoconf.cmd in orderCurrently, include/config/autoconf.cmd saves included Kconfig files inreverse order. While this is not a big deal, it is inconsistent withother *.cmd files generated by fixdep.Output the included Kconfig files in the included order.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Fri, 02 Feb 2024 15:58:04 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>092e39d1 - kconfig: squash menu_has_help() and menu_get_help()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#092e39d1</link>
        <description>kconfig: squash menu_has_help() and menu_get_help()menu_has_help() and menu_get_help() functions are only used withinmenu_get_ext_help().Squash them into menu_get_ext_help(). It revealed the if-conditionalin menu_get_help() was unneeded, as menu_has_help() has already checkedthat menu-&gt;help is not NULL.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 03 Dec 2023 10:25:25 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>e14f1242 - kconfig: menuconfig: simplify global jump key assignment</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#e14f1242</link>
        <description>kconfig: menuconfig: simplify global jump key assignmentCommit 95ac9b3b585d (&quot;menuconfig: Assign jump keys per-page insteadof globally&quot;) injected a lot of hacks to the bottom of the textboxinfrastructure.I reverted many of them without changing the behavior. (almost)Now, the key markers are inserted when constructing the search resultinstead of updating the text buffer on-the-fly.The buffer passed to the textbox got back to a constant string.The ugly casts from (const char *) to (char *) went away.A disadvantage is that the same key numbers might be displayed multipletimes in the dialog if you use a huge window (but I believe it isunlikely to happen).Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Reviewed-by: Jesse Taube &lt;Mr.Bossman075@gmail.com&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 16 Jul 2023 04:55:07 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>4d980fd1 - kconfig: remove const qualifier from str_get()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#4d980fd1</link>
        <description>kconfig: remove const qualifier from str_get()update_text() apparently edits the buffer returned by str_get().(and there is no reason why it shouldn&apos;t)Remove &apos;const&apos; quailifier and casting.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Sun, 13 Nov 2022 10:59:42 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>efc8338e - Kconfig: remove sym_set_choice_value</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#efc8338e</link>
        <description>Kconfig: remove sym_set_choice_valuesym_set_choice_value could be removed and directly callsym_set_tristate_value instead.Signed-off-by: Zeng Heng &lt;zengheng4@huawei.com&gt;Suggested-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Wed, 14 Sep 2022 01:59:06 +0000</pubDate>
        <dc:creator>Zeng Heng &lt;zengheng4@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>03764b30 - Kconfig: remove unused function &apos;menu_get_root_menu&apos;</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/kconfig/lkc.h#03764b30</link>
        <description>Kconfig: remove unused function &apos;menu_get_root_menu&apos;There is nowhere calling `menu_get_root_menu` function,so remove it.Signed-off-by: Zeng Heng &lt;zengheng4@huawei.com&gt;Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/kconfig/lkc.h</description>
        <pubDate>Mon, 12 Sep 2022 09:48:38 +0000</pubDate>
        <dc:creator>Zeng Heng &lt;zengheng4@huawei.com&gt;</dc:creator>
    </item>
</channel>
</rss>
