| Submitter | Khem Raj |
|---|---|
| Date | April 30, 2012, 8:51 p.m. |
| Message ID | <1335819064-29468-1-git-send-email-raj.khem@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/26683/ |
| State | Accepted |
| Commit | a61c18324df231029419ab59196b23a6fb2b4743 |
| Headers | show |
Comments
Darn it! I wasted too much time today trying to debug this recent breakage in gcc-runtime-4.5, before seeing these patches. It was failing like this: checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES. Now it works again! > Signed-off-by: Khem Raj <raj.khem@gmail.com> Tested-by: Denys Dmytriyenko <denys@ti.com> > --- > toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb | 47 +++++++++++++++----- > 1 files changed, 36 insertions(+), 11 deletions(-) > > diff --git a/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb b/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb > index 1579c8b..ecef5e7 100644 > --- a/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb > +++ b/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb > @@ -1,33 +1,46 @@ > require recipes-devtools/gcc/gcc-${PV}.inc > > - > INHIBIT_DEFAULT_DEPS = "1" > + > DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" > > PACKAGES = "\ > ${PN} \ > ${PN}-dev \ > + ${PN}-dbg \ > + libgcov-dev \ > " > > FILES_${PN} = "${base_libdir}/libgcc*.so.*" > FILES_${PN}-dev = " \ > ${base_libdir}/libgcc*.so \ > ${libdir}/${TARGET_SYS}/${BINV}/crt* \ > - ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a \ > ${libdir}/${TARGET_SYS}/${BINV}/libgcc*" > +FILES_libgcov-dev = " \ > + ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a" > > -do_fetch[noexec] = "1" > -do_unpack[noexec] = "1" > -do_patch[noexec] = "1" > -do_configure[noexec] = "1" > -do_compile[noexec] = "1" > +FILES_${PN}-dbg += "${base_libdir}/.debug/" > > -do_install () { > +do_configure () { > target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` > - > - # Install libgcc from our gcc-cross saved data > install -d ${D}${base_libdir} ${D}${libdir} > - cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${D} > + cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B} > + mkdir -p ${B}/${PN} > + cd ${B}/${PN} > + chmod a+x ${S}/${PN}/configure > + ${S}/${PN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} > +} > + > +do_compile () { > + target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` > + cd ${B}/${PN} > + oe_runmake MULTIBUILDTOP=${B}/$target/${PN}/ > +} > + > +do_install () { > + target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` > + cd ${B}/${PN} > + oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${PN}/ install > > # Move libgcc_s into /lib > mkdir -p ${D}${base_libdir} > @@ -36,7 +49,19 @@ do_install () { > else > mv ${D}${libdir}/libgcc* ${D}${base_libdir} || true > fi > + > + # install the runtime in /usr/lib/ not in /usr/lib/gcc on target > + # so that cross-gcc can find it in the sysroot > + > + mv ${D}${libdir}/gcc/* ${D}${libdir} > + rm -rf ${D}${libdir}/gcc/ > } > > +do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package" > +do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_package" > +do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package" > + > BBCLASSEXTEND = "nativesdk" > > +INSANE_SKIP_libgcc-dev = "staticdev" > +INSANE_SKIP_libgcov-dev = "staticdev" > -- > 1.7.5.4 > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Patch
diff --git a/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb b/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb index 1579c8b..ecef5e7 100644 --- a/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb +++ b/toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb @@ -1,33 +1,46 @@ require recipes-devtools/gcc/gcc-${PV}.inc - INHIBIT_DEFAULT_DEPS = "1" + DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" PACKAGES = "\ ${PN} \ ${PN}-dev \ + ${PN}-dbg \ + libgcov-dev \ " FILES_${PN} = "${base_libdir}/libgcc*.so.*" FILES_${PN}-dev = " \ ${base_libdir}/libgcc*.so \ ${libdir}/${TARGET_SYS}/${BINV}/crt* \ - ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a \ ${libdir}/${TARGET_SYS}/${BINV}/libgcc*" +FILES_libgcov-dev = " \ + ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a" -do_fetch[noexec] = "1" -do_unpack[noexec] = "1" -do_patch[noexec] = "1" -do_configure[noexec] = "1" -do_compile[noexec] = "1" +FILES_${PN}-dbg += "${base_libdir}/.debug/" -do_install () { +do_configure () { target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` - - # Install libgcc from our gcc-cross saved data install -d ${D}${base_libdir} ${D}${libdir} - cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${D} + cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B} + mkdir -p ${B}/${PN} + cd ${B}/${PN} + chmod a+x ${S}/${PN}/configure + ${S}/${PN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} +} + +do_compile () { + target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + cd ${B}/${PN} + oe_runmake MULTIBUILDTOP=${B}/$target/${PN}/ +} + +do_install () { + target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` + cd ${B}/${PN} + oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${PN}/ install # Move libgcc_s into /lib mkdir -p ${D}${base_libdir} @@ -36,7 +49,19 @@ do_install () { else mv ${D}${libdir}/libgcc* ${D}${base_libdir} || true fi + + # install the runtime in /usr/lib/ not in /usr/lib/gcc on target + # so that cross-gcc can find it in the sysroot + + mv ${D}${libdir}/gcc/* ${D}${libdir} + rm -rf ${D}${libdir}/gcc/ } +do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package" +do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_package" +do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package" + BBCLASSEXTEND = "nativesdk" +INSANE_SKIP_libgcc-dev = "staticdev" +INSANE_SKIP_libgcov-dev = "staticdev"
Signed-off-by: Khem Raj <raj.khem@gmail.com> --- toolchain-layer/recipes-devtools/gcc/libgcc_4.5.bb | 47 +++++++++++++++----- 1 files changed, 36 insertions(+), 11 deletions(-)