[Buildroot] [PATCH] pkgconf: Add HOST_MAKE_ENV sytem include and lib

Thomas Petazzoni thomas.petazzoni at bootlin.com
Tue Sep 15 20:42:49 UTC 2020


Hello Thomas,

Sorry for the long delay in getting back to this patch.

On Mon, 21 Oct 2019 13:38:10 +0100
Thomas Preston <thomas.preston at codethink.co.uk> wrote:

> Recently, a change to the pkg-config wrapper made it more explicit about
> where the system include and library directories are, so that pkgconf
> does not print them. See upstream commit 9cc8680.
> 
> By default, we configure the pkg-config wrapper for the target sysroot,
> however the default system include and library directories are not
> reconfigured for the host build environment (they still point at the
> target sysroot). Fix this by adding the host system include and library
> directories to HOST_MAKE_ENV.
> 
> Note: this isn't likely to fix any bugs at present, but the incorrect
> configuration may hide an include-order related error which the original
> patch was supposed to fix!
> 
> Signed-off-by: Thomas Preston <thomas.preston at codethink.co.uk>
> ---
>  package/Makefile.in | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 0a7899c852..3ae4d4d4e9 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -309,6 +309,8 @@ HOST_MAKE_ENV = \
>  	PATH=$(BR_PATH) \
>  	PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
>  	PKG_CONFIG_SYSROOT_DIR="/" \
> +	PKG_CONFIG_SYSTEM_INCLUDE_PATH="/usr/include" \
> +	PKG_CONFIG_SYSTEM_LIBRARY_PATH="/usr/lib" \

So, today, Peter Korsgaard and me discussed this patch. While I think
we understand the idea of telling pkg-config that it is useless to emit
-I and -L options pointing to the default header/library paths of the
host compiler, the issue is that nothing guarantees that /usr/include
and /usr/lib are really the standard path for the host compiler, and
that these are the only paths.

Since your change was apparently not related to the fix of a specific
issue, and was merely there to improve "correctness", we don't think it
makes sense to have it if it's in fact not really correct for systems
where header/libraries are not in /usr/include and /usr/lib
respectively.

Of course, if you have more details about specific issues that this
patch was solving, let us know.

Thanks a lot,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list