Re: [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations

From: Daniel Wagner
Date: Thu Dec 17 2015 - 08:46:18 EST


On 12/17/2015 11:09 AM, Wangnan (F) wrote:
> On 2015/12/17 16:29, Daniel Wagner wrote:
>> On 12/17/2015 08:03 AM, Daniel Wagner wrote:
>> Patch number 2 didn't apply cleanly.
>
> Because I have another patch in my local tree which also modifis bpf
> Makefile:
>
> http://lkml.kernel.org/g/1450316632-152513-1-git-send-email-wangnan0@xxxxxxxxxx
>
> sorry.

Ah, that explains it this problem.

>> After fixing this manually
>> I was able to continue to the build step:
>>
>> $ make samples/bpf/
>> CHK include/config/kernel.release
>> CHK include/generated/uapi/linux/version.h
>> CHK include/generated/utsrelease.h
>> CHK include/generated/bounds.h
>> CHK include/generated/timeconst.h
>> CHK include/generated/asm-offsets.h
>> CALL scripts/checksyscalls.sh
>> make -C /home/wagi/src/linux/tools/lib/bpf
>> O=/home/wagi/src/linux/samples/bpf/libbpf CFLAGS= LDFLAGS= V=1
>> /home/wagi/src/linux/samples/bpf/libbpf/libbpf.a
>> No libelf found
>> Makefile:203: recipe for target 'elfdep' failed
>> make[2]: *** [elfdep] Error 255
>> samples/bpf/Makefile:10: recipe for target
>> 'samples/bpf/libbpf/libbpf.a' failed
>> make[1]: *** [samples/bpf/libbpf/libbpf.a] Error 2
>> Makefile:1550: recipe for target 'samples/bpf/' failed
>> make: *** [samples/bpf/] Error 2
>
> When you see this, could you please have a look at:
>
> /home/wagi/src/linux/samples/bpf/libbpf/feature/test-*.make.output
>
> ?

test-libpython.c:1:20: fatal error: Python.h: No such file or directory

$ find /usr/include -name Python.h
/usr/include/python3.4m/Python.h
/usr/include/python2.7/Python.h

Adding a symlink to /usr/include/Python.h to
/usr/include/python2.7/Python.h didn't help.

> This error means it can't find libelf on your platform, but it is not
> true obviously.

Yeah look like. Funny thing though is if I build libelf directly

$ make -C tools/lib/bpf/
make: Entering directory '/home/wagi/src/linux/tools/lib/bpf'

Auto-detecting system features:
... libelf: [ on ]
... bpf: [ on ]

CC fixdep.o
LD fixdep-in.o
LINK fixdep
CC libbpf.o
CC bpf.o
LD libbpf-in.o
LINK libbpf.a
LINK libbpf.so
make: Leaving directory '/home/wagi/src/linux/tools/lib/bpf'

all is fine.

>> fds_example.c:(.text.startup+0x20e): undefined reference to
>> `bpf_pin_object'
>> fds_example.c:(.text.startup+0x2b0): undefined reference to
>> `bpf_pin_object'
>> fds_example.c:(.text.startup+0x2f3): undefined reference to
>> `bpf_get_pinned_object'
>> fds_example.c:(.text.startup+0x344): undefined reference to
>> `bpf_get_pinned_object'
>> collect2: error: ld returned 1 exit status
>>
>
> Could you please check whether this patch:
>
> bpf tools: Support BPF_OBJ_PIN and BPF_OBJ_GET
>
> is applied properly?

No it wasn't. Sorry about that one. I didn't pay enough attention when
applying them. The v2 of 6 did upset my workflow.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/