On Thu, 2019-02-28 at 18:03 +0000, Daniel P. Berrangé wrote:
On Thu, Feb 28, 2019 at 06:46:41PM +0100, Andrea Bolognani wrote:
> Okay, so I guess you need to have cross_target=i686-linux-gnu for
>
> ENV CONFIGURE_OPTS "--host={cross_target} \
> --target={cross_target}"
>
> to work; however, that will cause issues for
>
> ENV PKG_CONFIG_LIBDIR "/usr/lib/{cross_target}/pkgconfig"
>
> because as shown above paths look like
>
> /usr/lib/i386-linux-gnu/pkgconfig/glib-2.0.pc
>
> and so on. What an inconsistent mess! Does it mean we need to
> carry around both? :(
>
>
> ... Actually, it doesn't look like it: I just tried cross-building
> for i686 (on sid/x86_64) by simply passing
>
> --host=i686-linux-gnu --target=i686-linux-gnu
>
> and the build system was able to locate all necessary dependencies
> despite not having set $PKG_CONFIG_LIBDIR in the environment!
>
> This seems to be thanks to i686-linux-gnu-pkg-config, which is a
> symlink to /usr/share/pkg-config-crosswrapper, being picked up and
> invoked instead of the native one.
Interesting. I'll have to check this again. In my previous versions
of this series, pkgconfig was mistakenly finding the native .pc
files, and PKG_CONFIG_LIBDIR was needed to fix it. So that can't have
been using the i686-linux-gnu-pkg-config binary before. I'll try and
see what changed..
Unfortunately that only seems to apply to Debian Sid: the version
of pkg-config in Debian 9 is quite a bit older and apparently not
as smart.
So we need to have $PKG_CONFIG_LIBDIR in the environment after all,
and also deal with the mess described above somehow :(
--
Andrea Bolognani / Red Hat / Virtualization