[PATCH v3 6/7] buildtools/chkincs: use a staging directory for headers

David Marchand david.marchand at redhat.com
Thu Sep 25 10:42:47 CEST 2025


Hello Bruce,

On Thu, 25 Sept 2025 at 10:00, Bruce Richardson
<bruce.richardson at intel.com> wrote:
>
> On Wed, Sep 24, 2025 at 07:25:34PM +0200, David Marchand wrote:
> > A problem with the current headers check is that it relies on
> > meson dependencies objects that come with their include_directories
> > directives, and all of those point at the library / driver sources.
> >
> > This means that we won't detect a public header including a private
> > (as in, not exported) header, or a driver only header.
> >
> > To address this issue, a staging directory is added and every header
> > is copied to it.
> >
> > Drivers and library headers are staged to two different directories
> > and the check is updated accordingly.
> >
> > Signed-off-by: David Marchand <david.marchand at redhat.com>
>
> In general looks ok to me.
> One small comment though - can we not have "staging" as a top-level
> directory, but instead hide it inside the buildtools directory, or even the
> chkincs directory? I dislike having too many subdirectories directly off
> the root of the project, especially ones purely for internal tooling.

Well, at first I was trying to change the whole build process iow rely
only on the staging directory and remove all the include_directories:
directives from the declare_dependency() objects.
Libraries and apps were ok, but there were a *lot* of complications
with drivers (what a *huge mess*, especially for NXP drivers with
"compat.h" includes, and Marvell drivers to a smaller extent).
I may retry in the future with some AI tool that will brute force this :-).

For now, I gave up but did not reconsider the location of the staging part.
Moving to buildtools is indeed saner as it is only for the check now,
and I can also make this staging stuff dependent on the check_includes
option now.

I have a strange build error with Windows + clang target that I'll
need to understand (maybe a problem in how we reference DPDK public
headers via "" instead of <>?).


-- 
David Marchand



More information about the dev mailing list