aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-10-13 17:41:29 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-13 17:41:29 +0100
commitb2c3ce6d17520d43b10777dd306449876cb40819 (patch)
tree1eff9f09fd2dd326c68f1419140f1caf792269c6
parent271bd9d8f97ca14e931b45513f6eaa6ed9e9a675 (diff)
downloadopenembedded-core-b2c3ce6d17520d43b10777dd306449876cb40819.tar.gz
meta-toolchain: Update the way ld.so.cache is handled
Fix the library search path so that libs in the toolchain in /opt/ have priority over those in base system but ones from the base system can still be found. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/classes/toolchain-scripts.bbclass4
-rw-r--r--meta/recipes-tbd/meta/meta-toolchain.bb11
2 files changed, 13 insertions, 2 deletions
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index c393d99644..9c6fe67d49 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -6,6 +6,10 @@ toolchain_create_sdk_env_script () {
script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${MULTIMACH_TARGET_SYS}
rm -f $script
touch $script
+ echo 'if [ ! -e ${SDKPATHNATIVE}/etc/ld.so.cache ]; then' >> $script
+ echo ' echo "Please run ${SDKPATH}/postinstall as root before using the toolchain"' >> $script
+ echo ' exit 1' >> $script
+ echo 'fi' >> $script
echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${MULTIMACH_TARGET_SYS}:$PATH' >> $script
echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script
echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script
diff --git a/meta/recipes-tbd/meta/meta-toolchain.bb b/meta/recipes-tbd/meta/meta-toolchain.bb
index 2fab8f94b2..633f5f1990 100644
--- a/meta/recipes-tbd/meta/meta-toolchain.bb
+++ b/meta/recipes-tbd/meta/meta-toolchain.bb
@@ -72,8 +72,15 @@ do_populate_sdk() {
#rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}/lib/*.la
rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
- # Link the ld.so.cache file into the hosts filesystem
- ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
+ # Create an appropriate setup so the dynamic loader can find libs in
+ # both the host system and the toolchain directories
+ echo ${SDKPATHNATIVE}${libdir} > ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.conf
+ echo ${SDKPATHNATIVE}${base_libdir} >> ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.conf
+ echo "include /etc/ld.so.conf" >> ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.conf
+ echo "#!/bin/sh" > ${SDK_OUTPUT}/${SDKPATH}/postinstall
+ echo "ldconfig -f ${SDKPATHNATIVE}/etc/ld.so.conf -C /${SDKPATHNATIVE}/etc/ld.so.cache" >> ${SDK_OUTPUT}/${SDKPATH}/postinstall
+ chmod a+x ${SDK_OUTPUT}/${SDKPATH}/postinstall
+
# Setup site file for external use
siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}