On 7/10/23 15:30, Mark Brown wrote: ...
There is a floor on binutils version for the kselftests that's more aggressive than that for the kernel itself, though that looks like RHEL 8 which has binutils 2.30 which *should* be fine for most things - the MTE tests won't build but they do have version detection so should skip, I guess you might have trouble with PAC support which doesn't have detection in the tests? It's certainly old enough that I'm surprised to hear someone doing development for anything current with it.
This used to be a development machine, but now it is sufficiently old that it is lightly used--that would explain how I could reserve it on short notice for this. Maybe I'll adopt it and upgrade to a modern distro, now that I seem to need an arm64 box.
I just tried a Debian based GCC 8 container which seems pretty happy for arm64, the command was:
make -j16 O=/tmp/out INSTALL_PATH=/tmp/kselftest \ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ CROSS_COMPILE_COMPAT=arm-linux-gnueabihf- kselftest-install
(the compat toolchain isn't used here IIRC). It does skip the MTE tests but otherwise isn't showing any obvious issues in the arm64 tests.
Thank you for providing a snapshot of what it looks like on gcc 8 over there.
OK, so actually, many of the failures were due to the "all" target getting run too early (recursive make, again, uggh). With the fix below, there are still a dozen failures in selftests, but only one in the arm64 tree, after all.
...
That does seem to work around the issue at least with a quick out of tree build, including with GCC 8.
Great news! That's really helpful. And in fact, I have discovered two more things:
1) The "emit_tests" target is there apparently because commit 313a4db7f3387 ("kselftest: arm64: extend toplevel skeleton Makefile") believed that it was necessary to skip emitting tests if not on the right native platform. I'm tempted to delete the entire emit_tests target in both arm64 and riscv selftests (and that also seems to work just fine) in order to simplify things, perhaps as a follow up step.
For now I'll just post the simpler fix, though.
2) riscv has copied this Makefile subtest technique to its (very small so far) set of selftests. I have no native system to test any fixes on, but I'm probably going to post a "blind" fix for that one, too.
thanks,