]> code.ossystems Code Review - openembedded-core.git/commitdiff
binutils/gcc/gdb: Add TARGET_ARCH to PN for all cross recipes
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 27 Apr 2014 00:23:07 +0000 (01:23 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 30 Apr 2014 15:33:26 +0000 (16:33 +0100)
This allows them to co-exist together in the native sysroot, with one
set of cross tools per target architecture.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
23 files changed:
meta/classes/autotools.bbclass
meta/classes/cross-canadian.bbclass
meta/classes/cross.bbclass
meta/classes/sstate.bbclass
meta/conf/bitbake.conf
meta/recipes-core/eglibc/eglibc-initial.inc
meta/recipes-core/eglibc/eglibc.inc
meta/recipes-core/meta/meta-ide-support.bb
meta/recipes-core/uclibc/uclibc-initial_git.bb
meta/recipes-core/uclibc/uclibc_git.bb
meta/recipes-devtools/binutils/binutils-cross.inc
meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb
meta/recipes-devtools/gcc/gcc-common.inc
meta/recipes-devtools/gcc/gcc-cross-canadian.inc
meta/recipes-devtools/gcc/gcc-cross-initial.inc
meta/recipes-devtools/gcc/gcc-cross.inc
meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
meta/recipes-devtools/gcc/gcc-crosssdk.inc
meta/recipes-devtools/gcc/gcc-runtime.inc
meta/recipes-devtools/gcc/libgcc-common.inc
meta/recipes-devtools/gcc/libgcc-initial.inc
meta/recipes-devtools/gcc/libgfortran.inc
meta/recipes-devtools/gdb/gdb-cross.inc

index f8c9b1e7b4758e6d03c3086f0148e216f69ce473..0dc1e6b8b73c45d888670b35a91b9128d709d5f0 100644 (file)
@@ -158,7 +158,7 @@ python autotools_copy_aclocals () {
             manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)
         elif c.startswith("nativesdk-"):
             manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}-%s.populate_sysroot" % c)
-        elif c.endswith("-cross") or c.endswith("-cross-initial") or c.endswith("-crosssdk") or c.endswith("-crosssdk-initial"):
+        elif "-cross-" in c or "-crosssdk-" in c:
             continue
         else:
             manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${MACHINE}-%s.populate_sysroot" % c)
index 70efee317e3fbd0005479c0b30a2a297ff44f58b..cea6afb75dd3d6d46835efdff8396e9ff387a3e6 100644 (file)
@@ -9,7 +9,7 @@
 # or indirectly via dependency.  No need to be in 'world'.
 EXCLUDE_FROM_WORLD = "1"
 CLASSOVERRIDE = "class-cross-canadian"
-STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
+STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
 
 #
 # Update BASE_PACKAGE_ARCH and PACKAGE_ARCHS
index b7d33f5e32c4955517e1b9bc935488d5eaeba0c0..a8f3b601c203e63c7615b26746ad8387160bacd4 100644 (file)
@@ -19,6 +19,8 @@ HOST_AS_ARCH = "${BUILD_AS_ARCH}"
 
 STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
 
+PACKAGE_ARCH = "${BUILD_ARCH}"
+
 export PKG_CONFIG_DIR = "${STAGING_DIR}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
 export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
 
@@ -43,7 +45,7 @@ target_libdir = "${target_exec_prefix}/${baselib}"
 target_includedir := "${includedir}"
 
 # Overrides for paths
-CROSS_TARGET_SYS_DIR = "${MULTIMACH_TARGET_SYS}"
+CROSS_TARGET_SYS_DIR = "${TARGET_SYS}"
 prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
 base_prefix = "${STAGING_DIR_NATIVE}"
 exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
index 7b16bc04d52dbcabe24172738e8adfa42a711239..46cc2677d65d51ded67fa41617cdbd047487e6c0 100644 (file)
@@ -22,10 +22,6 @@ SSTATE_PATHSPEC   = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC
 SSTATE_EXTRAPATH[vardepvalue] = ""
 
 SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/"
