All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: Tom Stellard <tstellar@redhat.com>
Cc: Andrii Nakryiko <andrii@kernel.org>,
	Alexei Starovoitov <ast@fb.com>, bpf <bpf@vger.kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Kernel Team <kernel-team@fb.com>,
	Networking <netdev@vger.kernel.org>
Subject: Re: [PATCH v2 bpf-next 06/11] libbpf: add BPF static linker APIs
Date: Tue, 8 Jun 2021 21:41:38 -0700	[thread overview]
Message-ID: <CAEf4BzYeMu5qRHZU2Zh4sBTU4S5sA+8Q6UMGZ4B0KVsYZ3v5-Q@mail.gmail.com> (raw)
In-Reply-To: <b322da84-95f3-2800-f2c8-556e9855d517@redhat.com>

On Tue, Jun 8, 2021 at 8:44 PM Tom Stellard <tstellar@redhat.com> wrote:
>
> On 6/7/21 9:08 PM, Andrii Nakryiko wrote:
> > On Mon, Jun 7, 2021 at 7:41 PM Tom Stellard <tstellar@redhat.com> wrote:
> >>
> >> On 6/7/21 5:25 PM, Andrii Nakryiko wrote:
> >>> On Mon, Jun 7, 2021 at 4:12 PM Tom Stellard <tstellar@redhat.com> wrote:
> >>>>
> >>>>
> >>>> Hi,
> >>>>
> >>>>> +                               } 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)
> >>
> >>>> 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.o
> >>
> >
> > So 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
>

See README.rst in selftests/bpf:

Kernel function call test and Clang version
===========================================

Some selftests (e.g. kfunc_call and bpf_tcp_ca) require a LLVM support
to generate extern function in BTF.  It was introduced in `Clang 13`__.

Without it, the error from compiling bpf selftests looks like:

.. code-block:: console

  libbpf: failed to find BTF for extern 'tcp_slow_start' [25] section: -2

__ https://reviews.llvm.org/D93563


> -Tom
>
>
>
> >> Thanks,
> >> Tom
> >>
> >>>>
> >>>>>
> >>>>> Thanks,
> >>>>> Tom
> >>>>>
> >>>>
> >>>
> >>
> >
>

  reply	other threads:[~2021-06-09  4:43 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-13 19:35 [PATCH v2 bpf-next 00/11] BPF static linking Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 01/11] libbpf: expose btf_type_by_id() internally Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 02/11] libbpf: generalize BTF and BTF.ext type ID and strings iteration Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 03/11] libbpf: rename internal memory-management helpers Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 04/11] libbpf: extract internal set-of-strings datastructure APIs Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 05/11] libbpf: add generic BTF type shallow copy API Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 06/11] libbpf: add BPF static linker APIs Andrii Nakryiko
2021-06-07 23:11   ` Tom Stellard
2021-06-08  0:25     ` Andrii Nakryiko
     [not found]       ` <b1bdf1df-e3a8-1ce8-fc33-4ab40b39fb06@redhat.com>
2021-06-08  2:41         ` Tom Stellard
2021-06-08  4:08           ` Andrii Nakryiko
2021-06-08  6:47             ` Yonghong Song
2021-06-09  3:44             ` Tom Stellard
2021-06-09  4:41               ` Andrii Nakryiko [this message]
2021-03-13 19:35 ` [PATCH v2 bpf-next 07/11] libbpf: add BPF static linker BTF and BTF.ext support Andrii Nakryiko
2021-03-17  5:25   ` Alexei Starovoitov
2021-03-17 22:10     ` Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 08/11] bpftool: add `gen object` command to perform BPF static linking Andrii Nakryiko
2021-03-15  9:24   ` Quentin Monnet
2021-03-16  5:16     ` Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 09/11] selftests/bpf: re-generate vmlinux.h and BPF skeletons if bpftool changed Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 10/11] selftests/bpf: pass all BPF .o's through BPF static linker Andrii Nakryiko
2021-03-17  5:34   ` Alexei Starovoitov
2021-03-17 20:47     ` Andrii Nakryiko
2021-03-17 21:00       ` Alexei Starovoitov
2021-03-17 21:22         ` Andrii Nakryiko
2021-03-13 19:35 ` [PATCH v2 bpf-next 11/11] selftests/bpf: add multi-file statically linked BPF object file test Andrii Nakryiko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEf4BzYeMu5qRHZU2Zh4sBTU4S5sA+8Q6UMGZ4B0KVsYZ3v5-Q@mail.gmail.com \
    --to=andrii.nakryiko@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@fb.com \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=kernel-team@fb.com \
    --cc=netdev@vger.kernel.org \
    --cc=tstellar@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.