[PATCH 4.19 001/346] Kbuild: do not emit debug info for assembly with LLVM_IAS=1

From: Greg Kroah-Hartman
Date: Mon Dec 28 2020 - 08:20:03 EST


From: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

commit b8a9092330da2030496ff357272f342eb970d51b upstream.

Clang's integrated assembler produces the warning for assembly files:

warning: DWARF2 only supports one section per compilation unit

If -Wa,-gdwarf-* is unspecified, then debug info is not emitted for
assembly sources (it is still emitted for C sources). This will be
re-enabled for newer DWARF versions in a follow up patch.

Enables defconfig+CONFIG_DEBUG_INFO to build cleanly with
LLVM=1 LLVM_IAS=1 for x86_64 and arm64.

Cc: <stable@xxxxxxxxxxxxxxx>
Link: https://github.com/ClangBuiltLinux/linux/issues/716
Reported-by: Dmitry Golovin <dima@xxxxxxxxxx>
Reported-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
Suggested-by: Dmitry Golovin <dima@xxxxxxxxxx>
Suggested-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
Suggested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Reviewed-by: Fangrui Song <maskray@xxxxxxxxxx>
Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
[nd: backport to avoid conflicts from:
commit 10e68b02c861 ("Makefile: support compressed debug info")
commit 7b16994437c7 ("Makefile: Improve compressed debug info support detection")
commit 695afd3d7d58 ("kbuild: Simplify DEBUG_INFO Kconfig handling")]
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
Makefile | 3 +++
1 file changed, 3 insertions(+)

--- a/Makefile
+++ b/Makefile
@@ -745,8 +745,11 @@ KBUILD_CFLAGS += $(call cc-option, -gs
else
KBUILD_CFLAGS += -g
endif
+ifneq ($(LLVM_IAS),1)
KBUILD_AFLAGS += -Wa,-gdwarf-2
endif
+endif
+
ifdef CONFIG_DEBUG_INFO_DWARF4
KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
endif