Re: [PATCH v5 0/3] Kbuild: DWARF v5 support

From: Andrii Nakryiko
Date: Thu Feb 04 2021 - 18:55:43 EST


On Wed, Feb 3, 2021 at 7:13 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote:
>
> On Wed, Feb 3, 2021 at 6:58 PM Andrii Nakryiko
> <andrii.nakryiko@xxxxxxxxx> wrote:
> >
> > On Wed, Feb 3, 2021 at 5:31 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote:
> > >
> > > On Sun, Jan 17, 2021 at 12:14 PM Arnaldo Carvalho de Melo
> > > <acme@xxxxxxxxxx> wrote:
> > > >
> > > > Em Fri, Jan 15, 2021 at 03:43:06PM -0800, Yonghong Song escreveu:
> > > > >
> > > > >
> > > > > On 1/15/21 3:34 PM, Nick Desaulniers wrote:
> > > > > > On Fri, Jan 15, 2021 at 3:24 PM Yonghong Song <yhs@xxxxxx> wrote:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 1/15/21 1:53 PM, Sedat Dilek wrote:
> > > > > > > > En plus, I encountered breakage with GCC v10.2.1 and LLVM=1 and
> > > > > > > > CONFIG_DEBUG_INFO_DWARF4.
> > > > > > > > So might be good to add a "depends on !DEBUG_INFO_BTF" in this combination.
> > > > > >
> > > > > > Can you privately send me your configs that repro? Maybe I can isolate
> > > > > > it to a set of configs?
> > > > > >
> > > > > > >
> > > > > > > I suggested not to add !DEBUG_INFO_BTF to CONFIG_DEBUG_INFO_DWARF4.
> > > > > > > It is not there before and adding this may suddenly break some users.
> > > > > > >
> > > > > > > If certain combination of gcc/llvm does not work for
> > > > > > > CONFIG_DEBUG_INFO_DWARF4 with pahole, this is a bug bpf community
> > > > > > > should fix.
> > > > > >
> > > > > > Is there a place I should report bugs?
> > > > >
> > > > > You can send bug report to Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>,
> > > > > dwarves@xxxxxxxxxxxxxxx and bpf@xxxxxxxxxxxxxxx.
> > > >
> > > > I'm coming back from vacation, will try to read the messages and see if
> > > > I can fix this.
> > >
> > > IDK about DWARF v4; that seems to work for me. I was previously observing
> > > https://bugzilla.redhat.com/show_bug.cgi?id=1922698
> > > with DWARF v5. I just re-pulled the latest pahole, rebuilt, and no
> > > longer see that warning.
> > >
> > > I now observe a different set. I plan on attending "BPF office hours
> > > tomorrow morning," but if anyone wants a sneak peak of the errors and
> > > how to reproduce:
> > > https://gist.github.com/nickdesaulniers/ae8c9efbe4da69b1cf0dce138c1d2781
> > >
> >
> > Is there another (easy) way to get your patch set without the b4 tool?
> > Is your patch set present in some patchworks instance, so that I can
> > download it in mbox format, for example?
>
> $ wget https://lore.kernel.org/lkml/20210130004401.2528717-2-ndesaulniers@xxxxxxxxxx/raw
> -O - | git am
> $ wget https://lore.kernel.org/lkml/20210130004401.2528717-3-ndesaulniers@xxxxxxxxxx/raw
> -O - | git am
>
> If you haven't tried b4 yet, it's quite nice. Hard to go back. Lore
> also has mbox.gz links. Not sure about patchwork.
>

Ok, I managed to apply that on linux-next, but I can't get past this:

ld.lld: error: undefined symbol: pa_trampoline_start
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)

ld.lld: error: undefined symbol: pa_trampoline_header
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)

ld.lld: error: undefined symbol: pa_trampoline_pgd
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)
>>> referenced by trampoline_64.S:142 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:142)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)

ld.lld: error: undefined symbol: pa_wakeup_start
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)

ld.lld: error: undefined symbol: pa_wakeup_header
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)

ld.lld: error: undefined symbol: pa_machine_real_restart_asm
>>> referenced by arch/x86/realmode/rm/header.o:(real_mode_header)

ld.lld: error: undefined symbol: pa_startup_32
>>> referenced by trampoline_64.S:77 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:77)
>>> arch/x86/realmode/rm/trampoline_64.o:(trampoline_start)

ld.lld: error: undefined symbol: pa_tr_flags
>>> referenced by trampoline_64.S:124 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:124)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)

ld.lld: error: undefined symbol: pa_tr_cr4
>>> referenced by trampoline_64.S:138 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:138)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)

ld.lld: error: undefined symbol: pa_tr_efer
>>> referenced by trampoline_64.S:146 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:146)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)
>>> referenced by trampoline_64.S:147 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:147)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)

ld.lld: error: undefined symbol: pa_startup_64
>>> referenced by trampoline_64.S:161 (/data/users/andriin/linux/arch/x86/realmode/rm/trampoline_64.S:161)
>>> arch/x86/realmode/rm/trampoline_64.o:(startup_32)

ld.lld: error: undefined symbol: pa_tr_gdt
>>> referenced by arch/x86/realmode/rm/trampoline_64.o:(tr_gdt)
>>> referenced by reboot.S:28 (/data/users/andriin/linux/arch/x86/realmode/rm/reboot.S:28)
>>> arch/x86/realmode/rm/reboot.o:(machine_real_restart_asm)

ld.lld: error: undefined symbol: pa_machine_real_restart_paging_off
>>> referenced by reboot.S:34 (/data/users/andriin/linux/arch/x86/realmode/rm/reboot.S:34)
>>> arch/x86/realmode/rm/reboot.o:(machine_real_restart_asm)

ld.lld: error: undefined symbol: pa_machine_real_restart_idt
>>> referenced by reboot.S:47 (/data/users/andriin/linux/arch/x86/realmode/rm/reboot.S:47)
>>> arch/x86/realmode/rm/reboot.o:(machine_real_restart_asm)

ld.lld: error: undefined symbol: pa_machine_real_restart_gdt
>>> referenced by reboot.S:54 (/data/users/andriin/linux/arch/x86/realmode/rm/reboot.S:54)
>>> arch/x86/realmode/rm/reboot.o:(machine_real_restart_asm)
>>> referenced by arch/x86/realmode/rm/reboot.o:(machine_real_restart_gdt)

ld.lld: error: undefined symbol: pa_wakeup_gdt
>>> referenced by arch/x86/realmode/rm/wakeup_asm.o:(wakeup_gdt)
CC arch/x86/mm/numa_64.o
CC arch/x86/mm/amdtopology.o
HOSTCC arch/x86/entry/vdso/vdso2c
make[4]: *** [arch/x86/realmode/rm/realmode.elf] Error 1
make[3]: *** [arch/x86/realmode/rm/realmode.bin] Error 2
make[2]: *** [arch/x86/realmode] Error 2
make[2]: *** Waiting for unfinished jobs....


Hopefully Arnaldo will have better luck.



> >
> > >
> > > (FWIW: some other folks are hitting issues now with kernel's lack of
> > > DWARF v5 support: https://bugzilla.redhat.com/show_bug.cgi?id=1922707)
>
>
> --
> Thanks,
> ~Nick Desaulniers