Re: [PATCH v2] gpiolib: use the required minimum set of headers

David Laight
2025-02-28T17:50:22Z

On Thu, 27 Feb 2025 11:22:41 +0200
Andy Shevchenko <andy.shevchenko@gmail.com> wrote:

...
> > A 'fun' activity is to pick a random file add "#define _IOW xxx" at the
> > top and see where ioctl.h is is first included from.
> > (I've not got a build machine up at the moment.)
> >
> > Then start fixing that include sequence.
> > Moving a few headers around is otherwise pretty pointless.
>
> Have you tried to help with reviewing this?
>
> https://lwn.net/ml/linux-kernel/YdIfz+LMewetSaEB@gmail.com/
>

Not seriously, though maybe I remember it.

'dayjobs' makefile first deletes all the SUFFIX and builtin rules.
Then it copies lots of headers from all over everywhere into a (fairly
flat) obj/include tree to reduce the number of -Ipath to a minimum.
A 'create' dependency is added to all the main targets to ensure the
headers get copied (the .d files pick up updates).

It then generates explicit rules for each .o against its .c file.

Definitely speeds things up because make is no longer searching
directories for all sorts of files that might be needed - but never are.

(I've not dug through the bowels of the kernel makefile, but probably
have the skills to do so!)

But that is all different from solving the 'all the header files always
get included' issue.

David