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-wangn...@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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to