Skip to content

Commit 7b16994

Browse files
nivedita76masahir0y
authored andcommitted
Makefile: Improve compressed debug info support detection
Commit 10e68b0 ("Makefile: support compressed debug info") added support for compressed debug sections. Support is detected by checking - does the compiler support -gz=zlib - does the assembler support --compressed-debug-sections=zlib - does the linker support --compressed-debug-sections=zlib However, the gcc driver's support for this option is somewhat convoluted. The driver's builtin specs are set based on the version of binutils that it was configured with. It reports an error if the configure-time linker/assembler (i.e., not necessarily the actual assembler that will be run) do not support the option, but only if the assembler (or linker) is actually invoked when -gz=zlib is passed. The cc-option check in scripts/Kconfig.include does not invoke the assembler, so the gcc driver reports success even if it does not support the option being passed to the assembler. Because the as-option check passes the option directly to the assembler via -Wa,--compressed-debug-sections=zlib, the gcc driver does not see this option and will never report an error. Combined with an installed version of binutils that is more recent than the one the compiler was built with, it is possible for all three tests to succeed, yet an actual compilation with -gz=zlib to fail. Moreover, it is unnecessary to explicitly pass --compressed-debug-sections=zlib to the assembler via -Wa, since the driver will do that automatically when it supports -gz=zlib. Convert the as-option to just -gz=zlib, simplifying it as well as performing a better test of the gcc driver's capabilities. Reported-by: kernel test robot <[email protected]> Signed-off-by: Arvind Sankar <[email protected]> Reviewed-by: Nick Desaulniers <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
1 parent b3a9e3b commit 7b16994

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ endif
828828

829829
ifdef CONFIG_DEBUG_INFO_COMPRESSED
830830
DEBUG_CFLAGS += -gz=zlib
831-
KBUILD_AFLAGS += -Wa,--compress-debug-sections=zlib
831+
KBUILD_AFLAGS += -gz=zlib
832832
KBUILD_LDFLAGS += --compress-debug-sections=zlib
833833
endif
834834

lib/Kconfig.debug

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ config DEBUG_INFO_COMPRESSED
229229
bool "Compressed debugging information"
230230
depends on DEBUG_INFO
231231
depends on $(cc-option,-gz=zlib)
232-
depends on $(as-option,-Wa$(comma)--compress-debug-sections=zlib)
232+
depends on $(as-option,-gz=zlib)
233233
depends on $(ld-option,--compress-debug-sections=zlib)
234234
help
235235
Compress the debug information using zlib. Requires GCC 5.0+ or Clang

0 commit comments

Comments
 (0)