mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-17 04:07:18 +00:00
external-arm-toolchain: wrap base_libdir vs libdir manipulations under usrmerge check
With `usrmerge` disto feature `base_libdir` and `libdir` are the same, so it does not make sense to: * removing "duplicates" between them * move files from `base_libdir` to `libdir` This fixes build error | mv: '.../tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/external-arm-toolchain/12.2.Rel1/image/usr/lib/libasan.a' and '.../tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/external-arm-toolchain/12.2.Rel1/image/usr/lib/libasan.a' are the same file in case of `usrmerge` feature enabled. Signed-off-by: Vasyl Vavrychuk <vvavrychuk@gmail.com> Acked-by: Denys Dmytriyenko <denys@konsulko.com> Signed-off-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
committed by
Jon Mason
parent
9a0451a959
commit
98eea62962
+31
-29
@@ -143,37 +143,39 @@ do_install() {
|
|||||||
ln -sf ../../lib/libm.so.6 ${D}${libdir}/libm.so
|
ln -sf ../../lib/libm.so.6 ${D}${libdir}/libm.so
|
||||||
ln -sf ../../lib/libc_malloc_debug.so.0 ${D}${libdir}/libc_malloc_debug.so
|
ln -sf ../../lib/libc_malloc_debug.so.0 ${D}${libdir}/libc_malloc_debug.so
|
||||||
|
|
||||||
# remove potential .so duplicates from base_libdir
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'false', 'true', d)}; then
|
||||||
# for all symlinks created above in libdir
|
# remove potential .so duplicates from base_libdir
|
||||||
rm -f ${D}${base_libdir}/librt.so
|
# for all symlinks created above in libdir
|
||||||
rm -f ${D}${base_libdir}/libcrypt.so
|
rm -f ${D}${base_libdir}/librt.so
|
||||||
rm -f ${D}${base_libdir}/libresolv.so
|
rm -f ${D}${base_libdir}/libcrypt.so
|
||||||
rm -f ${D}${base_libdir}/libnss_hesiod.so
|
rm -f ${D}${base_libdir}/libresolv.so
|
||||||
rm -f ${D}${base_libdir}/libutil.so
|
rm -f ${D}${base_libdir}/libnss_hesiod.so
|
||||||
rm -f ${D}${base_libdir}/libBrokenLocale.so
|
rm -f ${D}${base_libdir}/libutil.so
|
||||||
rm -f ${D}${base_libdir}/libpthread.so
|
rm -f ${D}${base_libdir}/libBrokenLocale.so
|
||||||
rm -f ${D}${base_libdir}/libthread_db.so
|
rm -f ${D}${base_libdir}/libpthread.so
|
||||||
rm -f ${D}${base_libdir}/libanl.so
|
rm -f ${D}${base_libdir}/libthread_db.so
|
||||||
rm -f ${D}${base_libdir}/libdl.so
|
rm -f ${D}${base_libdir}/libanl.so
|
||||||
rm -f ${D}${base_libdir}/libnss_db.so
|
rm -f ${D}${base_libdir}/libdl.so
|
||||||
rm -f ${D}${base_libdir}/libnss_dns.so
|
rm -f ${D}${base_libdir}/libnss_db.so
|
||||||
rm -f ${D}${base_libdir}/libnss_files.so
|
rm -f ${D}${base_libdir}/libnss_dns.so
|
||||||
rm -f ${D}${base_libdir}/libnss_compat.so
|
rm -f ${D}${base_libdir}/libnss_files.so
|
||||||
rm -f ${D}${base_libdir}/libm.so
|
rm -f ${D}${base_libdir}/libnss_compat.so
|
||||||
|
rm -f ${D}${base_libdir}/libm.so
|
||||||
|
|
||||||
# Move these completely to ${libdir} and delete duplicates in ${base_libdir}
|
# Move these completely to ${libdir} and delete duplicates in ${base_libdir}
|
||||||
for lib in asan hwasan atomic gfortran gomp itm lsan sanitizer stdc++ tsan ubsan; do
|
for lib in asan hwasan atomic gfortran gomp itm lsan sanitizer stdc++ tsan ubsan; do
|
||||||
if [ -e ${D}${base_libdir}/lib${lib}.spec ] ; then
|
if [ -e ${D}${base_libdir}/lib${lib}.spec ] ; then
|
||||||
mv ${D}${base_libdir}/lib${lib}.spec ${D}${libdir}
|
mv ${D}${base_libdir}/lib${lib}.spec ${D}${libdir}
|
||||||
fi
|
fi
|
||||||
if [ -e ${D}${base_libdir}/lib${lib}.a ] ; then
|
if [ -e ${D}${base_libdir}/lib${lib}.a ] ; then
|
||||||
mv ${D}${base_libdir}/lib${lib}.a ${D}${libdir}
|
mv ${D}${base_libdir}/lib${lib}.a ${D}${libdir}
|
||||||
fi
|
fi
|
||||||
rm -f ${D}${base_libdir}/lib${lib}*
|
rm -f ${D}${base_libdir}/lib${lib}*
|
||||||
done
|
done
|
||||||
|
|
||||||
# Clean up duplicate libs that are both in base_libdir and libdir
|
# Clean up duplicate libs that are both in base_libdir and libdir
|
||||||
rm -f ${D}${libdir}/libgcc*
|
rm -f ${D}${libdir}/libgcc*
|
||||||
|
fi
|
||||||
|
|
||||||
# Besides ld-${EAT_VER_LIBC}.so, other libs can have duplicates like lib*-${EAT_VER_LIBC}.so
|
# Besides ld-${EAT_VER_LIBC}.so, other libs can have duplicates like lib*-${EAT_VER_LIBC}.so
|
||||||
# Only remove them if both are regular files and are identical
|
# Only remove them if both are regular files and are identical
|
||||||
|
|||||||
Reference in New Issue
Block a user