Messages in this thread | | | Date | Tue, 30 Jun 2015 10:29:08 +0800 | From | "Wangnan (F)" <> | Subject | Re: [RFC PATCH v9 02/50] tools build: Add feature check for eBPF API |
| |
On 2015/6/30 3:41, Arnaldo Carvalho de Melo wrote: > Em Mon, Jun 29, 2015 at 04:21:51PM -0300, Arnaldo Carvalho de Melo escreveu: >> Em Fri, Jun 26, 2015 at 02:15:07PM +0000, Wang Nan escreveu: >>> In this patch, eBPF API is checked by compiling a c source file which >>> uses fields in bpf_attr which will be used by libbpf. >>> >>> Signed-off-by: Wang Nan <wangnan0@huawei.com> >>> Acked-by: Alexei Starovoitov <ast@plumgrid.com> >> So, I just applied this and after trying: >> >> [acme@felicio linux]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf >> ; make O=/tmp/build/perf -C tools/perf install-bin >> make: Entering directory `/home/acme/git/linux/tools/perf' >> BUILD: Doing 'make -j4' parallel build >> >> Auto-detecting system features: >> ... dwarf: [ on ] >> ... glibc: [ on ] >> ... gtk2: [ on ] >> ... libaudit: [ on ] >> ... libbfd: [ on ] >> ... libelf: [ on ] >> ... libnuma: [ on ] >> ... libperl: [ on ] >> ... libpython: [ on ] >> ... libslang: [ on ] >> ... libunwind: [ on ] >> ... libdw-dwarf-unwind: [ on ] >> ... zlib: [ on ] >> ... lzma: [ on ] >> ... bpf: [ OFF ] >> >> MKDIR /tmp/build/perf/util/ >> CC /tmp/build/perf/util/abspath.o >> >> -------------------------------------------------------- >> >> So, what should I do now? I want to have that OFF line turned to "on", >> so that I can test this stuff. >> >> But the changelog says nothing about it, lemme check the cover letter, >> but having to do that is annoying, one expects to have instructions >> related to some specific changeset in its comments... > So, when such build tests fail, we can see why by looking for a file > with a special name in the O= output dir: > > [acme@felicio linux]$ cat /tmp/build/perf/feature/test-bpf.make.output > test-bpf.c:1:23: fatal error: linux/bpf.h: No such file or directory > #include <linux/bpf.h> > ^ > compilation terminated. > [acme@felicio linux]$
This patch tries to check the version of bpf.h, because old bpf.h doesn't define 'kern_version' field for 'union bpf_attr'.
I think the problem you meet is caused by missing of kernel headers in your host system environment. After patch 'perf tools: Make perf depend on libbpf' this checking should always success because it adds required headers into MANIFEST and setup FEATURE_CHECK_CFLAGS-bpf.
Also, after applying 3/50 you should see this:
# make O=/tmp/build/bpf/ -C tools/lib/bpf/
Auto-detecting system features: ... libelf: [ on ] ... libelf-getphdrnum: [ on ] ... libelf-mmap: [ on ] ... bpf: [ on ]
make: Entering directory `/home/wn/kernel-hydrogen/tools/lib/bpf' CC /tmp/build/bpf/libbpf.o LD /tmp/build/bpf/libbpf-in.o LINK /tmp/build/bpf/libbpf.a LINK /tmp/build/bpf/libbpf.so make: Leaving directory `/home/wn/kernel/tools/lib/bpf'
Even if in perf checking bpf should fail in your machine now, checking bpf feature in libbpf should success because when build libbpf I have added following setting to tools/lib/bpf/Makefile:
INCLUDES = -I. -I$(srctree)/tools/include -I$(srctree)/arch/$(ARCH)/include/uapi -I$(srctree)/include/uapi FEATURE_CHECK_CFLAGS-bpf = $(INCLUDES)
Do you want me to squash 2/30 and 3/50 together and append 'bpf' checker into FEATURE_TESTS in tools/build/Makefile.feature in 23/50? Then there should be less confusion: when compiling perf before 23/50, bpf feature will never be checked then.
Thank you.
> Right, one of the few things that could explain the failure, but: > > [acme@felicio linux]$ find . -name bpf.h > ./include/linux/bpf.h > ./include/uapi/linux/bpf.h > [acme@felicio linux]$ > > So lemme try doing it in place: > > [acme@felicio linux]$ make -C tools/perf/ > make: Entering directory `/home/acme/git/linux/tools/perf' > BUILD: Doing 'make -j4' parallel build > > Auto-detecting system features: > ... dwarf: [ on ] > ... glibc: [ on ] > ... gtk2: [ on ] > ... libaudit: [ on ] > ... libbfd: [ on ] > ... libelf: [ on ] > ... libnuma: [ on ] > ... libperl: [ on ] > ... libpython: [ on ] > ... libslang: [ on ] > ... libunwind: [ on ] > ... libdw-dwarf-unwind: [ on ] > ... zlib: [ on ] > ... lzma: [ on ] > ... bpf: [ OFF ] > > > Doesn't work as well :-\ > > Looking at the following patches... > > - Arnaldo
| |