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. This will be re-enabled for new 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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in Suggested-by: Sedat Dilek sedat.dilek@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com --- Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..75b1a3dcbf30 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif
+ifndef LLVM_IAS KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif
ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4
On Tue, Nov 03, 2020 at 04:53:41PM -0800, Nick Desaulniers wrote:
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. This
Is this something that should be called out somewhere? If I understand this correctly, LLVM_IAS=1 + CONFIG_DEBUG_INFO=y won't work? Maybe this should be handled in Kconfig?
will be re-enabled for new 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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in
If you happen to respin, Dmitry deserves a Reported-by tag too :)
Suggested-by: Sedat Dilek sedat.dilek@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com
Regardless of the other two comments, this is fine as is as a fix for stable to unblock Android + CrOS since we have been running something similar to it in CI:
Reviewed-by: Nathan Chancellor natechancellor@gmail.com
Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..75b1a3dcbf30 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif +ifndef LLVM_IAS
Nit: this should probably match the existing LLVM_IAS check
ifneq ($(LLVM_IAS),1)
KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4 -- 2.29.1.341.ge80a0c044ae-goog
On 2020-11-04, Nathan Chancellor wrote:
On Tue, Nov 03, 2020 at 04:53:41PM -0800, Nick Desaulniers wrote:
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. This
Is this something that should be called out somewhere? If I understand this correctly, LLVM_IAS=1 + CONFIG_DEBUG_INFO=y won't work? Maybe this should be handled in Kconfig?
will be re-enabled for new 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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in
If you happen to respin, Dmitry deserves a Reported-by tag too :)
Suggested-by: Sedat Dilek sedat.dilek@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com
Regardless of the other two comments, this is fine as is as a fix for stable to unblock Android + CrOS since we have been running something similar to it in CI:
Reviewed-by: Nathan Chancellor natechancellor@gmail.com
Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..75b1a3dcbf30 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif
+ifndef LLVM_IAS
Nit: this should probably match the existing LLVM_IAS check
ifneq ($(LLVM_IAS),1)
KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif
ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4 -- 2.29.1.341.ge80a0c044ae-goog
The root cause is that DWARF v2 has no DW_AT_ranges, so it cannot represent non-contiguous address ranges. It seems that GNU as -gdwarf-3 emits DW_AT_ranges as well and emits an entry for a non-executable section. In any case, the option is of very low value, at least for LLVM.
Reviewed-by: Fangrui Song maskray@google.com
On Wed, Nov 4, 2020 at 10:58 PM Nathan Chancellor natechancellor@gmail.com wrote:
On Tue, Nov 03, 2020 at 04:53:41PM -0800, Nick Desaulniers wrote:
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. This
Is this something that should be called out somewhere? If I understand this correctly, LLVM_IAS=1 + CONFIG_DEBUG_INFO=y won't work? Maybe this should be handled in Kconfig?
Specifically, debug info will not be emitted, for assembler source files. It will still be emitted for C source files (via -gdwarf-*). -Wa,-gdwarf-* only affects assembler file sources.
will be re-enabled for new 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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in
If you happen to respin, Dmitry deserves a Reported-by tag too :)
Sure.
Suggested-by: Sedat Dilek sedat.dilek@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com
Regardless of the other two comments, this is fine as is as a fix for stable to unblock Android + CrOS since we have been running something similar to it in CI:
Reviewed-by: Nathan Chancellor natechancellor@gmail.com
Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..75b1a3dcbf30 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif
+ifndef LLVM_IAS
Nit: this should probably match the existing LLVM_IAS check
Sure, will send a v3. Going to just send this for now, as it's blocking some downstream work I'm trying to get done in Android.
ifneq ($(LLVM_IAS),1)
KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif
ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4 -- 2.29.1.341.ge80a0c044ae-goog
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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Dmitry Golovin dima@golovin.in Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in Suggested-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Sedat Dilek sedat.dilek@gmail.com Reviewed-by: Fangrui Song maskray@google.com Reviewed-by: Nathan Chancellor natechancellor@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com --- Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..7e899d356902 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif
+ifneq ($(LLVM_IAS),1) KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif
ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4
Hi Masahiro, have you had time to review v3 of this patch?
On Mon, Nov 9, 2020 at 10:35 AM Nick Desaulniers ndesaulniers@google.com wrote:
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@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/716 Reported-by: Dmitry Golovin dima@golovin.in Reported-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Dmitry Golovin dima@golovin.in Suggested-by: Nathan Chancellor natechancellor@gmail.com Suggested-by: Sedat Dilek sedat.dilek@gmail.com Reviewed-by: Fangrui Song maskray@google.com Reviewed-by: Nathan Chancellor natechancellor@gmail.com Signed-off-by: Nick Desaulniers ndesaulniers@google.com
Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile index f353886dbf44..7e899d356902 100644 --- a/Makefile +++ b/Makefile @@ -826,7 +826,9 @@ else DEBUG_CFLAGS += -g endif
+ifneq ($(LLVM_IAS),1) KBUILD_AFLAGS += -Wa,-gdwarf-2 +endif
ifdef CONFIG_DEBUG_INFO_DWARF4 DEBUG_CFLAGS += -gdwarf-4 -- 2.29.2.222.g5d2a92d10f8-goog
linux-stable-mirror@lists.linaro.org