Re: [PATCH] selftests: powerpc: Add header symlinks for building papr character device tests

From: Nathan Lynch
Date: Thu Feb 15 2024 - 14:39:57 EST


Michal Suchánek <msuchanek@xxxxxxx> writes:
> On Thu, Feb 15, 2024 at 01:13:34PM -0600, Nathan Lynch wrote:
>> Michal Suchanek <msuchanek@xxxxxxx> writes:
>> >
>> > Without the headers the tests don't build.
>> >
>> > Fixes: 9118c5d32bdd ("powerpc/selftests: Add test for papr-vpd")
>> > Fixes: 76b2ec3faeaa ("powerpc/selftests: Add test for papr-sysparm")
>> > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
>> > ---
>> > tools/testing/selftests/powerpc/include/asm/papr-miscdev.h | 1 +
>> > tools/testing/selftests/powerpc/include/asm/papr-sysparm.h | 1 +
>> > tools/testing/selftests/powerpc/include/asm/papr-vpd.h | 1 +
>> > 3 files changed, 3 insertions(+)
>> > create mode 120000 tools/testing/selftests/powerpc/include/asm/papr-miscdev.h
>> > create mode 120000 tools/testing/selftests/powerpc/include/asm/papr-sysparm.h
>> > create mode 120000
>> > tools/testing/selftests/powerpc/include/asm/papr-vpd.h
>>
>> I really hope making symlinks into the kernel source isn't necessary. I
>> haven't experienced build failures with these tests. How are you
>> building them?
>>
>> I usually do something like (on a x86 build host):
>>
>> $ make ARCH=powerpc CROSS_COMPILE=powerpc64le-linux- ppc64le_defconfig
>> $ make ARCH=powerpc CROSS_COMPILE=powerpc64le-linux- headers
>> $ make ARCH=powerpc CROSS_COMPILE=powerpc64le-linux- -C tools/testing/selftests/powerpc/
>>
>> without issue.
>
> I am not configuring the kernel, only building the tests, and certainly
> not installing headers on the system.

OK, but again: how do you provoke the build errors, exactly? Don't make
us guess please.

> Apparently this is what people aim to do, and report bugs when it does
> not work: build the kselftests as self-contained testsuite that relies
> only on standard libc, and whatever it brought in the sources.
>
> That said, the target to install headers is headers_install, not
> headers. The headers target is not documented, it's probably meant to be
> internal to the build system. Yet it is not enforced that it is built
> before building the selftests.

<shrug> the headers target is used in Documentation/dev-tools/kselftest.rst:

"""
To build the tests::

$ make headers
$ make -C tools/testing/selftests
"""

This is what I've been following.