On Sun, 15 Sep 2024 09:36:10 +0200 Willem de Bruijn wrote:
You’re right, the patch is incorrect, I could have explained better. I’m seeing an issue with an out-of-tree cross compilation build of kselftest and can’t figure out what’s wrong.
make --keep-going --jobs=32 O=/tmp/build INSTALL_PATH=/tmp/build/kselftest_install \ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ CROSS_COMPILE_COMPAT=arm-linux-gnueabihf- kselftest-install
[...] make[4]: Entering directory '/home/anders/src/kernel/linux/tools/testing/selftests/net/lib' CC csum /usr/lib/gcc-cross/aarch64-linux-gnu/13/../../../../aarch64-linux-gnu/bin/ld: cannot open output file /tmp/build/kselftest/net/lib/csum: No such file or directory collect2: error: ld returned 1 exit status [...]
Any thoughts on what might be causing this?
I wonder if this is due to the O= argument.
Last week I noticed that some TARGETs explicitly have support for this, like x86. Added in 2016 in commit a8ba798bc8ec6 ("selftests: enable O and KBUILD_OUTPUT"). But by now this support is hardly universal. amd-pstate does not have this infra, for instance.
Though if the only breakage is in net/lib, then that does not explain it fully.
Some funny business with this install target, I haven't investigated fully but the dependency on all doesn't seem to do its job, and the install target has a copy/paste of all with this line missing:
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile index 3b7df5477317..3aee8e7b9993 100644 --- a/tools/testing/selftests/Makefile +++ b/tools/testing/selftests/Makefile @@ -261,6 +261,7 @@ ifdef INSTALL_PATH @ret=1; \ for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \ BUILD_TARGET=$$BUILD/$$TARGET; \ + mkdir -p $$BUILD_TARGET; \ $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install \ INSTALL_PATH=$(INSTALL_PATH)/$$TARGET \ SRC_PATH=$(shell readlink -e $$(pwd)) \
Andres, please feel free to test / write commit message and submit this one liner, but even with that the build for some targets fails for me. "make [..] install" seems wobbly.