Re: [PATCH] libbpf: fix readelf output parsing on powerpc with recent binutils
From: Justin Forbes <hidden>
Date: 2019-12-10 18:58:48
Also in:
bpf, linuxppc-dev, lkml
On Mon, Dec 2, 2019 at 3:37 AM Daniel Borkmann [off-list ref] wrote:
On Mon, Dec 02, 2019 at 04:53:26PM +1100, Michael Ellerman wrote:quoted
Aurelien Jarno [off-list ref] writes:quoted
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