[PATCH] selftests: Fix arm64 test installation

John Hubbard jhubbard at nvidia.com
Mon Jul 10 16:10:14 PDT 2023


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,
-- 
John Hubbard
NVIDIA




More information about the linux-arm-kernel mailing list