Re: [PATCH v2 bpf-next 06/11] libbpf: add BPF static linker APIs
From: Tom Stellard <hidden>
Date: 2021-06-09 03:44:09
Also in:
bpf
On 6/7/21 9:08 PM, Andrii Nakryiko wrote:
On Mon, Jun 7, 2021 at 7:41 PM Tom Stellard [off-list ref] wrote:quoted
On 6/7/21 5:25 PM, Andrii Nakryiko wrote:quoted
On Mon, Jun 7, 2021 at 4:12 PM Tom Stellard [off-list ref] wrote:quoted
Hi,quoted
+ } else { + pr_warn("relocation against STT_SECTION in non-exec section is not supported!\n"); + return -EINVAL; + }Kernel build of commit 324c92e5e0ee are failing for me with this error message: /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/bpf/bpftool/bpftool gen object /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/testing/selftests/bpf/bind_perm.linked1.o /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/testing/selftests/bpf/bind_perm.o libbpf: relocation against STT_SECTION in non-exec section is not supported! What information can I provide to help debug this failure?Can you please send that bind_perm.o file? Also what's your `clang --version` output?clang version 12.0.0 (Fedora 12.0.0-2.fc35)quoted
quoted
I suspect this might be due to Clang commit 6a2ea84600ba ("BPF: Add more relocation kinds"), but I get a different error on 324c92e5e0ee. So meanwhile you might try applying 9f0c317f6aa1 ("libbpf: Add support for new llvm bpf relocations") from bpf-next/master and check if that helps. But please do share bind_perm.o, just to double-check what's going on.Here is bind_perm.o: https://fedorapeople.org/~tstellar/bind_perm.oSo somehow you end up with .eh_frame section in BPF object file, which shouldn't ever happen. So there must be something that you are doing differently (compiler flags or something else) that makes Clang produce .eh_frame. So we need to figure out why .eh_frame gets generated. Not sure how, but maybe you have some ideas of what might be different about your build.
Thanks for the pointer. The problem was that in the Fedora kernel builds, we enable -funwind-tables by default on all architectures, which is why the .eh_frame section was there. I fixed our clang builds, but I'm now getting a new error when I run: CC=clang make -C tools/testing/selftests/bpf V=1 /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/testing/selftests/bpf/tools/sbin/bpftool gen skeleton /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/testing/selftests/bpf/bpf_cubic.linked3.o name bpf_cubic > /builddir/build/BUILD/kernel-5.13-rc4-61-g324c92e5e0ee/linux-5.13.0-0.rc4.20210603git324c92e5e0ee.35.fc35.x86_64/tools/testing/selftests/bpf/bpf_cubic.skel.h libbpf: failed to find BTF for extern 'tcp_cong_avoid_ai' [27] section: -2 Here is the bpf_cubic.lined3.o object file: https://fedorapeople.org/~tstellar/bpf_cubic.linked3.o -Tom
quoted
Thanks, Tomquoted
quoted
quoted
Thanks, Tom