gcc-cross: Improve handling of unwind.h

Submitted by Richard Purdie on April 24, 2014, 9:19 a.m.

Details

Message ID 1398331182.16672.175.camel@ted
State Accepted
Commit 459e4dc25462771038459567c22e87d4cd38b117
Headers show

Commit Message

Richard Purdie April 24, 2014, 9:19 a.m.
Rather than building the whole of libgcc to obtain the unwind.h header
file, simply configure it and then install the file. This avoids copying
chunks of data around when we don't need to and building the same thing
twice.

After doing this we need to make sure the target build directory exists
in the libgcc case since it will no longer be created automatically.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---

Patch hide | download patch | download mbox

diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
index c320600..855ec26 100644
--- a/meta/recipes-devtools/gcc/gcc-4.8.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
@@ -71,7 +71,6 @@  SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
 	   file://0048-PR58854_fix_arm_apcs_epilogue.patch \
 	   file://0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
 	   file://0050-PR-target-58595.patch \
-	   file://0051-fix-unwind-race.patch \
 	  "
 SRC_URI[md5sum] = "a3d7d63b9cb6b6ea049469a0c4a43c9d"
 SRC_URI[sha256sum] = "09dc2276c73424bbbfda1dbddc62bbbf900c9f185acf7f3e1d773ce2d7e3cdc8"
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index 165230b..27ebcf6 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -41,7 +41,7 @@  do_compile () {
 	export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
 	export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
 
-	oe_runmake all-host all-target-libgcc
+	oe_runmake all-host configure-target-libgcc
 	# now generate script to drive testing
 	echo "#!/usr/bin/env sh" >${B}/${TARGET_PREFIX}testgcc
 	set >> ${B}/${TARGET_PREFIX}testgcc
@@ -141,6 +141,7 @@  INHIBIT_PACKAGE_STRIP = "1"
 BINRELPATH = "${@os.path.relpath(d.expand("${STAGING_DIR_NATIVE}${prefix_native}/bin/${MULTIMACH_TARGET_SYS}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
 
 do_install () {
+	( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h )
 	oe_runmake 'DESTDIR=${D}' install-host
 
 	install -d ${D}${target_base_libdir}
diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc
index c4ab885..b30bcfe 100644
--- a/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -7,6 +7,7 @@  do_configure () {
 	install -d ${D}${base_libdir} ${D}${libdir}
 	hardlinkdir ${STAGING_INCDIR_NATIVE}/${LIBGCCBUILDTREENAME}$target/ ${B}
 	mkdir -p ${B}/${BPN}
+	mkdir -p ${B}/$target/${BPN}/
 	cd ${B}/${BPN}
 	chmod a+x ${S}/${BPN}/configure
 	${S}/${BPN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}

Comments

Khem Raj April 25, 2014, 7:44 p.m.
On Thu, Apr 24, 2014 at 2:19 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> --- a/meta/recipes-devtools/gcc/gcc-4.8.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
> @@ -71,7 +71,6 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
>            file://0048-PR58854_fix_arm_apcs_epilogue.patch \
>            file://0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
>            file://0050-PR-target-58595.patch \
> -          file://0051-fix-unwind-race.patch \
>           "
>  SRC_URI[md5sum] = "a3d7d63b9cb6b6ea049469a0c4a43c9d"
>  SRC_URI[sha256sum] = "09dc2276c73424bbbfda1dbddc62bbbf900c9f185acf7f3e1d773ce2d7e3cdc8"

if 0051-fix-unwind-race.patch is not needed then please delete it from
metadata as well. Ideally this should have been squashed with commit
d3b02218dcfedda8e4efb43b8fa6d13af8d91f78 before push