• A
    Makefile: Improve compressed debug info support detection · 7b169944
    Arvind Sankar 提交于
    Commit
      10e68b02 ("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: Nkernel test robot <lkp@intel.com>
    Signed-off-by: NArvind Sankar <nivedita@alum.mit.edu>
    Reviewed-by: NNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
    7b169944
Kconfig.debug 76.0 KB