diff options
23 files changed, 45 insertions, 31 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index f8c9b1e7b4..0dc1e6b8b7 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass @@ -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) diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass index 70efee317e..cea6afb75d 100644 --- a/meta/classes/cross-canadian.bbclass +++ b/meta/classes/cross-canadian.bbclass @@ -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 diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass index b7d33f5e32..a8f3b601c2 100644 --- a/meta/classes/cross.bbclass +++ b/meta/classes/cross.bbclass @@ -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}" diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 7b16bc04d5..46cc2677d6 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -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): diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index b3786a757b..66f435fa0a 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -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}" diff --git a/meta/recipes-core/eglibc/eglibc-initial.inc b/meta/recipes-core/eglibc/eglibc-initial.inc index 4cc6ffea99..92402f8ff5 100644 --- a/meta/recipes-core/eglibc/eglibc-initial.inc +++ b/meta/recipes-core/eglibc/eglibc-initial.inc @@ -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 diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc index 5008cf2931..30654f6d88 100644 --- a/meta/recipes-core/eglibc/eglibc.inc +++ b/meta/recipes-core/eglibc/eglibc.inc @@ -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}" diff --git a/meta/recipes-core/meta/meta-ide-support.bb b/meta/recipes-core/meta/meta-ide-support.bb index 40bda28949..03cad6ed69 100644 --- a/meta/recipes-core/meta/meta-ide-support.bb +++ b/meta/recipes-core/meta/meta-ide-support.bb @@ -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 diff --git a/meta/recipes-core/uclibc/uclibc-initial_git.bb b/meta/recipes-core/uclibc/uclibc-initial_git.bb index 6433229174..c937ccb108 100644 --- a/meta/recipes-core/uclibc/uclibc-initial_git.bb +++ b/meta/recipes-core/uclibc/uclibc-initial_git.bb @@ -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 diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb index 38a7e45517..fd02b3d612 100644 --- a/meta/recipes-core/uclibc/uclibc_git.bb +++ b/meta/recipes-core/uclibc/uclibc_git.bb @@ -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" diff --git a/meta/recipes-devtools/binutils/binutils-cross.inc b/meta/recipes-devtools/binutils/binutils-cross.inc index 300a1d39ec..fd3d801491 100644 --- a/meta/recipes-devtools/binutils/binutils-cross.inc +++ b/meta/recipes-devtools/binutils/binutils-cross.inc @@ -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" diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb index 8af407f6e0..b6d9a215e1 100644 --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc index 1e00249b19..a96bcaa92c 100644 --- a/meta/recipes-devtools/gcc/gcc-common.inc +++ b/meta/recipes-devtools/gcc/gcc-common.inc @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index 8d979b1144..307f73c8ed 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/meta/recipes-devtools/gcc/gcc-cross-initial.inc index 897e055cf3..5a6da8bbd2 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-initial.inc @@ -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 diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc index 27ebcf6485..ef88d3f49c 100644 --- a/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/meta/recipes-devtools/gcc/gcc-cross.inc @@ -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 diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc b/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc index c6f74a6445..7d2599cb6c 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc @@ -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}/" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/meta/recipes-devtools/gcc/gcc-crosssdk.inc index 5fe0b947dd..53f880f39b 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk.inc +++ b/meta/recipes-devtools/gcc/gcc-crosssdk.inc @@ -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}/" diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc index 2e82a09b1c..5fd2a8c8b0 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -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 diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc index b30bcfeaeb..c81a80c6de 100644 --- a/meta/recipes-devtools/gcc/libgcc-common.inc +++ b/meta/recipes-devtools/gcc/libgcc-common.inc @@ -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} diff --git a/meta/recipes-devtools/gcc/libgcc-initial.inc b/meta/recipes-devtools/gcc/libgcc-initial.inc index 2ba27a81d8..27e2e45aa6 100644 --- a/meta/recipes-devtools/gcc/libgcc-initial.inc +++ b/meta/recipes-devtools/gcc/libgcc-initial.inc @@ -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 = "" diff --git a/meta/recipes-devtools/gcc/libgfortran.inc b/meta/recipes-devtools/gcc/libgfortran.inc index 30e5ffeead..7bf412134b 100644 --- a/meta/recipes-devtools/gcc/libgfortran.inc +++ b/meta/recipes-devtools/gcc/libgfortran.inc @@ -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} diff --git a/meta/recipes-devtools/gdb/gdb-cross.inc b/meta/recipes-devtools/gdb/gdb-cross.inc index 6fc98ff110..cb99b06c5b 100644 --- a/meta/recipes-devtools/gdb/gdb-cross.inc +++ b/meta/recipes-devtools/gdb/gdb-cross.inc @@ -8,6 +8,9 @@ EXTRA_OECONF += "--without-python" GDBPROPREFIX = "" +PN = "gdb-cross-${TARGET_ARCH}" +BPN = "gdb" + inherit cross inherit gettext |