-# Also need to make cross recipes append to ${PN} and install once for any given PACAGE_ARCH so
-# can avoid multiple installs (e.g. routerstationpro+qemumips both using mips32)
-SSTATE_DUPWHITELIST += "${STAGING_LIBDIR_NATIVE}/${MULTIMACH_TARGET_SYS} ${STAGING_DIR_NATIVE}/usr/libexec/${MULTIMACH_TARGET_SYS} ${STAGING_BINDIR_NATIVE}/${MULTIMACH_TARGET_SYS} ${STAGING_DIR_NATIVE}${includedir_native}/gcc-build-internal-${MULTIMACH_TARGET_SYS}"
-SSTATE_DUPWHITELIST += "${STAGING_DIR_NATIVE}/sysroot-providers/virtual_${TARGET_PREFIX} ${STAGING_DIR_NATIVE}/sysroot-providers/binutils-cross ${STAGING_DIR_NATIVE}/sysroot-providers/gcc-cross"
 # Avoid docbook/sgml catalog warnings for now
 SSTATE_DUPWHITELIST += "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml"
 
@@ -51,8 +47,7 @@ python () {
     elif bb.data.inherits_class('crosssdk', d):
         d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}"))
     elif bb.data.inherits_class('cross', d):
-        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${TUNE_PKGARCH}"))
-        d.setVar('SSTATE_MANMACH', d.expand("${BUILD_ARCH}_${MACHINE}"))
+        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${TARGET_ARCH}"))
     elif bb.data.inherits_class('nativesdk', d):
         d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}"))
     elif bb.data.inherits_class('cross-canadian', d):
index b3786a757b99ab4d07da33d2ccf2c4806ce56d4d..66f435fa0a9c7c2d99b732ba734b933483fa9dcd 100644 (file)
@@ -353,7 +353,7 @@ STAGING_DIR = "${TMPDIR}/sysroots"
 STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
 STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
 STAGING_BINDIR_CROSS = "${STAGING_BINDIR}/crossscripts"
-STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
+STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
 STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
 STAGING_LIBEXECDIR_NATIVE = "${STAGING_DIR_NATIVE}${libexecdir_native}"
 STAGING_BASE_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${base_libdir_native}"
index 4cc6ffea99ef258284faa4966b772da57ed94e31..92402f8ff55d4ed529ee68d0f3d4591f05eb21ec 100644 (file)
@@ -4,9 +4,9 @@ PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 PACKAGES_DYNAMIC = ""
 
