[PATCH v2] build: validate libraries returned from meson find function

Bruce Richardson bruce.richardson at intel.com
Thu Oct 2 10:06:47 CEST 2025


On Thu, Oct 02, 2025 at 09:53:15AM +0200, David Marchand wrote:
> Hello Bruce,
> 
> On Wed, 24 Sept 2025 at 13:13, Bruce Richardson
> <bruce.richardson at intel.com> wrote:
> >
> > The meson find_library() API call sometimes finds a library that is
> > actually incompatible with the current build, for example, returning a
> > 64-bit library when doing a 32-bit build. To avoid problems with this,
> > check each library returned from a find_library() call and treat the
> > library as unfound if its incompatible.
> 
> meson should have all it needs to double check itself that the "found"
> library links fine...
> But well, we need to live with existing behavior.
> 

Yes, it's annoying and it should be something I think meson does, but even
if it was added today to meson, we'd have to live with current behaviour
for a long time. :-(

> It's a pity meson refuses to define user helpers... so much copy/paste
> in this patch.
> 

Yes, though if we want to reduce it I can remove some that is currently
unnecessary. For example, windows support doesn't have any cross-compile
options and only supports a single target so the checks there probably
aren't necessary. I added them for consistency.

The other thing we could do to help out here, is check to see if any more
libraries can be switched to using pkg-config. I noticed some libs have
fallbacks after a pkg-config call - we could remove the fallbacks and just
mandate use of pkg-config for those.

> 
> >
> > This checking is not necessary (or should not be necessary) for
> > dependencies got using pkg-config, since the .pc files for each build
> > type are stored in a different directory on the system.
> 
> Would it affect the library lookup if we pass has_headers to find_library()?
>

I don't think it would affect things, since the headers are common in many
cases, only the binary files differ (thinking especially of the 32-bit vs
64-bit case here).

/Bruce


More information about the dev mailing list