On Wed, Jul 09, 2025 at 10:46:07AM -0400, Zi Yan wrote:
On 9 Jul 2025, at 8:32, wang lian wrote:
Thanks for testing the patch and reporting this build failure. I don't have an arm64 environment readily available for testing, so I appreciate you catching this. I suspect this is caused by missing or older userspace headers in the cross-compilation toolchain.
Right. My /usr/include/sys does not have pidfd.h. IMHO selftests should not rely on userspace headers, otherwise we cannot test latest kernel changes.
That's not realistic, we need to be able to use things like libc and for many areas you'd just end up copying or reimplmenenting the userspace libraries. There's some concerns for sure, for example we used to have hideous problems with the BPF tests needing extremely recent versions of LLVM which weren't available from distros, but just saying nothing from userspace is a big blocker to getting things done. With some things they're widely enough available that you can just assume they're there, with other things they're less standard so we need build time checks.
OTOH in a case like this where we can just refer directly to a kernel header for some constants or structs then it does make sense to use the kernel headers, or in other cases where we're testing things that are intended to be controlled by libc it makes sense to use nolibc avoid conflicting with libc.