On 9/25/19 10:11 PM, Tim.Bird@sony.com wrote:
I found a bug in kselftest KBUILD_OUTPUT handling.
The following works: $ cd /home/tbird/work/linux $ export KBUILD_OUTPUT=/home/tbird/work/kbuild $ yes '' | make localmodconfig $ make TARGETS=size kselftest
But this doesn't work: $ cd /home/tbird/work/linux $ export KBUILD_OUTPUT=../kbuild $ yes '' | make localmodconfig $ make TARGETS=size kselftest
I see the following: make[1]: Entering directory '/home/tbird/work/kbuild' make --no-builtin-rules INSTALL_HDR_PATH=$BUILD/usr \ ARCH=x86 -C ../../.. headers_install INSTALL ../kbuild/kselftest/usr/include gcc -static -ffreestanding -nostartfiles -s get_size.c -o ../kbuild/kselftest/size/get_size /usr/bin/ld: cannot open output file ../kbuild/kselftest/size/get_size: No such file or directory collect2: error: ld returned 1 exit status ../lib.mk:138: recipe for target '../kbuild/kselftest/size/get_size' failed make[3]: *** [../kbuild/kselftest/size/get_size] Error 1 Makefile:136: recipe for target 'all' failed make[2]: *** [all] Error 2 /home/tbird/work/linux/Makefile:1240: recipe for target 'kselftest' failed make[1]: *** [kselftest] Error 2 make[1]: Leaving directory '/home/tbird/work/kbuild' Makefile:179: recipe for target 'sub-make' failed make: *** [sub-make] Error 2
This is due to the relative path for KBUILD_OUTPUT being handled incorrectly (I believe) in tools/testing/selftests/Makefile.
Thanks Tim! I will take a look as part of my work to simplify kselftest use-cases.
thanks, -- Shuah