- 26 3月, 2018 5 次提交
-
-
由 Masahiro Yamada 提交于
As commit cedd55d4 ("kconfig: Remove silentoldconfig from help and docs; fix kconfig/conf's help") mentioned, 'silentoldconfig' is a historical misnomer. That commit removed it from help and docs since it is an internal interface. If so, it should be allowed to rename it to something more intuitive. 'syncconfig' is the one I came up with because it updates the .config if necessary, then synchronize include/generated/autoconf.h and include/config/* with it. You should not manually invoke 'silentoldcofig'. Display warning if used in case existing scripts are doing wrong. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
Historically, "make oldconfig" has changed its behavior several times, quieter or louder. (I attached the history below.) Currently, it is not as quiet as it should be. This commit addresses it. Test Case --------- ---------------------------(Kconfig)---------------------------- menu "menu" config FOO bool "foo" menu "sub menu" config BAR bool "bar" endmenu endmenu menu "sibling menu" config BAZ bool "baz" endmenu ---------------------------------------------------------------- ---------------------------(.config)---------------------------- CONFIG_BAR=y CONFIG_BAZ=y ---------------------------------------------------------------- With the Kconfig and .config above, "make silentoldconfig" and "make oldconfig" work differently, like follows: $ make silentoldconfig scripts/kconfig/conf --silentoldconfig Kconfig * * Restart config... * * * menu * foo (FOO) [N/y/?] (NEW) y # # configuration written to .config # $ make oldconfig scripts/kconfig/conf --oldconfig Kconfig * * Restart config... * * * menu * foo (FOO) [N/y/?] (NEW) y * * sub menu * bar (BAR) [Y/n/?] y # # configuration written to .config # Both hide "sibling node" since it is irrelevant. The difference is that silentoldconfig hides "sub menu" whereas oldconfig does not. The behavior of silentoldconfig is preferred since the "sub menu" does not contain any new symbol. The root cause is in conf(). There are three input modes that can call conf(); oldaskconfig, oldconfig, and silentoldconfig. Everytime conf() encounters a menu entry, it calls check_conf() to check if it contains new symbols. If no new symbol is found, the menu is just skipped. Currently, this happens only when input_mode == silentoldconfig. The oldaskconfig enters into the check_conf() loop as silentoldconfig, so oldaskconfig works likewise for the second loop or later, but it never happens for oldconfig. So, irrelevant sub-menus are shown for oldconfig. Change the test condition to "input_mode != oldaskconfig". This is false only for the first loop of oldaskconfig; it must ask the user all symbols, so no need to call check_conf(). History of oldconfig -------------------- [0] Originally, "make oldconfig" was as loud as "make config" (It showed the entire .config file) [1] Commit cd9140e1 ("kconfig: make oldconfig is now less chatty") made oldconfig quieter, but it was still less quieter than silentoldconfig. (oldconfig did not hide sub-menus) [2] Commit 204c96f6 ("kconfig: fix silentoldconfig") changed the input_mode of oldconfig to "ask_silent" from "ask_new". So, oldconfig really became as quiet as silentoldconfig. (oldconfig hided irrelevant sub-menus) [3] Commit 4062f1a4 ("kconfig: use long options in conf") made oldconfig as loud as [0] due to misconversion. [4] Commit 14828349 ("kconfig: fix make oldconfig") addressed the misconversion of [3], but it made oldconfig quieter only to the same level as [1], not [2]. This commit is restoring the behavior of [2]. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
check_conf() never increments conf_cnt for listnewconfig, so conf_cnt is always zero. In other words, conf_cnt is not zero, "input_mode != listnewconfig" is met. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
conf() is never called for listnewconfig / olddefconfig. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
check_conf() traverses the menu tree, but it is completely no-op for olddefconfig because the following if-else block does nothing. if (input_mode == listnewconfig) { ... } else if (input_mode != olddefconfig) { ... } As the help message says, olddefconfig automatically sets new symbols to their default value. There is no room for manual intervention. So, calling check_conf() for olddefconfig is odd in the first place. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
- 09 2月, 2018 4 次提交
-
-
由 Masahiro Yamada 提交于
These messages should be directed to stderr. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
If stdio is not tty, conf_askvalue() puts additional new line to prevent prompts from being concatenated into a single line. This care is missing in conf_choice(), so a 'choice' prompt and the next prompt are shown in the same line. Move the code into xfgets() to cater to all cases. To improve this more, let's echo stdin to stdout. This clarifies what keys were input from stdio and the stdout looks like as if it were from tty. I removed the isatty(2) check since stderr is unrelated here. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
Except silentoldconfig, valid_stdin is 1, so check_stdin() is no-op. oldconfig and silentoldconfig work almost in the same way except that the latter generates additional files under include/. Both ask users for input for new symbols. I do not know why only silentoldconfig requires stdio be tty. $ rm -f .config; touch .config $ yes "" | make oldconfig > stdout $ rm -f .config; touch .config $ yes "" | make silentoldconfig > stdout make[1]: *** [silentoldconfig] Error 1 make: *** [silentoldconfig] Error 2 $ tail -n 4 stdout Console input/output is redirected. Run 'make oldconfig' to update configuration. scripts/kconfig/Makefile:40: recipe for target 'silentoldconfig' failed Makefile:507: recipe for target 'silentoldconfig' failed Redirection is useful, for example, for testing where we want to give particular key inputs from a test file, then check the result. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
由 Masahiro Yamada 提交于
'make config', 'make oldconfig', etc. always receive '?' as a valid input and show useful information even if no help text is available. ------------------------>8------------------------ foo (FOO) [N/y] (NEW) ? There is no help available for this option. Symbol: FOO [=n] Type : bool Prompt: foo Defined at Kconfig:1 ------------------------>8------------------------ However, '?' is not shown in the prompt if its help text is missing. Let's show '?' all the time so that the prompt and the behavior match. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: NUlf Magnusson <ulfalizer@gmail.com>
-
- 28 1月, 2018 1 次提交
-
-
由 Marc Herbert 提交于
As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189 silentoldconfig has become a misnomer. It has become an internal interface so remove it from "make help" and Documentation/ to stop confusing people using it as seen for instance at https://chromium-review.googlesource.com/835632 Don't remove it from kconfig/Makefile yet not to break any (other) tool using it. On the other hand, correct and expand its description in the help of the (internal) scripts/kconfig/conf.c Signed-off-by: NMarc Herbert <marc.herbert@intel.com> Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
-
- 21 1月, 2018 2 次提交
-
-
由 Masahiro Yamada 提交于
Sparse reports: warning: symbol 'xfgets' was not declared. Should it be static? It is declared as static, but it is missing in the definition part. Move the definition up and remove the forward declaration. Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
-
由 Masahiro Yamada 提交于
Sparse reports: warning: symbol 'input_mode' was not declared. Should it be static? Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
-
- 10 12月, 2015 1 次提交
-
-
由 Markus Mayer 提交于
The current (arbitrary) limit of 128 characters for path names has proven too short for Android builds, as longer path names are used there. Change conf.c, so it can handle path lengths up to PATH_MAX characters. Signed-off-by: NMarkus Mayer <mmayer@broadcom.com> Signed-off-by: NMichal Marek <mmarek@suse.com>
-
- 09 4月, 2015 1 次提交
-
-
由 Michal Marek 提交于
Add an -s option to the various frontends and pass it when make -s is used. Also, use $(kecho) instead of @echo in the Makefile. Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 10 6月, 2014 1 次提交
-
-
由 Masahiro Yamada 提交于
Signed-off-by: NMasahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 25 6月, 2013 1 次提交
-
-
由 Yann E. MORIN 提交于
Because of choice-in-a-choice constructs, it can happen that not all symbols are assigned a value during randconfig, leading in rare cases to this situation: ---8<--- choice-in-choice.in choice bool "A/B/C" config A bool "A" config B bool "B" if B choice bool "E/F" config E bool "E" config F bool "F" endchoice endif # B config C bool "C" endchoice ---8<--- $ ./scripts/kconfig/conf --randconfig choice-in-choice.in [--SNIP--] $ ./scripts/kconfig/conf --silentoldconfig choice-in-choice.in </dev/null [--SNIP--] A/B/C 1. A (A) > 2. B (B) 3. C (C) choice[1-3]: 2 E/F > 1. E (E) (NEW) 2. F (F) (NEW) choice[1-2]: aborted! Console input/output is redirected. Run 'make oldconfig' to update configuration. Fix this by looping in randconfig for as long as some symbol gets assigned a value. Note: this was spotted with the USB EHCI Debug Device Gadget (USB_G_DBGP), which uses this choice-in-a-choice construct, and exhibits this problem. The example above is just a stripped-down minimalist test-case. Signed-off-by: N"Yann E. MORIN" <yann.morin.1998@free.fr>
-
- 19 6月, 2013 2 次提交
-
-
由 Yann E. MORIN 提交于
... so the user has a chance to reproduce a test-case. Signed-off-by: N"Yann E. MORIN" <yann.morin.1998@free.fr>
-
由 Yann E. MORIN 提交于
Signed-off-by: N"Yann E. MORIN" <yann.morin.1998@free.fr>
-
- 25 4月, 2013 1 次提交
-
-
由 Yann E. MORIN 提交于
For reproducibility, it can be useful to be able to specify the seed to use to seed the RNG. Add a new KCONFIG_SEED environment variable which can be set to the seed to use: $ make KCONFIG_SEED=42 randconfig $ sha1sum .config 70a128c8dcc61303069e1be352cce64114dfcbca .config $ make KCONFIG_SEED=42 randconfig $ sha1sum .config 70a128c8dcc61303069e1be352cce64114dfcbca .config It's very usefull for eg. debugging the kconfig parser. Signed-off-by: N"Yann E. MORIN" <yann.morin.1998@free.fr>
-
- 19 2月, 2013 1 次提交
-
-
由 Ben Hutchings 提交于
According to Documentation/kbuild/kconfig.txt, the commands: yes "" | make oldconfig >conf.new grep "(NEW)" conf.new should list the new config symbols with their default values. However, currently there is no line break after each new symbol. When kconfig is interactive the user will type a new-line at this point, but when non-interactive kconfig must print it. Signed-off-by: NBen Hutchings <ben@decadent.org.uk> Reference: http://bugs.debian.org/636029 [regid23@nt1.in: Adjusted Ben's work to apply cleanly to this tree] Reported-and-tested-by: NRegid Ichira <regid23@nt1.in> Reviewed-by: NJonathan Nieder <jrnieder@gmail.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 28 9月, 2012 1 次提交
-
-
由 Adam Lee 提交于
As 67d34a6a said, 'oldnoconfig' doesn't set new symbols to 'n', but instead sets it to their default values. So, this patch replaces 'oldnoconfig' with 'olddefconfig', stop making people confused, and keep the old name 'oldnoconfig' as an alias, because people already are dependent on its behavior with the counter-intuitive name. Signed-off-by: NAdam Lee <adam8157@gmail.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 31 8月, 2012 1 次提交
-
-
由 Adam Lee 提交于
As 67d34a6a said, the make target 'oldnoconfig' is a misnomer. It doesn't set new symbols to 'n', but instead sets it to their default values. This patch fixes the document in conf.c, and will submit another patch to replace 'oldnoconfig' to 'olddefconfig' Signed-off-by: NAdam Lee <adam8157@gmail.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 08 5月, 2012 1 次提交
-
-
由 Eric W. Biederman 提交于
Prevent subtle surprises to both people working on the kconfig code and people using make allnoconfig allyesconfig allmoconfig and randconfig by only attempting to read a config file if KCONFIG_ALLCONFIG is set. Common sense suggests attempting to read the extra config files does not make sense unless requested. The documentation says the code won't attempt to read the extra config files unless requested. Current usage does not appear to include people depending on the code reading the config files without the variable being set So do the simple thing and stop reading config files when passed all{no,yes,mod,def,rand}config unless KCONFIG_ALLCONFIG environment variable is set. Signed-off-by: NEric W. Biederman <ebiederm@xmission.com> Reported-by: NStephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 05 5月, 2012 1 次提交
-
-
由 Eric W. Biederman 提交于
- Only try to read the file specified if KCONFIG_ALL_CONFIG is set to something other than the empty string or "1". - Don't use stat to check the name passed to conf_read_simple so that zconf_fopen can find the file in the current directory or in SRCTREE removing a extremely source of confusing failure, where KCONFIG_ALL_CONFIG was not interpreted with respect to the directory make was called in. - If conf_read_simple fails complain clearly and stop processing. Allowing the simple debugging of typos. - Clearly document the behavior so it is clear to users which values are treated as flags and which values are treated as filenames. Signed-off-by: NEric W. Biederman <ebiederm@xmission.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 02 7月, 2011 3 次提交
-
-
由 Arnaud Lacombe 提交于
This function has not much reason to be public. In the mean time, convert declaration from K&R C to ISO C. Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
-
由 Arnaud Lacombe 提交于
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
-
由 Arnaud Lacombe 提交于
This variable is not used outside of main() so there is not much reason keeping it global. Ensure it is initialized as gcc has no way to know that normal execution path expect only one option switch to be given on the command line (except when we request help). As a result, we always initialize `defconfig_file' before using it. Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
-
- 07 6月, 2011 2 次提交
-
-
由 Arnaud Lacombe 提交于
This interface is not (and has never been ?) used by any frontend, just get rid of it. Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
-
由 Arnaud Lacombe 提交于
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
-
- 24 4月, 2011 1 次提交
-
-
由 Ben Hutchings 提交于
Commit 40aee729 ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop. However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop. Signed-off-by: NBen Hutchings <ben@decadent.org.uk> Cc: stable@kernel.org [2.6.17+] Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 08 4月, 2011 1 次提交
-
-
由 Ben Hutchings 提交于
commit 40aee729 ('kconfig: fix default value for choice input') fixed some cases where kconfig would select the wrong option from a choice with a single valid option and thus enter an infinite loop. However, this broke the test for user input of the form 'N?', because when kconfig selects the single valid option the input is zero-length and the test will read the byte before the input buffer. If this happens to contain '?' (as it will in a mips build on Debian unstable today) then kconfig again enters an infinite loop. Signed-off-by: NBen Hutchings <ben@decadent.org.uk> Cc: stable@kernel.org [2.6.17+] Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 15 12月, 2010 1 次提交
-
-
由 Arnaud Lacombe 提交于
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 10 10月, 2010 1 次提交
-
-
由 Kyle McMartin 提交于
Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on if (input_mode == nonint_oldconfig || input_mode == oldnoconfig) { if (input_mode == nonint_oldconfig && sym->name && !sym_is_choice_value(sym)) { to avoid oldnoconfig chugging through the else stanza. Fix that to restore expected behaviour (which I've confirmed in the Fedora kernel build that the configs end up looking the same.) Signed-off-by: NKyle McMartin <kyle@redhat.com> Acked-by: NSam Ravnborg <sam@ravnborg.org> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 20 9月, 2010 2 次提交
-
-
由 Arnaud Lacombe 提交于
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com> Reviewed-by: NRandy Dunlap <rdunlap@xenotime.net> Reviewed-by: NSam Ravnborg <sam@ravnborg.org> Reviewed-by: NMichal Marek <mmarek@suse.cz>
-
由 Arnaud Lacombe 提交于
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com> Reviewed-by: NSam Ravnborg <sam@ravnborg.org> Reviewed-by: NMichal Marek <mmarek@suse.cz>
-
- 08 9月, 2010 1 次提交
-
-
由 Kyle McMartin 提交于
Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on if (input_mode == nonint_oldconfig || input_mode == oldnoconfig) { if (input_mode == nonint_oldconfig && sym->name && !sym_is_choice_value(sym)) { to avoid oldnoconfig chugging through the else stanza. Fix that to restore expected behaviour (which I've confirmed in the Fedora kernel build that the configs end up looking the same.) Signed-off-by: NKyle McMartin <kyle@redhat.com> Acked-by: NSam Ravnborg <sam@ravnborg.org> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 31 8月, 2010 1 次提交
-
-
由 Arnaud Lacombe 提交于
NetBSD lacks getopt_long_only() whereas getopt_long() works just fine. Signed-off-by: NArnaud Lacombe <lacombar@gmail.com> Acked-by: NSam Ravnborg <sam@ravnborg.org> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 13 8月, 2010 1 次提交
-
-
由 Jean Sacren 提交于
This fix facilitates fgets() either it returns on success or on error or when end of file occurs. Signed-off-by: NJean Sacren <sakiwit@gmail.com> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 07 8月, 2010 1 次提交
-
-
由 Sam Ravnborg 提交于
Linus wrote: This seems to make "make oldconfig" a _lot_ more verbose than it used to be. In a very annoying way. I just did a quick git bisect. It's introduced by commit 4062f1a4 ("kconfig: use long options in conf") by Sam Ravnborg. Apparently that thing is totally buggy, and doesn't just change the option names, but actively breaks them. The old behaviour (from years ago) were reintroduced by accident. Fix this so we are back to the version that are silent if there is nothing to ask about. Reported-by: NLinus Torvalds <torvalds@linux-foundation.org> Signed-off-by: NSam Ravnborg <sam@ravnborg.org> Reviewed-by: NMichal Marek <mmarek@suse.cz> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 03 8月, 2010 1 次提交
-
-
由 Sam Ravnborg 提交于
savedefconfig will save a minimal config to a file named "defconfig". The config symbols are saved in the same order as they appear in the menu structure so it should be possible to map them to the relevant menus if desired. The implementation was tested against several minimal configs for arm which was created using brute-force. There was one regression related to default numbers which had their valid range further limited by another symbol. Sample: config FOO int "foo" default 4 config BAR int "bar" range 0 FOO If FOO is set to 3 then BAR cannot take a value higher than 3. But the current implementation will set BAR equal to 4. This is seldomly used and the final configuration is OK, and the fix was non-trivial. So it was documented in the code and left as is. Signed-off-by: NSam Ravnborg <sam@ravnborg.org> Acked-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: NMichal Marek <mmarek@suse.cz>
-