
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