-STAGINGCC = "gcc-cross-initial"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
-TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
+TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
 
 do_configure () {
        sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
index 5008cf29314f8611d913b24de3535a302c8ae403..30654f6d88043afaa319b7192edcb0d3d2c2015a 100644 (file)
@@ -2,8 +2,8 @@ require eglibc-common.inc
 require eglibc-ld.inc
 require eglibc-testing.inc
 
-STAGINGCC = "gcc-cross-initial"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
 PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
 
 TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
index 40bda289491c0a21e784d72734981d3ceba32bab..03cad6ed695775d48f65431f47882a8c5d2843a9 100644 (file)
@@ -4,7 +4,7 @@ LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
-DEPENDS = "virtual/libc gdb-cross qemu-native qemu-helper-native unfs3-native"
+DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native"
 PR = "r3"
 
 inherit meta toolchain-scripts
index 6433229174c28c1085aadb441b21bd67a784de15..c937ccb108920050159dee53fae18a4f0f6e18a6 100644 (file)
@@ -8,8 +8,8 @@ PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 PACKAGES_DYNAMIC = ""
 
-STAGINGCC = "gcc-cross-initial"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
 
 do_install() {
        # Install initial headers into the cross dir
index 38a7e455178b8633bd9fd4481a714aa5a20bbdb3..fd02b3d6126f0781267723d8d41e8745106923dc 100644 (file)
@@ -2,8 +2,8 @@ require uclibc.inc
 require uclibc-package.inc
 require uclibc-git.inc
 
-STAGINGCC = "gcc-cross-initial"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
 
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 
index 300a1d39ec14c30d6719fb0bb222bfafca528e62..fd3d801491cb5e922766c0fda9e39d897483c71d 100644 (file)
@@ -1,6 +1,9 @@
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
 
+PN = "binutils-cross-${TARGET_ARCH}"
+BPN = "binutils"
+
 INHIBIT_DEFAULT_DEPS = "1"
 INHIBIT_AUTOTOOLS_DEPS = "1"
 
index 8af407f6e006300519f47c5f815f06f06a017a69..b6d9a215e1ba05389dabc6681ddb082a7cb5da8e 100644 (file)
@@ -2,6 +2,8 @@ require binutils-cross_${PV}.bb
 
 inherit crosssdk
 
+PN = "binutils-crosssdk-${TARGET_ARCH}"
+
 PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
 
 SRC_URI += "file://relocatable_sdk.patch"
index 1e00249b1921aa817888e5cdd4ee6fa27480ab71..a96bcaa92c8b04154f096ad417d44c26334101cd 100644 (file)
@@ -7,6 +7,8 @@ NATIVEDEPS = ""
 
 inherit autotools gettext
 
+BPN = "gcc"
+
 def get_gcc_fpu_setting(bb, d):
     if d.getVar('ARMPKGSFX_EABI', True) == "hf" and d.getVar('TRANSLATED_TARGET_ARCH', True) == "arm":
         return "--with-float=hard"
index 8d979b1144daf7fabc4748d1d32eee4e28fbaf0a..307f73c8ed4af2c2eaacbd6df8896bd835aca4f1 100644 (file)
@@ -2,7 +2,6 @@ inherit cross-canadian
 
 SUMMARY = "GNU cc and gcc C compilers (cross-canadian for ${TARGET_ARCH} target)"
 PN = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-BPN = "gcc"
 
 DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-${HOST_PREFIX}libc-for-gcc nativesdk-gettext"
 
index 897e055cf3643db46a3bb87eaa09a1fc7dede8d7..5a6da8bbd2b1aa6cf48745c82b311d474dc66230 100644 (file)
@@ -5,6 +5,8 @@ PACKAGES = ""
 INHIBIT_AUTOTOOLS_DEPS = "1"
 INHIBIT_DEFAULT_DEPS = "1"
 
+PN = "gcc-cross-initial-${TARGET_ARCH}"
+
 CROSS_TARGET_SYS_DIR_append = ".${PN}"
 
 # This is intended to be a -very- basic config
@@ -68,8 +70,8 @@ do_install () {
 
        # 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}
+               *gcc-cross-initial-${TARGET_ARCH}|*gcc-crosssdk-initial-${TARGET_ARCH})
+                       dest=${D}/${includedir}/gcc-build-internal-initial-${TARGET_SYS}
                        hardlinkdir . $dest
                ;;
        esac
index 27ebcf648596d0bb1035b0571275cad5a11bfc08..ef88d3f49c873707b275a15c2bf07153df696097 100644 (file)
@@ -9,6 +9,8 @@ python () {
         d.setVar("EXTRADEPENDS", "linux-libc-headers")
 }
 
+PN = "gcc-cross-${TARGET_ARCH}"
+
 require gcc-configure-common.inc
 
 EXTRA_OECONF += " --enable-poison-system-directories"
@@ -138,7 +140,7 @@ STOP
 INHIBIT_PACKAGE_STRIP = "1"
 
 # Compute how to get from libexecdir to bindir in python (easier than shell)
-BINRELPATH = "${@os.path.relpath(d.expand("${STAGING_DIR_NATIVE}${prefix_native}/bin/${MULTIMACH_TARGET_SYS}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
+BINRELPATH = "${@os.path.relpath(d.expand("${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_SYS}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
 
 do_install () {
        ( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h )
@@ -177,8 +179,8 @@ do_install () {
 
        # gcc-runtime installs libgcc into a special location in staging since it breaks doing a standalone build
        case ${PN} in
-               *gcc-cross|*gcc-crosssdk)
-                       dest=${D}/${includedir}/gcc-build-internal-${MULTIMACH_TARGET_SYS}
+               *gcc-cross-${TARGET_ARCH}|*gcc-crosssdk-${TARGET_ARCH})
+                       dest=${D}/${includedir}/gcc-build-internal-${TARGET_SYS}
                        hardlinkdir . $dest
                ;;
        esac
index c6f74a64456c225045731ab1a74a15227039dcef..7d2599cb6c01a4edbcd4e9425986ce70da2815e0 100644 (file)
@@ -1,5 +1,7 @@
 inherit crosssdk
 
+PN = "gcc-crosssdk-initial-${TARGET_ARCH}"
+
 SYSTEMHEADERS = "${SDKPATHNATIVE}${prefix_nativesdk}/include"
 SYSTEMLIBS = "${SDKPATHNATIVE}${base_libdir_nativesdk}/"
 SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/"
index 5fe0b947dda300b28650213a99502c3e1bb8cef5..53f880f39bb5a6c1ebcbb97af4f75469e58f231f 100644 (file)
@@ -1,5 +1,7 @@
 inherit crosssdk
 
+PN = "gcc-crosssdk-${TARGET_ARCH}"
+
 SYSTEMHEADERS = "${SDKPATHNATIVE}${prefix_nativesdk}/include"
 SYSTEMLIBS = "${SDKPATHNATIVE}${base_libdir_nativesdk}/"
 SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/"
index 2e82a09b1ccf1c20a12a8677b87734db5ff9f92e..5fd2a8c8b0dd47f112ee65c33f2be1a97bede932 100644 (file)
@@ -20,7 +20,7 @@ RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic"
 
 do_configure () {
        export CXX="${CXX} -nostdinc++ -nostdlib++"
-       mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
+       mtarget=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
        target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
        hardlinkdir ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget ${B}
        for d in libgcc ${RUNTIMETARGET}; do
index b30bcfeaebf437281019bf825c05ca2aca19eb37..c81a80c6de6826590a241b282b87778cd5ddd8ce 100644 (file)
@@ -3,7 +3,7 @@ BPN = "libgcc"
 INHIBIT_DEFAULT_DEPS = "1"
 
 do_configure () {
-       target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
+       target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
        install -d ${D}${base_libdir} ${D}${libdir}
        hardlinkdir ${STAGING_INCDIR_NATIVE}/${LIBGCCBUILDTREENAME}$target/ ${B}
        mkdir -p ${B}/${BPN}
index 2ba27a81d8e562417358e806e40c22ec32cf2ca2..27e2e45aa6a29e668b89f2a84150b09885ea7666 100644 (file)
@@ -2,8 +2,8 @@ require libgcc-common.inc
 
 DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
 
-STAGINGCC = "gcc-cross-initial"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial"
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
 PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
 
 PACKAGES = ""
index 30e5ffeeadfbd69bc298dc8941e1701df612e388..7bf412134ba8bc6f6cdcda843be30ed92089d23c 100644 (file)
@@ -5,7 +5,7 @@ EXTRA_OECONF_PATHS = " \
     --with-build-sysroot=${STAGING_DIR_TARGET}"
 
 do_configure () {
-       mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
+       mtarget=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
        target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
        hardlinkdir ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget ${B}
 
index 6fc98ff110642b15383730e45785ad11683bc423..cb99b06c5b5098c415feaa4ff32ecaf3e363ff36 100644 (file)
@@ -8,6 +8,9 @@ EXTRA_OECONF += "--without-python"
 
 GDBPROPREFIX = ""
 
+PN = "gdb-cross-${TARGET_ARCH}"
+BPN = "gdb"
+
 inherit cross
 inherit gettext