]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-cross-initial: Separate out libgcc-initial
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 24 Apr 2014 14:24:09 +0000 (15:24 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 25 Apr 2014 16:10:57 +0000 (17:10 +0100)
Its useful to separate out the native (cross) binaries from the target
compilation. We already do this for libgcc, this now takes the same
approach for -initial.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/eglibc/eglibc-initial.inc
meta/recipes-core/eglibc/eglibc.inc
meta/recipes-devtools/gcc/gcc-cross-initial.inc
meta/recipes-devtools/gcc/libgcc-initial.inc [new file with mode: 0644]
meta/recipes-devtools/gcc/libgcc-initial_4.8.bb [new file with mode: 0644]

index 0f0e1cd5e1b937e321078bbb4ef9a678b37622f0..4cc6ffea99ef258284faa4966b772da57ed94e31 100644 (file)
@@ -1,4 +1,4 @@
-DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial libgcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 
 PACKAGES = ""
index 375b9bc116caa5c046464b8fdb331e93f08d3eb0..04c5d9a23705c5ae3534b57bd79cd28006516c5d 100644 (file)
@@ -33,7 +33,7 @@ siteconfig_do_siteconfig_gencache_prepend = " \
 "
 
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial libgcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
 #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
 PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
index 81845386f9ee621cded3723066fdef5eeee29592..387016886381cd251942a49880678cc1ce2158c3 100644 (file)
@@ -38,10 +38,11 @@ do_configure_prepend () {
 }
 
 do_compile () {
-    oe_runmake all-gcc all-target-libgcc
+    oe_runmake all-gcc configure-target-libgcc
 }
 do_install () {
-       oe_runmake 'DESTDIR=${D}' install-gcc install-target-libgcc
+       ( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h )
+       oe_runmake 'DESTDIR=${D}' install-gcc
 
        # We don't really need this (here shares/ contains man/, info/, locale/).
        rm -rf ${D}${datadir}/
@@ -64,6 +65,14 @@ do_install () {
        # so we overwirte the generated include-fixed/limits.h for gcc-cross-initial
        # to get rid references to real limits.h
        cp gcc/include-fixed/limits.h ${D}${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed/limits.h
+
+       # gcc-runtime installs libgcc into a special location in staging since it breaks doing a standalone build
+       case ${PN} in
+               *gcc-cross-initial|*gcc-crosssdk-initial)
+                       dest=${D}/${includedir}/gcc-build-internal-initial-${MULTIMACH_TARGET_SYS}
+                       hardlinkdir . $dest
+               ;;
+       esac
 }
 #
 # Override the default sysroot staging copy since this won't look like a target system
diff --git a/meta/recipes-devtools/gcc/libgcc-initial.inc b/meta/recipes-devtools/gcc/libgcc-initial.inc
new file mode 100644 (file)
index 0000000..2ba27a8
--- /dev/null
@@ -0,0 +1,16 @@
+require libgcc-common.inc
+
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
+
+STAGINGCC = "gcc-cross-initial"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
+PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
+
+PACKAGES = ""
+
+EXTRA_OECONF += "--disable-shared"
+
+LIBGCCBUILDTREENAME = "gcc-build-internal-initial-"
+
+do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_TCBOOTSTRAP}/"
+
diff --git a/meta/recipes-devtools/gcc/libgcc-initial_4.8.bb b/meta/recipes-devtools/gcc/libgcc-initial_4.8.bb
new file mode 100644 (file)
index 0000000..19f253f
--- /dev/null
@@ -0,0 +1,2 @@
+require recipes-devtools/gcc/gcc-${PV}.inc
+require libgcc-initial.inc