The "make headers" requirement, revisited: [PATCH v3 3/3] selftests: pidfd: add tests for PIDFD_SELF_*

John Hubbard
2024-10-17T02:01:44Z

On 10/16/24 1:00 PM, Shuah Khan wrote:
> On 10/16/24 04:20, Lorenzo Stoakes wrote:
...
>> diff --git a/tools/testing/selftests/pidfd/pidfd.h b/tools/testing/selftests/pidfd/pidfd.h
>> index 88d6830ee004..1640b711889b 100644
>> --- a/tools/testing/selftests/pidfd/pidfd.h
>> +++ b/tools/testing/selftests/pidfd/pidfd.h
>> @@ -50,6 +50,14 @@
>>   #define PIDFD_NONBLOCK O_NONBLOCK
>>   #endif
>> +/* System header file may not have this available. */
>> +#ifndef PIDFD_SELF_THREAD
>> +#define PIDFD_SELF_THREAD -100
>> +#endif
>> +#ifndef PIDFD_SELF_THREAD_GROUP
>> +#define PIDFD_SELF_THREAD_GROUP -200
>> +#endif
>> +
>
> As mentioned in my response to v1 patch:
>
> kselftest has dependency on "make headers" and tests include
> headers from linux/ directory

Wait, what?! Noooo!

Hi, Shuah! :)

We have had this conversation before. And there were fireworks coming from
various core kernel developers who found that requirement to be unacceptable.

And in response, I made at selftests/mm tests buildable *without* requiring
a "make headers" first, in [1].

I haven't followed up with other subsystems, but...maybe I should. Because
otherwise we're just going to keep having this discussion.

The requirement to do "make headers" is not a keeper. Really.

>
> These local make it difficult to maintain these tests in the
> longer term. Somebody has to go clean these up later.

There are other approaches to making things work. Again, please see [1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e076eaca5906

thanks,
--
John Hubbard