Thanks!
On Wed, Sep 02, 2015 at 07:57:29AM +0200, Koen Kooi wrote: > Pushed to fido, sorry for the delay. > > On 28 August 2015 at 18:35, Denys Dmytriyenko <de...@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 <de...@denix.org> > >> > > het volgende geschreven: > >> > > > >> > > From: Denys Dmytriyenko <de...@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 <de...@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 > >> > > fi > >> > > if [ -d > >> > > ${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 > >> > > fi > >> > > cp -a ${EXTERNAL_TOOLCHAIN}/${ELT_TARGET_SYS}/libc/usr/share/* > >> > > ${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 > >> > > fi > >> > > if [ -f ${D}${libdir}/libpthread.so ];then > >> > > sed -i -e "s# /lib/${ELT_TARGET_SYS}# ../../lib#g" -e "s# > >> > > /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 > >> > > + fi > >> > > fi > >> > > } > >> > > > >> > > @@ -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 > > > > -- > Koen Kooi > > Builds and Baselines | Release Manager > Linaro.org | Open source software for ARM SoCs > _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev