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

From: Greg Kroah-Hartman
Date: Mon Dec 14 2020 - 14:31:10 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 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
@@ -821,8 +821,11 @@ DEBUG_CFLAGS += -gsplit-dwarf
else
DEBUG_CFLAGS += -g
endif
+ifneq ($(LLVM_IAS),1)
KBUILD_AFLAGS += -Wa,-gdwarf-2
endif
+endif
+
ifdef CONFIG_DEBUG_INFO_DWARF4
DEBUG_CFLAGS += -gdwarf-4
endif