Message ID | 20220128214131.580131-1-keescook@chromium.org (mailing list archive) |
---|---|
State | Mainlined |
Commit | f9b3cd24578401e7a392974b3353277286e49cee |
Headers | show |
Series | Kconfig.debug: Make DEBUG_INFO always default=n | expand |
On Fri, Jan 28, 2022 at 01:41:31PM -0800, Kees Cook wrote: > While trying to make sure CONFIG_DEBUG_INFO wasn't set for COMPILE_TEST, > I ordered the choices incorrectly to retain the prior default=n state. > Move DEBUG_INFO_NONE to the top so that the default choice is disabled, > and remove the "if COMPILE_TEST" as it is now redundant. > > Reported-by: Nathan Chancellor <nathan@kernel.org> > Link: https://lore.kernel.org/lkml/YfRY6+CaQxX7O8vF@dev-arch.archlinux-ax161 > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Masahiro Yamada <masahiroy@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Miguel Ojeda <ojeda@kernel.org> > Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Another fallout of the original change is that defconfigs that do enable CONFIG_DEBUG_INFO without any of the DWARF version configs will not have debug info anymore. Mainline: $ make -sj$(nproc) ARCH=arm64 LLVM=1 mrproper defconfig && rg DEBUG_INFO .config 9296:CONFIG_DEBUG_INFO=y 9297:CONFIG_DEBUG_INFO_REDUCED=y 9298:# CONFIG_DEBUG_INFO_COMPRESSED is not set 9299:# CONFIG_DEBUG_INFO_SPLIT is not set 9300:CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y 9301:# CONFIG_DEBUG_INFO_DWARF4 is not set 9302:# CONFIG_DEBUG_INFO_DWARF5 is not set next-20220128: $ make -sj$(nproc) ARCH=arm64 LLVM=1 mrproper defconfig && rg DEBUG_INFO .config 9299:CONFIG_DEBUG_INFO=y 9300:CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y 9301:# CONFIG_DEBUG_INFO_DWARF4 is not set 9302:# CONFIG_DEBUG_INFO_DWARF5 is not set 9303:# CONFIG_DEBUG_INFO_NONE is not set 9304:CONFIG_DEBUG_INFO_REDUCED=y 9305:# CONFIG_DEBUG_INFO_COMPRESSED is not set 9306:# CONFIG_DEBUG_INFO_SPLIT is not set next-20220128 + this patch: $ make -sj$(nproc) ARCH=arm64 LLVM=1 mrproper defconfig && rg DEBUG_INFO .config 9299:CONFIG_DEBUG_INFO_NONE=y 9300:# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set 9301:# CONFIG_DEBUG_INFO_DWARF4 is not set 9302:# CONFIG_DEBUG_INFO_DWARF5 is not set I guess there is not really a way around that other than having people regenerate their defconfigs (which should really be done each release anyways) since DEBUG_INFO is no longer a user selectable symbol and it is probably better to have this choice default to no debug info rather than debug info. Is there any precedent to updating defconfigs due to a change like this or some other way to let people know about it? Cheers, Nathan > --- > Andrew, this is a fix for kconfigdebug-make-debug_info-selectable-from-a-choice.patch > --- > lib/Kconfig.debug | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index a7b657d67318..a1262358d55a 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -234,7 +234,6 @@ config DEBUG_INFO > choice > prompt "Debug information" > depends on DEBUG_KERNEL > - default DEBUG_INFO_NONE if COMPILE_TEST > help > Selecting something other than "None" results in a kernel image > that will include debugging info resulting in a larger kernel image. > @@ -245,6 +244,12 @@ choice > Choose which version of DWARF debug info to emit. If unsure, > select "Toolchain default". > > +config DEBUG_INFO_NONE > + bool "Disable debug information" > + help > + Do not build the kernel with debugging information, which will > + result in a faster and smaller build. > + > config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT > bool "Rely on the toolchain's implicit default DWARF version" > select DEBUG_INFO > @@ -283,12 +288,6 @@ config DEBUG_INFO_DWARF5 > config if they rely on tooling that has not yet been updated to > support DWARF Version 5. > > -config DEBUG_INFO_NONE > - bool "Disable debug information" > - help > - Do not build the kernel with debugging information, which will > - result in a faster and smaller build. > - > endchoice # "Debug information" > > if DEBUG_INFO > -- > 2.30.2 >
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a7b657d67318..a1262358d55a 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -234,7 +234,6 @@ config DEBUG_INFO choice prompt "Debug information" depends on DEBUG_KERNEL - default DEBUG_INFO_NONE if COMPILE_TEST help Selecting something other than "None" results in a kernel image that will include debugging info resulting in a larger kernel image. @@ -245,6 +244,12 @@ choice Choose which version of DWARF debug info to emit. If unsure, select "Toolchain default". +config DEBUG_INFO_NONE + bool "Disable debug information" + help + Do not build the kernel with debugging information, which will + result in a faster and smaller build. + config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT bool "Rely on the toolchain's implicit default DWARF version" select DEBUG_INFO @@ -283,12 +288,6 @@ config DEBUG_INFO_DWARF5 config if they rely on tooling that has not yet been updated to support DWARF Version 5. -config DEBUG_INFO_NONE - bool "Disable debug information" - help - Do not build the kernel with debugging information, which will - result in a faster and smaller build. - endchoice # "Debug information" if DEBUG_INFO
While trying to make sure CONFIG_DEBUG_INFO wasn't set for COMPILE_TEST, I ordered the choices incorrectly to retain the prior default=n state. Move DEBUG_INFO_NONE to the top so that the default choice is disabled, and remove the "if COMPILE_TEST" as it is now redundant. Reported-by: Nathan Chancellor <nathan@kernel.org> Link: https://lore.kernel.org/lkml/YfRY6+CaQxX7O8vF@dev-arch.archlinux-ax161 Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Kees Cook <keescook@chromium.org> --- Andrew, this is a fix for kconfigdebug-make-debug_info-selectable-from-a-choice.patch --- lib/Kconfig.debug | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)