On Tue, Sep 27, 2022 at 11:56 AM Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > Hi Arnaldo, > > When building a kernel with LLVM and CONFIG_DEBUG_INFO_BTF after commit > 32ef9e5054ec ("Makefile.debug: re-enable debug info for .S files") in > the kernel, I see the following spew of warnings, which appear to come > from pahole: > > $ clang --version > clang version 15.0.0 (Fedora 15.0.0-3.fc38) > Target: x86_64-redhat-linux-gnu > Thread model: posix > InstalledDir: /usr/bin > > $ pahole --version > v1.24 > > $ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 defconfig > > $ scripts/config \ > -d DEBUG_INFO_NONE \ > -e BPF_SYSCALL \ > -e DEBUG_INFO_BTF \ > -e DEBUG_INFO_DWARF5 > > $ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 olddefconfig all > ... > die__process_unit: DW_TAG_label (0xa) @ <0x7b> not handled! > die__process_unit: tag not supported 0xa (label)! > die__process_unit: DW_TAG_label (0xa) @ <0x97> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0xbd> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0xed> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0x109> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0x12a> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0x146> not handled! > die__process_unit: DW_TAG_label (0xa) @ <0x16f> not handled! Running llvm-dwarfdump on vmlinux, I see: ``` $ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 olddefconfig all die__process_unit: DW_TAG_label (0xa) @ <0xbf> not handled! die__process_unit: tag not supported 0xa (label)! ... $ llvm-dwarfdump vmlinux | less ... 0x000000bf: DW_TAG_label DW_AT_name ("startup_64") DW_AT_decl_file ("/android0/kernel-all/arch/x86/kernel/head_64.S") DW_AT_decl_line (868) DW_AT_low_pc (0xffffffff81000000) 0x000000db: DW_TAG_label DW_AT_name ("secondary_startup_64") DW_AT_decl_file ("/android0/kernel-all/arch/x86/kernel/head_64.S") DW_AT_decl_line (921) DW_AT_low_pc (0xffffffff81000060) ... ``` So these seem to be labels in assembler sources. The DW_TAGs look the same to be for labels from C sources. > ... > > Is this a problem with LLVM or pahole? I do not see this when building > with GCC + GNU as but that could just be a red herring. I assume that > there could be something missing for processing debug info from > assembly, perhaps? That's what I suspect. > If there is any further information I can provide or > anything I can test, I am more than happy to do so. > > Cheers, > Nathan I swear I used to be able to build pahole from sources...just moved to a new machine and something seems off... $ sudo apt install libdwarf-dev libdw-dev $ git clone git://git.kernel.org/pub/scm/devel/pahole/pahole.git $ mkdir pahole/build $ cd !$ $ cmake -D__LIB=lib .. $ make ... [ 63%] Linking C executable codiff /usr/bin/ld: libdwarves.so.1.0.0: undefined reference to `dwfl_module_getelf' /usr/bin/ld: libdwarves.so.1.0.0: undefined reference to `dwfl_report_end' ... -- Thanks, ~Nick Desaulniers