From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
To: Justin Forbes <jmforbes@linuxtx.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>,
Song Liu <songliubraving@fb.com>,
Andrii Nakryiko <andriin@fb.com>,
Alexei Starovoitov <ast@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"open list:BPF (Safe dynamic programs and tools)"
<netdev@vger.kernel.org>, Yonghong Song <yhs@fb.com>,
"open list:BPF (Safe dynamic programs and tools)"
<bpf@vger.kernel.org>,
linuxppc-dev@lists.ozlabs.org, Martin KaFai Lau <kafai@fb.com>,
Aurelien Jarno <aurelien@aurel32.net>,
debian-kernel@lists.debian.org
Subject: Re: [PATCH] libbpf: fix readelf output parsing on powerpc with recent binutils
Date: Tue, 10 Dec 2019 19:25:53 -0300 [thread overview]
Message-ID: <20191210222553.GA4580@calabresa> (raw)
In-Reply-To: <CAFxkdAqg6RaGbRrNN3e_nHfHFR-xxzZgjhi5AnppTxxwdg0VyQ@mail.gmail.com>
On Tue, Dec 10, 2019 at 12:58:33PM -0600, Justin Forbes wrote:
> On Mon, Dec 2, 2019 at 3:37 AM Daniel Borkmann <daniel@iogearbox.net> wrote:
> >
> > On Mon, Dec 02, 2019 at 04:53:26PM +1100, Michael Ellerman wrote:
> > > Aurelien Jarno <aurelien@aurel32.net> writes:
> > > > On powerpc with recent versions of binutils, readelf outputs an extra
> > > > field when dumping the symbols of an object file. For example:
> > > >
> > > > 35: 0000000000000838 96 FUNC LOCAL DEFAULT [<localentry>: 8] 1 btf_is_struct
> > > >
> > > > The extra "[<localentry>: 8]" prevents the GLOBAL_SYM_COUNT variable to
> > > > be computed correctly and causes the checkabi target to fail.
> > > >
> > > > Fix that by looking for the symbol name in the last field instead of the
> > > > 8th one. This way it should also cope with future extra fields.
> > > >
> > > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > > > ---
> > > > tools/lib/bpf/Makefile | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > Thanks for fixing that, it's been on my very long list of test failures
> > > for a while.
> > >
> > > Tested-by: Michael Ellerman <mpe@ellerman.id.au>
> >
> > Looks good & also continues to work on x86. Applied, thanks!
>
> This actually seems to break horribly on PPC64le with binutils 2.33.1
> resulting in:
> Warning: Num of global symbols in sharedobjs/libbpf-in.o (32) does NOT
> match with num of versioned symbols in libbpf.so (184). Please make
> sure all LIBBPF_API symbols are versioned in libbpf.map.
>
> This is the only arch that fails, with x86/arm/aarch64/s390 all
> building fine. Reverting this patch allows successful build across
> all arches.
>
> Justin
Well, I ended up debugging this same issue and had the same fix as Jarno's when
I noticed his fix was already applied.
I just installed a system with the latest binutils, 2.33.1, and it still breaks
without such fix. Can you tell what is the output of the following command on
your system?
readelf -s --wide tools/lib/bpf/sharedobjs/libbpf-in.o | cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $0}'
Cascardo.
WARNING: multiple messages have this Message-ID (diff)
From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
To: Justin Forbes <jmforbes@linuxtx.org>
Cc: Song Liu <songliubraving@fb.com>,
Daniel Borkmann <daniel@iogearbox.net>,
"open list:BPF \(Safe dynamic programs and tools\)"
<netdev@vger.kernel.org>,
linuxppc-dev@lists.ozlabs.org,
Alexei Starovoitov <ast@kernel.org>,
LKML <linux-kernel@vger.kernel.org>, Yonghong Song <yhs@fb.com>,
"open list:BPF \(Safe dynamic programs and tools\)"
<bpf@vger.kernel.org>, Andrii Nakryiko <andriin@fb.com>,
Martin KaFai Lau <kafai@fb.com>,
Aurelien Jarno <aurelien@aurel32.net>,
debian-kernel@lists.debian.org
Subject: Re: [PATCH] libbpf: fix readelf output parsing on powerpc with recent binutils
Date: Tue, 10 Dec 2019 19:25:53 -0300 [thread overview]
Message-ID: <20191210222553.GA4580@calabresa> (raw)
In-Reply-To: <CAFxkdAqg6RaGbRrNN3e_nHfHFR-xxzZgjhi5AnppTxxwdg0VyQ@mail.gmail.com>
On Tue, Dec 10, 2019 at 12:58:33PM -0600, Justin Forbes wrote:
> On Mon, Dec 2, 2019 at 3:37 AM Daniel Borkmann <daniel@iogearbox.net> wrote:
> >
> > On Mon, Dec 02, 2019 at 04:53:26PM +1100, Michael Ellerman wrote:
> > > Aurelien Jarno <aurelien@aurel32.net> writes:
> > > > On powerpc with recent versions of binutils, readelf outputs an extra
> > > > field when dumping the symbols of an object file. For example:
> > > >
> > > > 35: 0000000000000838 96 FUNC LOCAL DEFAULT [<localentry>: 8] 1 btf_is_struct
> > > >
> > > > The extra "[<localentry>: 8]" prevents the GLOBAL_SYM_COUNT variable to
> > > > be computed correctly and causes the checkabi target to fail.
> > > >
> > > > Fix that by looking for the symbol name in the last field instead of the
> > > > 8th one. This way it should also cope with future extra fields.
> > > >
> > > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > > > ---
> > > > tools/lib/bpf/Makefile | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > Thanks for fixing that, it's been on my very long list of test failures
> > > for a while.
> > >
> > > Tested-by: Michael Ellerman <mpe@ellerman.id.au>
> >
> > Looks good & also continues to work on x86. Applied, thanks!
>
> This actually seems to break horribly on PPC64le with binutils 2.33.1
> resulting in:
> Warning: Num of global symbols in sharedobjs/libbpf-in.o (32) does NOT
> match with num of versioned symbols in libbpf.so (184). Please make
> sure all LIBBPF_API symbols are versioned in libbpf.map.
>
> This is the only arch that fails, with x86/arm/aarch64/s390 all
> building fine. Reverting this patch allows successful build across
> all arches.
>
> Justin
Well, I ended up debugging this same issue and had the same fix as Jarno's when
I noticed his fix was already applied.
I just installed a system with the latest binutils, 2.33.1, and it still breaks
without such fix. Can you tell what is the output of the following command on
your system?
readelf -s --wide tools/lib/bpf/sharedobjs/libbpf-in.o | cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $0}'
Cascardo.
next prev parent reply other threads:[~2019-12-10 22:26 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-01 19:57 [PATCH] libbpf: fix readelf output parsing on powerpc with recent binutils Aurelien Jarno
2019-12-01 19:57 ` Aurelien Jarno
2019-12-02 5:53 ` Michael Ellerman
2019-12-02 5:53 ` Michael Ellerman
2019-12-02 9:37 ` Daniel Borkmann
2019-12-02 9:37 ` Daniel Borkmann
2019-12-10 18:58 ` Justin Forbes
2019-12-10 18:58 ` Justin Forbes
2019-12-10 22:25 ` Thadeu Lima de Souza Cascardo [this message]
2019-12-10 22:25 ` Thadeu Lima de Souza Cascardo
2019-12-11 15:33 ` Justin Forbes
2019-12-11 15:33 ` Justin Forbes
2019-12-11 16:00 ` Aurelien Jarno
2019-12-11 16:00 ` Aurelien Jarno
2019-12-11 16:01 ` Thadeu Lima de Souza Cascardo
2019-12-11 16:01 ` Thadeu Lima de Souza Cascardo
2019-12-11 16:52 ` Justin Forbes
2019-12-11 16:52 ` Justin Forbes
2019-12-13 10:11 ` [PATCH] libbpf: Fix readelf output parsing for Fedora Thadeu Lima de Souza Cascardo
2019-12-13 10:11 ` Thadeu Lima de Souza Cascardo
2019-12-13 17:02 ` Andrii Nakryiko
2019-12-13 17:02 ` Andrii Nakryiko
2019-12-15 17:42 ` Alexei Starovoitov
2019-12-15 17:42 ` Alexei Starovoitov
2019-12-12 0:53 ` [PATCH] libbpf: fix readelf output parsing on powerpc with recent binutils Michael Ellerman
2019-12-12 0:53 ` Michael Ellerman
2019-12-13 15:39 ` Ben Hutchings
2019-12-13 15:39 ` Ben Hutchings
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=20191210222553.GA4580@calabresa \
--to=cascardo@canonical.com \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=aurelien@aurel32.net \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=debian-kernel@lists.debian.org \
--cc=jmforbes@linuxtx.org \
--cc=kafai@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=yhs@fb.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.