Hi Shuah,
CC kbuild, gpio
On Thu, Sep 14, 2017 at 5:34 PM Shuah Khan shuah@kernel.org wrote:
bpf test depends on clang and fails to compile when
make -C tools/testing/selftests/bpf run_tests
make: clang: Command not found Makefile:39: recipe for target '.linux-kselftest/tools/testing/selftests/bpf/test_pkt_access.o' failed make: *** [./linux-kselftest/tools/testing/selftests/bpf/test_pkt_access.o] Error 127 make: Leaving directory '.linux-kselftest/tools/testing/selftests/bpf'
The above failure is indeed due to missing clang.
With "make TARGETS=bpf kselftest" it fails earlier:
make[3]: Entering directory './linux-kselftest/tools/lib/bpf' Makefile:40: tools/scripts/Makefile.arch: No such file or directory Makefile:84: tools/build/Makefile.feature: No such file or directory Makefile:143: tools/build/Makefile.include: No such file or directory
This is due to srctree being "." instead of the actual source tree, when invoked as "make kselftest". When using "make -C tools/testing/selftests", srctree is correct.
tools/testing/selftests/bpf/Makefile has:
$(BPFOBJ): force $(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
to enter the tools/lib/bpf directory to force a build of libbpf.a
Note that tools/gpio has the same issue.
There seem to be _four_ different ways to build kselftests (Documentation/dev-tools/kselftest.rst):
make kselftest make O=/path/to/output kselftest make -C tools/testing/selftests make O=/path/to/output -C tools/testing/selftests
I'm not so fond of the latter two, as they basically run make from somewhere inside the tree, which complicates things. I believe we don't support this anywhere else.
Each of the four seem to have (different) issues. Especially when you throw cross-compiling into the mix. And care about where installed headers end up (yes, kselftest calls headers_install internally).
I'm working on fixes for some of them, but I don't know how to fix the srctree issue.
Anyone with a suggestion?
Thanks!
make[3]: *** No rule to make target 'tools/build/Makefile.include'. Stop. make[3]: Leaving directory '.linux-kselftest/tools/lib/bpf' Makefile:34: recipe for target './linux-kselftest/tools/testing/selftests/bpf/libbpf.a' failed make[2]: *** [./linux-kselftest/tools/testing/selftests/bpf/libbpf.a] Error 2 make[2]: Leaving directory './linux-kselftest/tools/testing/selftests/bpf' Makefile:69: recipe for target 'all' failed make[1]: *** [all] Error 2 Makefile:1190: recipe for target 'kselftest' failed make: *** [kselftest] Error 2
Gr{oetje,eeting}s,
Geert
Hi Geert,
On 1/4/19 10:16 AM, Geert Uytterhoeven wrote:
Hi Shuah,
CC kbuild, gpio
On Thu, Sep 14, 2017 at 5:34 PM Shuah Khan shuah@kernel.org wrote:
bpf test depends on clang and fails to compile when
make -C tools/testing/selftests/bpf run_tests
make: clang: Command not found Makefile:39: recipe for target '.linux-kselftest/tools/testing/selftests/bpf/test_pkt_access.o' failed make: *** [./linux-kselftest/tools/testing/selftests/bpf/test_pkt_access.o] Error 127 make: Leaving directory '.linux-kselftest/tools/testing/selftests/bpf'
The above failure is indeed due to missing clang.
With "make TARGETS=bpf kselftest" it fails earlier:
make[3]: Entering directory './linux-kselftest/tools/lib/bpf' Makefile:40: tools/scripts/Makefile.arch: No such file or directory Makefile:84: tools/build/Makefile.feature: No such file or directory Makefile:143: tools/build/Makefile.include: No such file or directory
This is due to srctree being "." instead of the actual source tree, when invoked as "make kselftest". When using "make -C tools/testing/selftests", srctree is correct.
tools/testing/selftests/bpf/Makefile has:
$(BPFOBJ): force $(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
to enter the tools/lib/bpf directory to force a build of libbpf.a
Note that tools/gpio has the same issue.
There seem to be _four_ different ways to build kselftests (Documentation/dev-tools/kselftest.rst):
make kselftest make O=/path/to/output kselftest make -C tools/testing/selftests make O=/path/to/output -C tools/testing/selftests
I'm not so fond of the latter two, as they basically run make from somewhere inside the tree, which complicates things. I believe we don't support this anywhere else.
Each of the four seem to have (different) issues. Especially when you throw cross-compiling into the mix. And care about where installed headers end up (yes, kselftest calls headers_install internally).
I'm working on fixes for some of them, but I don't know how to fix the srctree issue.
I will take a look at the srctree problem and fix it. I have had to fix a few individual test Makefiles after ksefltest headers_install went in.
It will be in a week or two. I am taking some time off this week and next week other than for occasional email checking.
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org