Merge tag 'kbuild-fixes-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahi...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 16 Oct 2022 18:12:22 +0000 (11:12 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 16 Oct 2022 18:12:22 +0000 (11:12 -0700)
Pull Kbuild fixes from Masahiro Yamada:

 - Fix CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y compile error for the
   combination of Clang >= 14 and GAS <= 2.35.

 - Drop vmlinux.bz2 from the rpm package as it just annoyingly increased
   the package size.

 - Fix modpost error under build environments using musl.

 - Make *.ll files keep value names for easier debugging

 - Fix single directory build

 - Prevent RISC-V from selecting the broken DWARF5 support when Clang
   and GAS are used together.

* tag 'kbuild-fixes-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
  lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5
  kbuild: fix single directory build
  kbuild: add -fno-discard-value-names to cmd_cc_ll_c
  scripts/clang-tools: Convert clang-tidy args to list
  modpost: put modpost options before argument
  kbuild: Stop including vmlinux.bz2 in the rpm's
  Kconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
  Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5

1  2 
Makefile
lib/Kconfig.debug

diff --combined Makefile
+++ b/Makefile
@@@ -1081,7 -1081,6 +1081,7 @@@ include-y                       := scripts/Makefile.extrawa
  include-$(CONFIG_DEBUG_INFO)  += scripts/Makefile.debug
  include-$(CONFIG_KASAN)               += scripts/Makefile.kasan
  include-$(CONFIG_KCSAN)               += scripts/Makefile.kcsan
 +include-$(CONFIG_KMSAN)               += scripts/Makefile.kmsan
  include-$(CONFIG_UBSAN)               += scripts/Makefile.ubsan
  include-$(CONFIG_KCOV)                += scripts/Makefile.kcov
  include-$(CONFIG_RANDSTRUCT)  += scripts/Makefile.randstruct
@@@ -1979,6 -1978,8 +1979,8 @@@ endi
  
  single-goals := $(addprefix $(build-dir)/, $(single-no-ko))
  
+ KBUILD_MODULES := 1
  endif
  
  # Preset locale variables to speed up the build process. Limit locale
diff --combined lib/Kconfig.debug
@@@ -231,6 -231,11 +231,11 @@@ config DEBUG_INF
          in the "Debug information" choice below, indicating that debug
          information will be generated for build targets.
  
+ # Clang is known to generate .{s,u}leb128 with symbol deltas with DWARF5, which
+ # some targets may not support: https://sourceware.org/bugzilla/show_bug.cgi?id=27215
+ config AS_HAS_NON_CONST_LEB128
+       def_bool $(as-instr,.uleb128 .Lexpr_end4 - .Lexpr_start3\n.Lexpr_start3:\n.Lexpr_end4:)
  choice
        prompt "Debug information"
        depends on DEBUG_KERNEL
@@@ -253,6 -258,7 +258,7 @@@ config DEBUG_INFO_NON
  config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
        bool "Rely on the toolchain's implicit default DWARF version"
        select DEBUG_INFO
+       depends on !CC_IS_CLANG || AS_IS_LLVM || CLANG_VERSION < 140000 || (AS_IS_GNU && AS_VERSION >= 23502 && AS_HAS_NON_CONST_LEB128)
        help
          The implicit default version of DWARF debug info produced by a
          toolchain changes over time.
  config DEBUG_INFO_DWARF4
        bool "Generate DWARF Version 4 debuginfo"
        select DEBUG_INFO
-       depends on !CC_IS_CLANG || (CC_IS_CLANG && (AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502)))
+       depends on !CC_IS_CLANG || AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502)
        help
          Generate DWARF v4 debug info. This requires gcc 4.5+, binutils 2.35.2
          if using clang without clang's integrated assembler, and gdb 7.0+.
  config DEBUG_INFO_DWARF5
        bool "Generate DWARF Version 5 debuginfo"
        select DEBUG_INFO
-       depends on !CC_IS_CLANG || (CC_IS_CLANG && (AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502)))
+       depends on !CC_IS_CLANG || AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502 && AS_HAS_NON_CONST_LEB128)
        help
          Generate DWARF v5 debug info. Requires binutils 2.35.2, gcc 5.0+ (gcc
          5.0+ accepts the -gdwarf-5 flag but only had partial support for some
@@@ -817,12 -823,13 +823,12 @@@ config DEBUG_V
  
          If unsure, say N.
  
 -config DEBUG_VM_VMACACHE
 -      bool "Debug VMA caching"
 +config DEBUG_VM_MAPLE_TREE
 +      bool "Debug VM maple trees"
        depends on DEBUG_VM
 +      select DEBUG_MAPLE_TREE
        help
 -        Enable this to turn on VMA caching debug information. Doing so
 -        can cause significant overhead, so only enable it in non-production
 -        environments.
 +        Enable VM maple tree debugging information and extra validations.
  
          If unsure, say N.
  
@@@ -975,7 -982,6 +981,7 @@@ config DEBUG_STACKOVERFLO
  
  source "lib/Kconfig.kasan"
  source "lib/Kconfig.kfence"
 +source "lib/Kconfig.kmsan"
  
  endmenu # "Memory Debugging"
  
@@@ -1640,14 -1646,6 +1646,14 @@@ config BUG_ON_DATA_CORRUPTIO
  
          If unsure, say N.
  
 +config DEBUG_MAPLE_TREE
 +      bool "Debug maple trees"
 +      depends on DEBUG_KERNEL
 +      help
 +        Enable maple tree debugging information and extra validations.
 +
 +        If unsure, say N.
 +
  endmenu
  
  config DEBUG_CREDENTIALS