aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denys@ti.com>2016-03-31 21:04:42 -0400
committerKoen Kooi <koen.kooi@linaro.org>2016-04-01 07:57:58 +0200
commit3f4b3fc3c579071eba81e83db9f36a9a4f9ef162 (patch)
tree58b26f13a85ab7f454337f8c6c2251cb5c070900
parentcbf2e95108a79ae8f624b15c0c2cb4f3c6ffe857 (diff)
external-linaro-toolchain: update to work with Linaro GCC 5.3-2016.02
* libasan and libgfortran changed major version number, handle both * only remove dups of lib*-${ELT_VER_LIBC}.so when they are regular and identical files preserve them if one is a symlink to another or files are different Change-Id: Id51f6d5c96353c9da9a8162d2a9d0e32eab7c80c Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-rw-r--r--meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb33
1 files changed, 28 insertions, 5 deletions
diff --git a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
index 676b7ba1..7b29ce50 100644
--- a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
+++ b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
@@ -89,7 +89,6 @@ do_install() {
cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/* ${D}${includedir}
if [ -d ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/${ELT_TARGET_SYS} ]; then
cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/${ELT_TARGET_SYS}/* ${D}${includedir}
-
rm -r ${D}${includedir}/${ELT_TARGET_SYS}
fi
@@ -115,14 +114,22 @@ do_install() {
ln -sf ../../lib/libnss_nisplus.so.2 ${D}${libdir}/libnss_nisplus.so
ln -sf ../../lib/libnss_db.so.2 ${D}${libdir}/libnss_db.so
ln -sf ../../lib/libm.so.6 ${D}${libdir}/libm.so
- ln -sf ../../lib/libasan.so.1 ${D}${libdir}/libasan.so
ln -sf ../../lib/libatomic.so.1 ${D}${libdir}/libatomic.so
ln -sf ../../lib/libgomp.so.1 ${D}${libdir}/libgomp.so
ln -sf ../../lib/libitm.so.1 ${D}${libdir}/libitm.so
ln -sf ../../lib/libssp.so.0 ${D}${libdir}/libssp.so
ln -sf ../../lib/libstdc++.so.6 ${D}${libdir}/libstdc++.so
- ln -sf ../../lib/libgfortran.so.6 ${D}${libdir}/libgfortran.so
ln -sf ../../lib/libubsan.so.0 ${D}${libdir}/libubsan.so
+ if [ -f ${D}${base_libdir}/libasan.so.2 ]; then
+ ln -sf ../../lib/libasan.so.2 ${D}${libdir}/libasan.so
+ else
+ ln -sf ../../lib/libasan.so.1 ${D}${libdir}/libasan.so
+ fi
+ if [ -f ${D}${base_libdir}/libgfortran.so.6 ]; then
+ ln -sf ../../lib/libgfortran.so.6 ${D}${libdir}/libgfortran.so
+ else
+ ln -sf ../../lib/libgfortran.so.3 ${D}${libdir}/libgfortran.so
+ fi
# remove potential .so duplicates from base_libdir
# for all symlinks created above in libdir
@@ -139,7 +146,6 @@ do_install() {
rm -f ${D}${base_libdir}/libcidn.so
rm -f ${D}${base_libdir}/libBrokenLocale.so
rm -f ${D}${base_libdir}/libthread_db.so
- rm -f ${D}${base_libdir}/libthread_db-1.0.so
rm -f ${D}${base_libdir}/libanl.so
rm -f ${D}${base_libdir}/libdl.so
rm -f ${D}${base_libdir}/libnss_nisplus.so
@@ -155,7 +161,24 @@ do_install() {
rm -f ${D}${base_libdir}/libubsan.so
# Besides ld-${ELT_VER_LIBC}.so, other libs can have duplicates like lib*-${ELT_VER_LIBC}.so
- rm -rf ${D}${base_libdir}/lib*-${ELT_VER_LIBC}.so
+ # Only remove them if both are regular files and are identical
+ for i in ${D}${base_libdir}/lib*-${ELT_VER_LIBC}.so; do
+ f=$(echo $i | sed 's/-${ELT_VER_LIBC}//')
+ l=$(ls $f.*)
+ if [ $(readlink -f $i ) = $l ]; then
+ echo "$i is a symlink of $l, keep it"
+ elif [ $(readlink -f $l ) = $i ]; then
+ echo "$l is a symlink of $i, keep it"
+ else
+ cmp -s $i $l
+ if [ $? -eq 0 ]; then
+ echo "$i is a duplicate of $l, remove it"
+ rm $i
+ else
+ echo "$i and $l are different files, keep them both"
+ fi
+ fi
+ done
if [ -d ${D}${base_libdir}/arm-linux-gnueabi ]; then
rm -rf ${D}${base_libdir}/arm-linux-gnueabi