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

From: Daniel Wagner
Date: Fri Dec 18 2015 - 07:56:19 EST


On 12/18/2015 12:03 PM, Wangnan (F) wrote:
> That's good. This is not a magic.

That is what you say! :)

> I guess something in your top makefile
> causes this feature check failure. I sent a patch on feature checker to
> you.
> It will appear as [1] soon. Could you please apply it and try again?

Sure.

> This time you will see test-*.make.output and test-*.make.makeoutput.
> test-*.make.output lists your PATH, PWD and the gcc command you use for
> feature check. test-*.make.makeoutput is the output of 'make' itself. I
> think
> from these information we can find the root cause easier.

$ ls samples/bpf/libbpf/feature.libbpf/*
samples/bpf/libbpf/feature.libbpf/test-all.make.makeoutput
samples/bpf/libbpf/feature.libbpf/test-bpf.make.makeoutput
samples/bpf/libbpf/feature.libbpf/test-libelf-getphdrnum.make.makeoutput
samples/bpf/libbpf/feature.libbpf/test-libelf.make.makeoutput
samples/bpf/libbpf/feature.libbpf/test-libelf-mmap.make.makeoutput

$ cat samples/bpf/libbpf/feature.libbpf/*
make[2]: *** tools/build/feature: No such file or directory. Stop.
make[2]: *** tools/build/feature: No such file or directory. Stop.
make[2]: *** tools/build/feature: No such file or directory. Stop.
make[2]: *** tools/build/feature: No such file or directory. Stop.
make[2]: *** tools/build/feature: No such file or directory. Stop.

$ find -name *.make.output
./tools/build/feature/test-gtk2.make.output
./tools/build/feature/test-libpython.make.output
./tools/build/feature/test-libunwind.make.output
./tools/build/feature/test-bionic.make.output
./tools/build/feature/test-libelf-mmap.make.output
./tools/build/feature/test-numa_num_possible_cpus.make.output
./tools/build/feature/test-libaudit.make.output
./tools/build/feature/test-libslang.make.output
./tools/build/feature/test-libdw-dwarf-unwind.make.output
./tools/build/feature/test-libbfd.make.output
./tools/build/feature/test-get_cpuid.make.output
./tools/build/feature/test-zlib.make.output
./tools/build/feature/test-libelf.make.output
./tools/build/feature/test-libperl.make.output
./tools/build/feature/test-bpf.make.output
./tools/build/feature/test-dwarf.make.output
./tools/build/feature/test-libnuma.make.output
./tools/build/feature/test-glibc.make.output
./tools/build/feature/test-cplus-demangle.make.output
./tools/build/feature/test-libelf-getphdrnum.make.output
./tools/build/feature/test-all.make.output
./tools/build/feature/test-lzma.make.output


$ ls -l tools/build/feature/*.make.output
-rw-rw-r-- 1 wagi wagi 419 Dec 17 14:39 tools/build/feature/test-all.make.output
-rw-rw-r-- 1 wagi wagi 104 Oct 20 09:59 tools/build/feature/test-bionic.make.output
-rw-rw-r-- 1 wagi wagi 0 Dec 17 09:01 tools/build/feature/test-bpf.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-cplus-demangle.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-dwarf.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-get_cpuid.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-glibc.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-gtk2.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libaudit.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libbfd.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libdw-dwarf-unwind.make.output
-rw-rw-r-- 1 wagi wagi 0 Dec 17 09:01 tools/build/feature/test-libelf-getphdrnum.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libelf.make.output
-rw-rw-r-- 1 wagi wagi 0 Dec 17 09:01 tools/build/feature/test-libelf-mmap.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libnuma.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libperl.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libpython.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libslang.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-libunwind.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-lzma.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-numa_num_possible_cpus.make.output
-rw-rw-r-- 1 wagi wagi 0 Oct 20 09:59 tools/build/feature/test-zlib.make.output

$ cat tools/build/feature/test-all.make.output
In file included from /usr/include/Python.h:7:0,
from test-libpython.c:1,
from test-all.c:13:
/usr/lib64/perl5/CORE/patchlevel.h:135:2: error: âNULLâ undeclared here (not in a function)
NULL
^
In file included from test-libpython.c:1:0,
from test-all.c:13:
/usr/include/Python.h:8:22: fatal error: pyconfig.h: No such file or directory
compilation terminated.

$ cat tools/build/feature/test-bionic.make.output
test-bionic.c:1:31: fatal error: android/api-level.h: No such file or directory
compilation terminated.


Could it be that $(srcdir) somehow is not correct? I exchanged

feature_dir := $(srctree)/tools/build/feature
to
feature_dir := /home/wagi/src/linux/tools/build/feature

and then the feature check worked in this case but still no fun:


$ 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

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

make -f ./tools/build/Makefile.build dir=. obj=libbpf
make[3]: tools/build/Makefile.build: No such file or directory
make[3]: *** No rule to make target 'tools/build/Makefile.build'. Stop.
Makefile:155: recipe for target '/home/wagi/src/linux/samples/bpf/libbpf/libbpf-in.o' failed
make[2]: *** [/home/wagi/src/linux/samples/bpf/libbpf/libbpf-in.o] Error 2
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
--
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/