Thread (12 messages) 12 messages, 4 authors, 2021-01-15

Re: [PATCH v4 2/3] Kbuild: make DWARF version a choice

From: Sedat Dilek <hidden>
Date: 2021-01-14 07:21:32
Also in: linux-kbuild, lkml

On Thu, Jan 14, 2021 at 12:27 AM Nick Desaulniers
[off-list ref] wrote:
Sedat,
Thanks for testing, and congrats on https://lwn.net/Articles/839772/.
I always appreciate you taking the time to help test my work, and
other Clang+Linux kernel patches!
Hi Nick,

cool, again in the top 15 :-).

I should ask Mr. Corbet for a LWN subscription.
On Wed, Jan 13, 2021 at 1:24 PM Sedat Dilek [off-list ref] wrote:
quoted
On Wed, Jan 13, 2021 at 1:32 AM Nick Desaulniers
[off-list ref] wrote:
quoted
--- a/Makefile
+++ b/Makefile
@@ -826,12 +826,16 @@ else
 DEBUG_CFLAGS   += -g
 endif

-ifneq ($(LLVM_IAS),1)
-KBUILD_AFLAGS  += -Wa,-gdwarf-2
+dwarf-version-$(CONFIG_DEBUG_INFO_DWARF2) := 2
+dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4
+DEBUG_CFLAGS   += -gdwarf-$(dwarf-version-y)
^ DEBUG_CFLAGS are set for everyone (all toolchains) if
CONFIG_DEBUG_INFO is defined.
quoted
quoted
+ifneq ($(dwarf-version-y)$(LLVM_IAS),21)
^ "If not using dwarf 2 and LLVM_IAS=1", ie. CONFIG_DEBUG_INFO_DWARF5
&& CONFIG_CC_IS_GCC
OK, I know DWARF v2 and LLVM_IAS=1 is broken.

Looks like DWARF v5 with GCC v10.2.1 and binutils v2.35.1 is currently
(here) no good choice.
quoted
quoted
+# Binutils 2.35+ required for -gdwarf-4+ support.
+dwarf-aflag    := $(call as-option,-Wa$(comma)-gdwarf-$(dwarf-version-y))
+ifdef CONFIG_CC_IS_CLANG
^ "if clang"
quoted
quoted
+DEBUG_CFLAGS   += $(dwarf-aflag)
 endif
Why is that "ifdef CONFIG_CC_IS_CLANG"?
That's what Arvind requested on v2, IIUC:
https://lore.kernel.org/lkml/X8psgMuL4jMjP%2FOy@rani.riverdale.lan/ (local)
quoted
When I use GCC v10.2.1 DEBUG_CFLAGS are not set.
You should have -gdwarf-4 (and not -Wa,-gwarf-4) set for DEBUG_CFLAGS
when compiling with GCC and enabling CONFIG_DEBUG_INFO_DWARF4. Can you
please confirm? (Perhaps you may have accidentally disabled
CONFIG_DEBUG_INFO by rerunning `make defconfig`?)
$ egrep 'CC_IS_|LD_IS|BTF|DWARF'
config-5.11.0-rc3-5-amd64-gcc10-llvm11 | grep ^CONFIG
CONFIG_CC_IS_GCC=y
CONFIG_LD_IS_LLD=y
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_DEBUG_INFO_BTF_MODULES=y

$ grep '\-Wa,-gdwarf-4' build-log_5.11.0-rc3-5-amd64-gcc10-llvm11.txt
| wc -l
156
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help