From 6a6dd4eb53dbf8a0c31ac2d68af5befebe727596 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 20 Aug 2015 16:04:02 +0100 Subject: 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 --- meta/conf/multilib.conf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf index 37e8481112..89a8e9096f 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" -- cgit 1.2.3-korg