Messages in this thread | | | Date | Thu, 17 Dec 2015 18:09:26 +0800 | From | "Wangnan (F)" <> | Subject | Re: [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations |
| |
On 2015/12/17 16:29, Daniel Wagner wrote: > On 12/17/2015 08:03 AM, Daniel Wagner wrote: >> On 12/17/2015 07:51 AM, Wangnan (F) wrote: >>> On 2015/12/17 14:38, Daniel Wagner wrote: >>>> On 12/17/2015 06:23 AM, Wang Nan wrote: >>>>> Since we already have libbpf in tools/lib, we don't need to maintain >>>>> another bpf loader and operations library in samples/bpf. >>>>> >>>>> In patchset: >>>>> >>>>> Patch 1/10 - 7/10 improves libbpf, add missing features to support >>>>> samples, >>>>> >>>>> Patch 8/10 adds utils.[ch], which creates similar API like old >>>>> bpf_load.c and libbpf.c. >>>>> >>>>> Patch 9/10 replace all sampels to use API provides by utils.[ch] and >>>>> libbpf. >>>>> >>>>> Patch 10/10 removes unneeded files. >>>> Which tree did you use for your patches? I tried to apply them against >>>> mainline and net-next which didn't really work out. >>> These patches based on Arnaldo's 'perf/core' because of those libbpf >>> changes. >> Okay, I'll try with this one. > I applied those patches on top of > > 5c560cfcf1c0 ("tools subcmd: Rename subcmd header include guards") > > 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@huawei.com
sorry.
> 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
?
This error means it can't find libelf on your platform, but it is not true obviously.
> > Executing the above command line by myself in order > to figure out what's going on ended in this mess: > > > $ 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 > make: Entering directory '/home/wagi/src/linux/tools/lib/bpf' > > Auto-detecting system features: > ... libelf: [ on ] > ... bpf: [ on ] > > [...] > > samples/bpf/fds_example.c: In function ‘bpf_do_map’: > samples/bpf/fds_example.c:78:9: warning: implicit declaration of function ‘bpf_pin_object’ [-Wimplicit-function-declaration] > ret = bpf_pin_object(fd, file); > ^ > samples/bpf/fds_example.c:82:8: warning: implicit declaration of function ‘bpf_get_pinned_object’ [-Wimplicit-function-declaration] > fd = bpf_get_pinned_object(file); > ^ > gcc -Lsamples/bpf/libbpf -o samples/bpf/fds_example samples/bpf/utils.o samples/bpf/fds_example.o -lelf -lbpf > samples/bpf/fds_example.o: In function `main': > 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 > scripts/Makefile.host:100: recipe for target 'samples/bpf/fds_example' failed > make[1]: *** [samples/bpf/fds_example] Error 1 > Makefile:1550: recipe for target 'samples/bpf/' failed > make: *** [samples/bpf/] Error 2 > [wagi@handman linux (bpf-test)]$ 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 > HOSTLD samples/bpf/fds_example > samples/bpf/fds_example.o: In function `main': > 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?
Thank you.
| |