Re: [meta-linaro-toolchain][PATCH 1/2] external-linaro-toolchain: work around 2015.05 release that moved libs
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 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 > het volgende geschreven: > > > > > > > > From: Denys Dmytriyenko > > > > > > > > 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 > > > > --- > > > > .../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
Re: [meta-linaro-toolchain][PATCH 1/2] external-linaro-toolchain: work around 2015.05 release that moved libs
Pushed to fido, sorry for the delay. On 28 August 2015 at 18:35, Denys Dmytriyenko 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 het >> > > volgende geschreven: >> > > >> > > From: Denys Dmytriyenko >> > > >> > > 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 >> > > --- >> > > .../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}