Hi Denys, due to your bugzilla (https://bugs.linaro.org/show_bug.cgi?id=1717) we're strongly considering returning the directory layout to what was originally in place:
rtlddir=lib/ libdir=lib/ slibdir=usr/lib
Can you please comment on your thoughts on the layout going forward? We'll provide a release candidate build with this change for evaluation shortly.
On Fri, Aug 28, 2015 at 11:35 AM, Denys Dmytriyenko denis@denix.org wrote:
Ping. Can I get these backported to fido, please? Corresponding patches were already submitted 2 weeks ago. Thanks.
-- Denys
On Fri, Aug 14, 2015 at 02:55:06PM -0400, Denys Dmytriyenko wrote:
Thanks! I also submitted fido backports of the patches, for when these
get
into the master...
-- Denys
On Fri, Aug 14, 2015 at 08:27:07PM +0200, Koen Kooi wrote:
Added both patches into gerrit:
https://review.linaro.org/7446 https://review.linaro.org/7447
Op 14 aug. 2015, om 20:12 heeft Denys Dmytriyenko denis@denix.org
het volgende geschreven:
From: Denys Dmytriyenko denys@ti.com
Starting with 2015.05 binary release, all the libraries have been
moved from
/libc/lib/ to /libc/usr/lib/ that causes various toolchain issues in
OE,
ranging from QA errors to build failures of other components. This
patch
takes care of installing, updating and packaging libraries to match
other
versions and satisfy OE toolchain requirements.
Previous attempt at fixing it in
78df3a9646e35790ef8b429c84a912d336fd128b
wasn't complete and its conditional logic would never work: https://bugs.linaro.org/show_bug.cgi?id=1717
- Update check to look where ld-*.so is installed, instead of simply
checking for /libc/lib/ presence, which exists in 2015.05
- Only copy real *.so* libs from /libc/usr/lib to base_libdir, let
the
rest (*.a, *.o, etc) go to libdir, as usual
- If we copy *.so* to base_libdir, remove them from libdir
- Update lib*.so -> lib*.so.* symlinking list with new libraries
- For all the lib*.so symlinks created in libdir, remove potential
dups
from base_libdir
- Remove lib*-${ELT_VER_LIBC}.so duplicates
- When updating libc.so in base_libdir, no need to change path to
ld-linux
that is also in base_libdir
- If both libc.so and libc.so.6 are in base_libdir, make sure the
path to
libc.so.6 in libc.so is correct
- Same for libpthread.so
- Suppress ldflags/GNU_HASH QA warning for more lib packages
- Remove duplicate FILES_libstdc++ lines
Signed-off-by: Denys Dmytriyenko denys@ti.com
.../external-linaro-toolchain.bb | 81
++++++++++++++++++----
1 file changed, 66 insertions(+), 15 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 857e280..ea41179 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
@@ -65,16 +65,19 @@ do_install() { if [ -d
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/${ELT_TARGET_SYS} ]; then
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/${ELT_TARGET_SYS}/* ${D}${base_libdir}
else
if [ -d ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib ];
then
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/* ${D}${base_libdir}
else
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/* ${D}${base_libdir}
fi
if [ -f
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/ld-${ELT_VER_LIBC}.so ]; then
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/* ${D}${base_libdir}
else
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/*.so* ${D}${base_libdir}
fi if [ -dfi
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/${ELT_TARGET_SYS} ]; then
cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/${ELT_TARGET_SYS}/* ${D}${libdir}
else cp -a
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/lib/* ${D}${libdir}
if [ ! -f
${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/lib/ld-${ELT_VER_LIBC}.so ]; then
rm -rf ${D}${libdir}/*.so*
fi cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/share/*fi
${D}${datadir}
cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/include/*
${D}${includedir}
@@ -100,10 +103,53 @@ do_install() { ln -sf ../../lib/libcidn.so.1 ${D}${libdir}/libcidn.so ln -sf ../../lib/libBrokenLocale.so.1
${D}${libdir}/libBrokenLocale.so
ln -sf ../../lib/libthread_db.so.1 ${D}${libdir}/libthread_db.so
- ln -sf ../../lib/libthread_db.so.1 ${D}${libdir}/
libthread_db-1.0.so
ln -sf ../../lib/libanl.so.1 ${D}${libdir}/libanl.so ln -sf ../../lib/libdl.so.2 ${D}${libdir}/libdl.so 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
- # remove potential .so duplicates from base_libdir
- # for all symlinks created above in libdir
- rm -f ${D}${base_libdir}/libnsl.so
- rm -f ${D}${base_libdir}/librt.so
- rm -f ${D}${base_libdir}/libcrypt.so
- rm -f ${D}${base_libdir}/libnss_nis.so
- rm -f ${D}${base_libdir}/libresolv.so
- rm -f ${D}${base_libdir}/libnss_dns.so
- rm -f ${D}${base_libdir}/libnss_hesiod.so
- rm -f ${D}${base_libdir}/libutil.so
- rm -f ${D}${base_libdir}/libnss_files.so
- rm -f ${D}${base_libdir}/libnss_compat.so
- 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
- rm -f ${D}${base_libdir}/libnss_db.so
- rm -f ${D}${base_libdir}/libm.so
- rm -f ${D}${base_libdir}/libasan.so
- rm -f ${D}${base_libdir}/libatomic.so
- rm -f ${D}${base_libdir}/libgomp.so
- rm -f ${D}${base_libdir}/libitm.so
- rm -f ${D}${base_libdir}/libssp.so
- rm -f ${D}${base_libdir}/libstdc++.so
- rm -f ${D}${base_libdir}/libgfortran.so
- 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
if [ -d ${D}${base_libdir}/arm-linux-gnueabi ]; then rm -rf ${D}${base_libdir}/arm-linux-gnueabi
@@ -117,13 +163,19 @@ do_install() { sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s#
/usr/lib/${ELT_TARGET_SYS}# .#g" -e "s# /lib/ld-linux# ../../lib/ld-linux#g" ${D}${libdir}/libc.so
fi if [ -f ${D}${base_libdir}/libc.so ];then
sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s#
/usr/lib/${ELT_TARGET_SYS}# .#g" -e "s# /lib/ld-linux# ../../lib/ld-linux#g" ${D}${base_libdir}/libc.so
sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s#
/usr/lib/${ELT_TARGET_SYS}# .#g" ${D}${base_libdir}/libc.so
if [ -f ${D}${base_libdir}/libc.so.6 ]; then
sed -i -e "s# /usr/lib/libc.so.6#
/lib/libc.so.6#g" ${D}${base_libdir}/libc.so
fi if [ -f ${D}${libdir}/libpthread.so ];then sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s#fi
/usr/lib/${ELT_TARGET_SYS}# .#g" ${D}${libdir}/libpthread.so
fi if [ -f ${D}${base_libdir}/libpthread.so ];then sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s#
/usr/lib/${ELT_TARGET_SYS}# .#g" ${D}${base_libdir}/libpthread.so
if [ -f ${D}${base_libdir}/libpthread.so.0 ]; then
sed -i -e "s# /usr/lib/libpthread.so.0#
/lib/libpthread.so.0#g" ${D}${base_libdir}/libpthread.so
fifi
}
@@ -172,7 +224,14 @@ PACKAGES =+ "\ INSANE_SKIP_${PN}-dbg = "staticdev" INSANE_SKIP_${PN}-utils += "ldflags" INSANE_SKIP_libstdc++ += "ldflags" +INSANE_SKIP_libgfortran += "ldflags" INSANE_SKIP_libgcc += "ldflags" +INSANE_SKIP_libatomic += "ldflags" +INSANE_SKIP_libasan += "ldflags" +INSANE_SKIP_libubsan += "ldflags" +INSANE_SKIP_libssp += "ldflags" +INSANE_SKIP_libgomp += "ldflags" +INSANE_SKIP_libitm += "ldflags" INSANE_SKIP_gdbserver += "ldflags"
# OE-core has literally listed 'glibc' in LIBC_DEPENDENCIES :/ @@ -286,14 +345,7 @@ FILES_libtsan-staticdev =
"${base_libdir}/libtsan.a"
FILES_libgcc = "${base_libdir}/libgcc_s.so.1" FILES_libgcc-dev = "${base_libdir}/libgcc_s.so" -FILES_libstdc++ = "${base_libdir}/libstdc++.so.*" -FILES_libstdc++-dev = "\
- ${includedir}/c++/${PV} \
- ${base_libdir}/libstdc++.so"
-FILES_libstdc++-staticdev = "\
- ${base_libdir}/libstdc++.a \
- ${base_libdir}/libsupc++.a \
-"
FILES_linux-libc-headers = "\ ${includedir}/asm* \ ${includedir}/linux \ @@ -419,4 +471,3 @@ python () { raise bb.parse.SkipPackage("incompatible with target %s" % d.getVar('TARGET_OS', True)) }
-- 2.2.0
linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev
linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev
linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev