Dear stable kernel maintainers, (Woah, two in one day; have I exceeded my limit?) Please consider the attached patch for 5.4 and 4.19 for commit b8a9092330da ("Kbuild: do not emit debug info for assembly with LLVM_IAS=1"), which fixes a significant number of warnings under arch/ when assembling a kernel with Clang. These backports have already been shipped in Android; I would like to revert them and take them from syncing with stable. CrOS also has the patches staged, but I would prefer for them to sync them from stable as well. b8a9092330da just landed in v5.10-rc7. I recently read https://lwn.net/Articles/838819/, which mentions a discussion about letting patches have more time to soak in mainline, so I accept if your decision is to wait, though I'll note these have been soaking in Android for 2 days shy of one month (Nov 10). There were minor conflicts due to missing Kbuild support for compressed debug info, which is a feature I implemented but don't plan to backport to stable. We plan to use Clang's integrated assembler for Android and CrOS for 4.19+. See also: https://github.com/ClangBuiltLinux/linux/issues/716. -- Thanks, ~Nick Desaulniers
From 125bcd1867e6b59f4eb364522276bc273e2648e2 Mon Sep 17 00:00:00 2001 From: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Date: Mon, 9 Nov 2020 10:35:28 -0800 Subject: [PATCH] Kbuild: do not emit debug info for assembly with LLVM_IAS=1 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")] --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index e520dee34490..f8c766b35b71 100644 --- a/Makefile +++ b/Makefile @@ -802,8 +802,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 -- 2.29.2.576.ga3fc446d84-goog
From 17369ed6faa2ebdf4c10accfd6ca9075fdcbb4a2 Mon Sep 17 00:00:00 2001 From: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Date: Mon, 9 Nov 2020 10:35:28 -0800 Subject: [PATCH] Kbuild: do not emit debug info for assembly with LLVM_IAS=1 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")] --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 71e55c5cd74a..4c6ac3c6995f 100644 --- a/Makefile +++ b/Makefile @@ -745,8 +745,11 @@ KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g) 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 -- 2.29.2.576.ga3fc446d84-goog