From: Ross Burton Date: Thu, 20 Aug 2015 15:04:02 +0000 (+0100) Subject: multilib: let pkg-config find architecture-independent .pc files X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~29322 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a6dd4eb53dbf8a0c31ac2d68af5befebe727596;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git multilib: let pkg-config find architecture-independent .pc files If a multilib package depends on an allarch recipe that installs an architecture-independent .pc file it will not be able to find the .pc file as the recipe gets installed into the MACHINE sysroot but pkg-config looks in the MLPREFIX-prefixed sysroot. Solve this by extending PKG_CONFIG_PATH in multilib environments to include the architecture-independent path in the MACHINE sysroot (sysroots/MACHINE/usr/share/pkgconfig/). Signed-off-by: Ross Burton --- diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf index 37e8481112f..89a8e9096fc 100644 --- a/meta/conf/multilib.conf +++ b/meta/conf/multilib.conf @@ -17,3 +17,10 @@ BBCLASSEXTEND_append = " ${MULTILIBS}" MULTILIB_GLOBAL_VARIANTS ?= "lib32 lib64 libx32" OPKG_ARGS_append = " --force-maintainer --force-overwrite" + +# When multilib is enabled, allarch recipes will be installed into the MACHINE +# sysroot, not MLPREFIXMACHINE. This means that anything using pkg-config to +# find an allarch pkgconfig file will fail as the PKG_CONFIG_PATH only looks +# inside the multilib sysroot. Fix this by explicitly adding the MACHINE's +# architecture-independent pkgconfig location to PKG_CONFIG_PATH. +PKG_CONFIG_PATH .= ":${STAGING_DIR}/${MACHINE}${datadir}/pkgconfig"