Masahiro Yamada
2aad9b8962
kconfig: hide irrelevant sub-menus for oldconfig
...
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 cd9140e1e7 ("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 204c96f609 ("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 4062f1a4c0 ("kconfig: use long options in conf") made
oldconfig as loud as [0] due to misconversion.
[4] Commit 1482834971 ("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: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-26 02:03:59 +09:00
..
basic
fixdep: do not ignore kconfig.h
2018-03-05 23:48:29 +09:00
coccinelle
Coccinelle: memdup: Fix typo in warning messages
2018-03-03 00:41:24 +09:00
dtc
DeviceTree for 4.15:
2017-11-14 18:25:40 -08:00
gcc-plugins
gcc-plugins: Use dynamic initializers
2018-02-05 17:27:46 -08:00
gdb
scripts/gdb/linux/tasks.py: fix get_thread_info
2018-01-19 10:09:41 -08:00
genksyms
genksyms: drop *.hash.c from .gitignore
2018-01-13 21:50:13 +09:00
kconfig
kconfig: hide irrelevant sub-menus for oldconfig
2018-03-26 02:03:59 +09:00
ksymoops
Fix dead URLs to ftp.kernel.org
2017-03-28 16:16:52 +02:00
mod
Modules updates for v4.16
2018-02-07 14:29:34 -08:00
package
kbuild: pkg: make out-of-tree rpm/deb-pkg build immediately fail
2017-12-13 00:07:00 +09:00
selinux
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
tracing
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
.gitignore
Docs: clean up some DocBook loose ends
2017-06-23 14:17:38 -06:00
adjust_autoksyms.sh
kbuild: fix scripts/adjust_autoksyms.sh* for the no modules case
2016-12-11 22:30:10 +01:00
asn1_compiler.c
bloat-o-meter
scripts/bloat-o-meter: fix typos in help
2018-03-09 01:12:31 +09:00
bootgraph.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
check_00index.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
check_extable.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkincludes.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkkconfigsymbols.py
checkkconfigsymbols.py: support Kconfig's 'imply' statement
2017-02-03 11:49:06 +01:00
checkpatch.pl
checkpatch: kconfig: prefer 'help' over '---help---'
2018-03-26 02:03:57 +09:00
checkstack.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checksyscalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkversion.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cleanfile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cleanpatch
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
coccicheck
Coccinelle: coccicheck: fix typo
2018-02-02 00:21:47 +09:00
config
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
conmakehash.c
const_structs.checkpatch
const_structs.checkpatch: add frequently used from Julia Lawall's list
2016-10-11 15:06:30 -07:00
decode_stacktrace.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
decodecode
scripts/decodecode: make it take multiline Code line
2018-01-31 17:18:34 -08:00
depmod.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
diffconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
documentation-file-ref-check
Documentation: add script and build target to check for broken file references
2017-10-12 11:07:42 -06:00
export_report.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
extract-cert.c
extract-ikconfig
extract-module-sig.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-sys-certs.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-vmlinux
extract_xc3028.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
faddr2line
scripts/faddr2line: fix CROSS_COMPILE unset error
2017-12-14 16:00:48 -08:00
find-unused-docs.sh
scripts: Add a script to find unused documentation
2017-10-23 08:01:37 -06:00
gcc-goto.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-ld
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-plugin.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-x86_32-has-stack-protector.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-x86_64-has-stack-protector.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gen_initramfs_list.sh
Kbuild misc updates for 4.13
2017-07-07 15:09:09 -07:00
get_dvb_firmware
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
get_maintainer.pl
get_maintainer: add more --self-test options
2017-11-17 16:10:01 -08:00
gfp-translate
headerdep.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_check.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_install.sh
Merge branch 'linus' into locking/core, to resolve conflicts
2017-11-07 10:32:44 +01:00
insert-sys-cert.c
kallsyms.c
kbuild/kallsyms: trivial typo fix
2018-03-02 09:20:56 +09:00
Kbuild.include
kbuild: create directory for make cache only when necessary
2017-11-16 09:07:32 +09:00
kernel-doc
scripts: kernel_doc: better handle show warnings logic
2018-01-01 12:49:07 -07:00
ld-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
leaking_addresses.pl
leaking_addresses: add SigIgn to false positives
2017-11-14 09:29:27 +11:00
Lindent
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
link-vmlinux.sh
kbuild: drop superfluous GCC_PLUGINS_CFLAGS assignment
2018-03-02 09:20:56 +09:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.asm-generic
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.build
objtool, retpolines: Integrate objtool with retpoline support more closely
2018-02-21 16:54:32 +01:00
Makefile.clean
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.dtbinst
DeviceTree for 4.15:
2017-11-14 18:25:40 -08:00
Makefile.extrawarn
Kbuild: suppress packed-not-aligned warning for default setting only
2018-01-18 09:37:53 +09:00
Makefile.gcc-plugins
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.headersinst
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.host
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.kasan
kasan: rework Kconfig settings
2018-02-06 18:32:47 -08:00
Makefile.kcov
Makefile: support flag -fsanitizer-coverage=trace-cmp
2017-11-17 16:10:04 -08:00
Makefile.lib
kbuild: Handle builtin dtb file names containing hyphens
2018-03-09 01:14:38 +09:00
Makefile.modbuiltin
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.modinst
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.modpost
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.modsign
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.ubsan
lib/ubsan: remove returns-nonnull-attribute checks
2018-02-06 18:32:46 -08:00
makelst
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
markup_oops.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
mkcompile_h
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
mkmakefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mksysmap
mkuboot.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
module-common.lds
module: set .init_array alignment to 8
2017-03-13 09:40:28 -07:00
namespace.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
objdiff
scripts: objdiff: Ignore debug info when comparing
2017-03-11 11:13:38 +09:00
parse-maintainers.pl
parse-maintainers: add ability to specify filenames
2017-11-17 16:10:01 -08:00
patch-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pnmtologo.c
profile2linkerlist.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
prune-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
recordmcount.c
ftrace: Allow for function tracing to record init functions on boot up
2017-03-24 20:51:49 -04:00
recordmcount.h
recordmcount.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
setlocalversion
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
show_delta
sign-file.c
sign-file: fix build error in sign-file.c with libressl
2017-02-10 12:43:47 +11:00
sortextable.c
powerpc: Build-time sort the exception table
2016-11-14 11:11:51 +11:00
sortextable.h
spelling.txt
spelling.txt: add "unnecessary" typo variants
2017-11-17 16:10:00 -08:00
sphinx-pre-install
docs-rst: don't require adjustbox anymore
2017-09-08 10:02:55 -06:00
stackdelta
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stackusage
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tags.sh
scripts/tags.sh: change find_other_sources() for include directories
2018-01-31 17:18:34 -08:00
unifdef.c
ver_linux
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xen-hypercalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xz_wrap.sh