* [PATCH 0/3] Make multi-machine toolchains to co-exist.
@ 2010-07-24 9:32 Khem Raj
2010-07-24 9:32 ` [PATCH 1/3] bitbake.conf: Define HOST_SYS and TARGET_SYS based on target sub-arch Khem Raj
` (4 more replies)
0 siblings, 5 replies; 21+ messages in thread
From: Khem Raj @ 2010-07-24 9:32 UTC (permalink / raw)
To: openembedded-devel
Hi
Following three patches are for making multi-machine toolchains co-exist with
new cross staging for toolchain.
It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS
which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-*
and for armv5te its called armv5te-oe-linux-gnueabi-*
They can coexist in same native sysroot. The symlinks would mean that
gcc will not accidently mix the assemblers or linkers.
I have booted a minimal-image on qemuarm successfully. The build for
beagleboard in same sysroot is underway.
Please give it a shot in your environments (especially Koen's env)
Thanks
-Khem
^ permalink raw reply [flat|nested] 21+ messages in thread* [PATCH 1/3] bitbake.conf: Define HOST_SYS and TARGET_SYS based on target sub-arch 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj @ 2010-07-24 9:32 ` Khem Raj 2010-07-24 9:32 ` [PATCH 2/3] binutils-cross.inc, binutils.inc: Overhaul for new cross dir structure Khem Raj ` (3 subsequent siblings) 4 siblings, 0 replies; 21+ messages in thread From: Khem Raj @ 2010-07-24 9:32 UTC (permalink / raw) To: openembedded-devel Signed-off-by: Khem Raj <raj.khem@gmail.com> --- classes/cross.bbclass | 2 +- conf/bitbake.conf | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/classes/cross.bbclass b/classes/cross.bbclass index 75b2abe..5776a37 100644 --- a/classes/cross.bbclass +++ b/classes/cross.bbclass @@ -15,7 +15,6 @@ OLD_PACKAGE_ARCH := "${PACKAGE_ARCH}" PACKAGE_ARCH = "${OLD_PACKAGE_ARCH}" # Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}" -BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}" HOST_ARCH = "${BUILD_ARCH}" HOST_VENDOR = "${BUILD_VENDOR}" @@ -23,6 +22,7 @@ HOST_OS = "${BUILD_OS}" HOST_PREFIX = "${BUILD_PREFIX}" HOST_CC_ARCH = "${BUILD_CC_ARCH}" HOST_EXEEXT = "${BUILD_EXEEXT}" +BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}" BASEPKG_HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}" CPPFLAGS = "${BUILD_CPPFLAGS}" diff --git a/conf/bitbake.conf b/conf/bitbake.conf index 748abba..dd6ffda 100644 --- a/conf/bitbake.conf +++ b/conf/bitbake.conf @@ -101,7 +101,7 @@ BUILD_EXEEXT = "" HOST_ARCH = "${TARGET_ARCH}" HOST_OS = "${TARGET_OS}" HOST_VENDOR = "${TARGET_VENDOR}" -HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}" +HOST_SYS = "${BASEPKG_HOST_SYS}" HOST_PREFIX = "${TARGET_PREFIX}" HOST_CC_ARCH = "${TARGET_CC_ARCH}" HOST_EXEEXT = "" @@ -109,7 +109,7 @@ HOST_EXEEXT = "" TARGET_ARCH ?= "INVALID" TARGET_OS = "INVALID" TARGET_VENDOR = "${BUILD_VENDOR}" -TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}" +TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}" TARGET_PREFIX = "${TARGET_SYS}-" TARGET_CC_ARCH = "" TARGET_EXEEXT = "" @@ -135,6 +135,7 @@ PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE} MULTIMACH_ARCH = "${PACKAGE_ARCH}" MULTIMACH_TARGET_SYS = "${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" MULTIMACH_HOST_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}" + BASEPKG_HOST_SYS = "${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" BASEPKG_TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" -- 1.7.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 2/3] binutils-cross.inc, binutils.inc: Overhaul for new cross dir structure. 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj 2010-07-24 9:32 ` [PATCH 1/3] bitbake.conf: Define HOST_SYS and TARGET_SYS based on target sub-arch Khem Raj @ 2010-07-24 9:32 ` Khem Raj 2010-07-24 9:32 ` [PATCH 3/3] gcc-cross: Use EXTRA_OECONF_PATHS in initial and intermediate recipes Khem Raj ` (2 subsequent siblings) 4 siblings, 0 replies; 21+ messages in thread From: Khem Raj @ 2010-07-24 9:32 UTC (permalink / raw) To: openembedded-devel * Install the symlinks instead of copied of tools. * Dont build shared libopcodes * We dont need to install libbfd a separate recipe should do that if needed. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- recipes/binutils/binutils-cross.inc | 15 +++++++++++---- recipes/binutils/binutils.inc | 3 --- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/binutils/binutils-cross.inc b/recipes/binutils/binutils-cross.inc index f3ba5c3..073cdad 100644 --- a/recipes/binutils/binutils-cross.inc +++ b/recipes/binutils/binutils-cross.inc @@ -5,15 +5,15 @@ PROVIDES = "virtual/${TARGET_PREFIX}binutils" PACKAGES = "" EXTRA_OECONF = "--with-sysroot=${STAGING_DIR_TARGET} \ --program-prefix=${TARGET_PREFIX} \ - --enable-install-libbfd \ - --enable-shared \ + --disable-install-libbfd \ + --disable-shared \ --disable-werror \ " do_install () { oe_runmake 'DESTDIR=${D}' install - install -m 0644 libiberty/pic/libiberty.a \ - ${D}${libdir}/libiberty_pic.a + rm -rf ${D}${STAGING_DIR_NATIVE}${libdir_native}/libiberty.a + rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS} # We don't really need these, so we'll remove them... rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/lib/ldscripts @@ -26,4 +26,11 @@ do_install () { rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir} || : rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64 || : rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${prefix} || : + # Insert symlinks into libexec so when tools without a prefix are searched for, the correct ones are + # found. + dest=${D}${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/ + install -d $dest + for t in ar as ld nm objcopy objdump ranlib strip; do + ln -sf ../../bin/${TARGET_PREFIX}$t $dest$t + done } diff --git a/recipes/binutils/binutils.inc b/recipes/binutils/binutils.inc index 75ee66a..c09b50a 100644 --- a/recipes/binutils/binutils.inc +++ b/recipes/binutils/binutils.inc @@ -43,9 +43,6 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \ --enable-shared" -# This is necessary due to a bug in the binutils Makefiles -EXTRA_OEMAKE = "configure-build-libiberty all" - export AR = "${HOST_PREFIX}ar" export AS = "${HOST_PREFIX}as" export LD = "${HOST_PREFIX}ld" -- 1.7.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 3/3] gcc-cross: Use EXTRA_OECONF_PATHS in initial and intermediate recipes. 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj 2010-07-24 9:32 ` [PATCH 1/3] bitbake.conf: Define HOST_SYS and TARGET_SYS based on target sub-arch Khem Raj 2010-07-24 9:32 ` [PATCH 2/3] binutils-cross.inc, binutils.inc: Overhaul for new cross dir structure Khem Raj @ 2010-07-24 9:32 ` Khem Raj 2010-07-24 10:47 ` [PATCH 0/3] Make multi-machine toolchains to co-exist Koen Kooi 2010-07-24 20:51 ` Koen Kooi 4 siblings, 0 replies; 21+ messages in thread From: Khem Raj @ 2010-07-24 9:32 UTC (permalink / raw) To: openembedded-devel * Add new configure time option --with-build-time-tools Signed-off-by: Khem Raj <raj.khem@gmail.com> --- recipes/gcc/gcc-configure-cross.inc | 5 +++-- recipes/gcc/gcc-cross-intermediate.inc | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/gcc/gcc-configure-cross.inc b/recipes/gcc/gcc-configure-cross.inc index 8b97b09..869ac5e 100644 --- a/recipes/gcc/gcc-configure-cross.inc +++ b/recipes/gcc/gcc-configure-cross.inc @@ -3,9 +3,10 @@ require gcc-configure-common.inc USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}' EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \ - --with-gxx-include-dir=${STAGING_DIR_TARGET}/${target_includedir}/c++ \ + --with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c++ \ --with-sysroot=${STAGING_DIR_TARGET} \ - --with-build-sysroot=${STAGING_DIR_TARGET}" + --with-build-sysroot=${STAGING_DIR_TARGET} \ + --with-build-time-tools=${bindir}" do_configure_prepend () { export CC="${BUILD_CC}" diff --git a/recipes/gcc/gcc-cross-intermediate.inc b/recipes/gcc/gcc-cross-intermediate.inc index cbc8638..6dbdb94 100644 --- a/recipes/gcc/gcc-cross-intermediate.inc +++ b/recipes/gcc/gcc-cross-intermediate.inc @@ -11,8 +11,7 @@ EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \ --disable-threads \ --enable-languages=c \ --program-prefix=${TARGET_PREFIX} \ - --with-sysroot=${STAGING_DIR_TARGET} \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ + ${EXTRA_OECONF_PATHS} \ ${OPTSPACE} \ ${EXTRA_OECONF_INTERMEDIATE} \ ${@get_gcc_fpu_setting(bb, d)} \ -- 1.7.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj ` (2 preceding siblings ...) 2010-07-24 9:32 ` [PATCH 3/3] gcc-cross: Use EXTRA_OECONF_PATHS in initial and intermediate recipes Khem Raj @ 2010-07-24 10:47 ` Koen Kooi 2010-07-24 20:51 ` Koen Kooi 4 siblings, 0 replies; 21+ messages in thread From: Koen Kooi @ 2010-07-24 10:47 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 24-07-10 11:32, Khem Raj wrote: > Hi > > Following three patches are for making multi-machine toolchains co-exist with > new cross staging for toolchain. > > It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS > > which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* > and for armv5te its called armv5te-oe-linux-gnueabi-* > > They can coexist in same native sysroot. The symlinks would mean that > gcc will not accidently mix the assemblers or linkers. > > I have booted a minimal-image on qemuarm successfully. The build for > beagleboard in same sysroot is underway. > > Please give it a shot in your environments (especially Koen's env) Khem, Thanks for working on this! I'm not sure if I'll have the time to test this over the weekend, but I'll surely give it a go on monday at the latest. regards, Koen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMSsTRMkyGM64RGpERAmkhAKCI1Q/i9+jdejsAreSm36tbw/c1AQCgrAmt 6odQta5VzOiXWcWnFVBT4II= =uvvj -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj ` (3 preceding siblings ...) 2010-07-24 10:47 ` [PATCH 0/3] Make multi-machine toolchains to co-exist Koen Kooi @ 2010-07-24 20:51 ` Koen Kooi 2010-07-24 21:25 ` Khem Raj 4 siblings, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-24 20:51 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 24-07-10 11:32, Khem Raj wrote: > Hi > > Following three patches are for making multi-machine toolchains co-exist with > new cross staging for toolchain. > > It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS > > which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* > and for armv5te its called armv5te-oe-linux-gnueabi-* > > They can coexist in same native sysroot. The symlinks would mean that > gcc will not accidently mix the assemblers or linkers. > > I have booted a minimal-image on qemuarm successfully. The build for > beagleboard in same sysroot is underway. > > Please give it a shot in your environments (especially Koen's env) MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, going to try a bigger build now. regards, Koen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMS1JXMkyGM64RGpERAlZPAJ9q/D0n/slg4FfpvNVybcyscsfxWQCgulWl 9UWLPckdobpgJLGqWYTpt5k= =jOIq -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-24 20:51 ` Koen Kooi @ 2010-07-24 21:25 ` Khem Raj 2010-07-25 8:32 ` Koen Kooi 2010-07-26 9:01 ` Eric Bénard 0 siblings, 2 replies; 21+ messages in thread From: Khem Raj @ 2010-07-24 21:25 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 1062 bytes --] On (24/07/10 22:51), Koen Kooi wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 24-07-10 11:32, Khem Raj wrote: > > Hi > > > > Following three patches are for making multi-machine toolchains co-exist with > > new cross staging for toolchain. > > > > It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS > > > > which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* > > and for armv5te its called armv5te-oe-linux-gnueabi-* > > > > They can coexist in same native sysroot. The symlinks would mean that > > gcc will not accidently mix the assemblers or linkers. > > > > I have booted a minimal-image on qemuarm successfully. The build for > > beagleboard in same sysroot is underway. > > > > Please give it a shot in your environments (especially Koen's env) > > MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, > going to try a bigger build now. You will need 4th patch which is attached here, for the sdk recipes. Thanks -Khem [-- Attachment #2: 0001-sdk.bbclass-override-BASEPKG_HOST_SYS-as-it-is-used-.patch --] [-- Type: text/x-diff, Size: 964 bytes --] From 0998a5a7305bc92509aee13f0103b05f1965022b Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 24 Jul 2010 14:21:42 -0700 Subject: [PATCH] sdk.bbclass: override BASEPKG_HOST_SYS as it is used to make TARGET_SYS Signed-off-by: Khem Raj <raj.khem@gmail.com> --- classes/sdk.bbclass | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass index 198d147..049fda1 100644 --- a/classes/sdk.bbclass +++ b/classes/sdk.bbclass @@ -15,6 +15,7 @@ PACKAGE_ARCH = "${BUILD_ARCH}-${OLD_PACKAGE_ARCH}-sdk" # Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}" BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}" +BASEPKG_HOST_SYS = "${BUILD_ARCH}-${HOST_OS}" STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-sdk" STAGING_DIR_TARGET = "${STAGING_DIR}/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" -- 1.7.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-24 21:25 ` Khem Raj @ 2010-07-25 8:32 ` Koen Kooi 2010-07-25 11:16 ` Koen Kooi 2010-07-26 9:01 ` Eric Bénard 1 sibling, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-25 8:32 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 24-07-10 23:25, Khem Raj wrote: > On (24/07/10 22:51), Koen Kooi wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> On 24-07-10 11:32, Khem Raj wrote: >>> Hi >>> >>> Following three patches are for making multi-machine toolchains co-exist with >>> new cross staging for toolchain. >>> >>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>> >>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>> >>> They can coexist in same native sysroot. The symlinks would mean that >>> gcc will not accidently mix the assemblers or linkers. >>> >>> I have booted a minimal-image on qemuarm successfully. The build for >>> beagleboard in same sysroot is underway. >>> >>> Please give it a shot in your environments (especially Koen's env) >> >> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >> going to try a bigger build now. > > You will need 4th patch which is attached here, for the sdk recipes. OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; MACHINE=hawkboard bitbake console-image' works as well. Let's see what xbmc does :) regards, Koen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMS/aSMkyGM64RGpERAqTUAJ46VkTorvGKKzVpF4H/H/srZ8nTrwCcC9DI a1DXBV/9WlEHJwF6e1o/DEs= =2TTh -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 8:32 ` Koen Kooi @ 2010-07-25 11:16 ` Koen Kooi 2010-07-25 12:31 ` Koen Kooi 2010-07-25 14:30 ` Khem Raj 0 siblings, 2 replies; 21+ messages in thread From: Koen Kooi @ 2010-07-25 11:16 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25-07-10 10:32, Koen Kooi wrote: > On 24-07-10 23:25, Khem Raj wrote: >> On (24/07/10 22:51), Koen Kooi wrote: >>> -----BEGIN PGP SIGNED MESSAGE----- >>> Hash: SHA1 >>> >>> On 24-07-10 11:32, Khem Raj wrote: >>>> Hi >>>> >>>> Following three patches are for making multi-machine toolchains co-exist with >>>> new cross staging for toolchain. >>>> >>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>> >>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>> >>>> They can coexist in same native sysroot. The symlinks would mean that >>>> gcc will not accidently mix the assemblers or linkers. >>>> >>>> I have booted a minimal-image on qemuarm successfully. The build for >>>> beagleboard in same sysroot is underway. >>>> >>>> Please give it a shot in your environments (especially Koen's env) >>> >>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>> going to try a bigger build now. > >> You will need 4th patch which is attached here, for the sdk recipes. > > OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; > MACHINE=hawkboard bitbake console-image' works as well. > Let's see what xbmc does :) xbmc builds, but mplayer and gstreamer-ti fail. The fix for mplayer is simple, change configure:2106 from arm|armv4t|armv5te) to arm*). The gstreamer-ti one is a bit harder to fix: | checking host system type... Invalid configuration `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not recognized | configure: error: /bin/sh ./config.sub beagleboard-angstrom-linux-gnueabi failed That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we probably need to change things. Does anyone have a sample on how to do that? regards, Koen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMTBz+MkyGM64RGpERAoVGAJ915MD/4r74PfqhUF4VbX39xCluEACgr1M3 A07sGQ8Ju0+4EomNKUFhRzw= =4P5d -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 11:16 ` Koen Kooi @ 2010-07-25 12:31 ` Koen Kooi 2010-07-25 14:41 ` Khem Raj 2010-07-25 14:30 ` Khem Raj 1 sibling, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-25 12:31 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25-07-10 13:16, Koen Kooi wrote: > On 25-07-10 10:32, Koen Kooi wrote: >> On 24-07-10 23:25, Khem Raj wrote: >>> On (24/07/10 22:51), Koen Kooi wrote: >>>> -----BEGIN PGP SIGNED MESSAGE----- >>>> Hash: SHA1 >>>> >>>> On 24-07-10 11:32, Khem Raj wrote: >>>>> Hi >>>>> >>>>> Following three patches are for making multi-machine toolchains co-exist with >>>>> new cross staging for toolchain. >>>>> >>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>>> >>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>>> >>>>> They can coexist in same native sysroot. The symlinks would mean that >>>>> gcc will not accidently mix the assemblers or linkers. >>>>> >>>>> I have booted a minimal-image on qemuarm successfully. The build for >>>>> beagleboard in same sysroot is underway. >>>>> >>>>> Please give it a shot in your environments (especially Koen's env) >>>> >>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>>> going to try a bigger build now. > >>> You will need 4th patch which is attached here, for the sdk recipes. > >> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; >> MACHINE=hawkboard bitbake console-image' works as well. >> Let's see what xbmc does :) > > xbmc builds, but mplayer and gstreamer-ti fail. > > The fix for mplayer is simple, change configure:2106 from > arm|armv4t|armv5te) to arm*). > > The gstreamer-ti one is a bit harder to fix: > > | checking host system type... Invalid configuration > `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not > recognized > | configure: error: /bin/sh ./config.sub > beagleboard-angstrom-linux-gnueabi failed > > That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we > probably need to change things. Does anyone have a sample on how to do that? And cacao: | configure: error: armv7a systems are not supported at this time | ERROR: Function do_configure failed -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMTC6zMkyGM64RGpERAgwBAJ4o3TMs0vvc/rHEBlg+T5zuRw4J1gCfXwga oHSk52zHn97qye6wkmyCnp8= =7Es1 -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 12:31 ` Koen Kooi @ 2010-07-25 14:41 ` Khem Raj 2010-07-25 15:10 ` Koen Kooi 2010-07-25 15:21 ` Richard Purdie 0 siblings, 2 replies; 21+ messages in thread From: Khem Raj @ 2010-07-25 14:41 UTC (permalink / raw) To: openembedded-devel On Sun, Jul 25, 2010 at 5:31 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 25-07-10 13:16, Koen Kooi wrote: >> On 25-07-10 10:32, Koen Kooi wrote: >>> On 24-07-10 23:25, Khem Raj wrote: >>>> On (24/07/10 22:51), Koen Kooi wrote: >>>>> -----BEGIN PGP SIGNED MESSAGE----- >>>>> Hash: SHA1 >>>>> >>>>> On 24-07-10 11:32, Khem Raj wrote: >>>>>> Hi >>>>>> >>>>>> Following three patches are for making multi-machine toolchains co-exist with >>>>>> new cross staging for toolchain. >>>>>> >>>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>>>> >>>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>>>> >>>>>> They can coexist in same native sysroot. The symlinks would mean that >>>>>> gcc will not accidently mix the assemblers or linkers. >>>>>> >>>>>> I have booted a minimal-image on qemuarm successfully. The build for >>>>>> beagleboard in same sysroot is underway. >>>>>> >>>>>> Please give it a shot in your environments (especially Koen's env) >>>>> >>>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>>>> going to try a bigger build now. >> >>>> You will need 4th patch which is attached here, for the sdk recipes. >> >>> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; >>> MACHINE=hawkboard bitbake console-image' works as well. >>> Let's see what xbmc does :) >> >> xbmc builds, but mplayer and gstreamer-ti fail. >> >> The fix for mplayer is simple, change configure:2106 from >> arm|armv4t|armv5te) to arm*). >> >> The gstreamer-ti one is a bit harder to fix: >> >> | checking host system type... Invalid configuration >> `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not >> recognized >> | configure: error: /bin/sh ./config.sub >> beagleboard-angstrom-linux-gnueabi failed >> >> That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we >> probably need to change things. Does anyone have a sample on how to do that? > > And cacao: > > | configure: error: armv7a systems are not supported at this time > | ERROR: Function do_configure failed yes I was expecting that kind of problems. openssl also has similar issues. another idea that struck me was that we could change the target triplet to drop TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH could be anything we could even make it same as MACHINE_ARCH which means you will build toolchain per machine and they will live together. then the tool names will be something like arm-v7-linux-gnueabi-* powerpc-e500-linux-gnu mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH that would keep all recipe configury happy as the arch detected from config.guess will be what we had (arm, mips, mipsel powerpc etc) so no changes needed but we will have to drop the brand does it sound good ? bad? > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (Darwin) > > iD8DBQFMTC6zMkyGM64RGpERAgwBAJ4o3TMs0vvc/rHEBlg+T5zuRw4J1gCfXwga > oHSk52zHn97qye6wkmyCnp8= > =7Es1 > -----END PGP SIGNATURE----- > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 14:41 ` Khem Raj @ 2010-07-25 15:10 ` Koen Kooi 2010-07-25 15:53 ` Richard Purdie 2010-07-25 15:21 ` Richard Purdie 1 sibling, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-25 15:10 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25-07-10 16:41, Khem Raj wrote: > On Sun, Jul 25, 2010 at 5:31 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > On 25-07-10 13:16, Koen Kooi wrote: >>>> On 25-07-10 10:32, Koen Kooi wrote: >>>>> On 24-07-10 23:25, Khem Raj wrote: >>>>>> On (24/07/10 22:51), Koen Kooi wrote: >>>>>>> -----BEGIN PGP SIGNED MESSAGE----- >>>>>>> Hash: SHA1 >>>>>>> >>>>>>> On 24-07-10 11:32, Khem Raj wrote: >>>>>>>> Hi >>>>>>>> >>>>>>>> Following three patches are for making multi-machine toolchains co-exist with >>>>>>>> new cross staging for toolchain. >>>>>>>> >>>>>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>>>>>> >>>>>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>>>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>>>>>> >>>>>>>> They can coexist in same native sysroot. The symlinks would mean that >>>>>>>> gcc will not accidently mix the assemblers or linkers. >>>>>>>> >>>>>>>> I have booted a minimal-image on qemuarm successfully. The build for >>>>>>>> beagleboard in same sysroot is underway. >>>>>>>> >>>>>>>> Please give it a shot in your environments (especially Koen's env) >>>>>>> >>>>>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>>>>>> going to try a bigger build now. >>>> >>>>>> You will need 4th patch which is attached here, for the sdk recipes. >>>> >>>>> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; >>>>> MACHINE=hawkboard bitbake console-image' works as well. >>>>> Let's see what xbmc does :) >>>> >>>> xbmc builds, but mplayer and gstreamer-ti fail. >>>> >>>> The fix for mplayer is simple, change configure:2106 from >>>> arm|armv4t|armv5te) to arm*). >>>> >>>> The gstreamer-ti one is a bit harder to fix: >>>> >>>> | checking host system type... Invalid configuration >>>> `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not >>>> recognized >>>> | configure: error: /bin/sh ./config.sub >>>> beagleboard-angstrom-linux-gnueabi failed >>>> >>>> That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we >>>> probably need to change things. Does anyone have a sample on how to do that? > > And cacao: > > | configure: error: armv7a systems are not supported at this time > | ERROR: Function do_configure failed > >> yes I was expecting that kind of problems. openssl also has similar issues. > >> another idea that struck me was that we could change the target triplet to drop >> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH >> could be anything >> we could even make it same as MACHINE_ARCH which means you will build >> toolchain per machine >> and they will live together. > >> then the tool names will be something like arm-v7-linux-gnueabi-* >> powerpc-e500-linux-gnu >> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- > >> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH > >> that would keep all recipe configury happy as the arch detected from >> config.guess will be what >> we had (arm, mips, mipsel powerpc etc) so no changes needed but we >> will have to drop the brand > >> does it sound good ? bad? I don't think abusing target vendor for that is a good idea. And I'm quite attached to my angstrom branded toolchains, tbh. regards, Koen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMTFPwMkyGM64RGpERAs9AAJ0bVObloBojA0EJmNXnsaruS3NENQCgqClW e463bslpzDHNgdUQezMCTa0= =SYZ6 -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 15:10 ` Koen Kooi @ 2010-07-25 15:53 ` Richard Purdie 2010-07-25 19:43 ` Khem Raj 0 siblings, 1 reply; 21+ messages in thread From: Richard Purdie @ 2010-07-25 15:53 UTC (permalink / raw) To: openembedded-devel On Sun, 2010-07-25 at 17:10 +0200, Koen Kooi wrote: > > And cacao: > > > > | configure: error: armv7a systems are not supported at this time > > | ERROR: Function do_configure failed > > > >> yes I was expecting that kind of problems. openssl also has similar issues. > > > >> another idea that struck me was that we could change the target triplet to drop > >> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH > >> could be anything > >> we could even make it same as MACHINE_ARCH which means you will build > >> toolchain per machine > >> and they will live together. > > > >> then the tool names will be something like arm-v7-linux-gnueabi-* > >> powerpc-e500-linux-gnu > >> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- > > > >> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH > > > >> that would keep all recipe configury happy as the arch detected from > >> config.guess will be what > >> we had (arm, mips, mipsel powerpc etc) so no changes needed but we > >> will have to drop the brand > > > >> does it sound good ? bad? > > I don't think abusing target vendor for that is a good idea. And I'm > quite attached to my angstrom branded toolchains, tbh. Note that you can still append your angstrom string to the vendor part of the triplet... Cheers, Richard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 15:53 ` Richard Purdie @ 2010-07-25 19:43 ` Khem Raj 2010-07-26 7:50 ` Koen Kooi 0 siblings, 1 reply; 21+ messages in thread From: Khem Raj @ 2010-07-25 19:43 UTC (permalink / raw) To: openembedded-devel On Sun, Jul 25, 2010 at 8:53 AM, Richard Purdie <rpurdie@rpsys.net> wrote: > On Sun, 2010-07-25 at 17:10 +0200, Koen Kooi wrote: >> > And cacao: >> > >> > | configure: error: armv7a systems are not supported at this time >> > | ERROR: Function do_configure failed >> > >> >> yes I was expecting that kind of problems. openssl also has similar issues. >> > >> >> another idea that struck me was that we could change the target triplet to drop >> >> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH >> >> could be anything >> >> we could even make it same as MACHINE_ARCH which means you will build >> >> toolchain per machine >> >> and they will live together. >> > >> >> then the tool names will be something like arm-v7-linux-gnueabi-* >> >> powerpc-e500-linux-gnu >> >> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- >> > >> >> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH >> > >> >> that would keep all recipe configury happy as the arch detected from >> >> config.guess will be what >> >> we had (arm, mips, mipsel powerpc etc) so no changes needed but we >> >> will have to drop the brand >> > >> >> does it sound good ? bad? >> >> I don't think abusing target vendor for that is a good idea. And I'm >> quite attached to my angstrom branded toolchains, tbh. > > Note that you can still append your angstrom string to the vendor part > of the triplet... arm-v7_angstrom-linux-gnueabi- etc. is a possibility > > Cheers, > > Richard > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 19:43 ` Khem Raj @ 2010-07-26 7:50 ` Koen Kooi 2010-07-26 8:54 ` Khem Raj 0 siblings, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-26 7:50 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25-07-10 21:43, Khem Raj wrote: > On Sun, Jul 25, 2010 at 8:53 AM, Richard Purdie <rpurdie@rpsys.net> wrote: >> On Sun, 2010-07-25 at 17:10 +0200, Koen Kooi wrote: >>>> And cacao: >>>> >>>> | configure: error: armv7a systems are not supported at this time >>>> | ERROR: Function do_configure failed >>>> >>>>> yes I was expecting that kind of problems. openssl also has similar issues. >>>> >>>>> another idea that struck me was that we could change the target triplet to drop >>>>> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH >>>>> could be anything >>>>> we could even make it same as MACHINE_ARCH which means you will build >>>>> toolchain per machine >>>>> and they will live together. >>>> >>>>> then the tool names will be something like arm-v7-linux-gnueabi-* >>>>> powerpc-e500-linux-gnu >>>>> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- >>>> >>>>> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH >>>> >>>>> that would keep all recipe configury happy as the arch detected from >>>>> config.guess will be what >>>>> we had (arm, mips, mipsel powerpc etc) so no changes needed but we >>>>> will have to drop the brand >>>> >>>>> does it sound good ? bad? >>> >>> I don't think abusing target vendor for that is a good idea. And I'm >>> quite attached to my angstrom branded toolchains, tbh. >> >> Note that you can still append your angstrom string to the vendor part >> of the triplet... > > arm-v7_angstrom-linux-gnueabi- etc. is a possibility that would work for me :) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMTT5KMkyGM64RGpERAiNNAJ4pWZ3QzrdsF0zioWrU1oAmTuAF8QCghWiA jYNyaUoeD+N7muCWMbilM78= =tcjx -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-26 7:50 ` Koen Kooi @ 2010-07-26 8:54 ` Khem Raj 0 siblings, 0 replies; 21+ messages in thread From: Khem Raj @ 2010-07-26 8:54 UTC (permalink / raw) To: openembedded-devel On Mon, Jul 26, 2010 at 12:50 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 25-07-10 21:43, Khem Raj wrote: >> On Sun, Jul 25, 2010 at 8:53 AM, Richard Purdie <rpurdie@rpsys.net> wrote: >>> On Sun, 2010-07-25 at 17:10 +0200, Koen Kooi wrote: >>>>> And cacao: >>>>> >>>>> | configure: error: armv7a systems are not supported at this time >>>>> | ERROR: Function do_configure failed >>>>> >>>>>> yes I was expecting that kind of problems. openssl also has similar issues. >>>>> >>>>>> another idea that struck me was that we could change the target triplet to drop >>>>>> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH >>>>>> could be anything >>>>>> we could even make it same as MACHINE_ARCH which means you will build >>>>>> toolchain per machine >>>>>> and they will live together. >>>>> >>>>>> then the tool names will be something like arm-v7-linux-gnueabi-* >>>>>> powerpc-e500-linux-gnu >>>>>> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- >>>>> >>>>>> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH >>>>> >>>>>> that would keep all recipe configury happy as the arch detected from >>>>>> config.guess will be what >>>>>> we had (arm, mips, mipsel powerpc etc) so no changes needed but we >>>>>> will have to drop the brand >>>>> >>>>>> does it sound good ? bad? >>>> >>>> I don't think abusing target vendor for that is a good idea. And I'm >>>> quite attached to my angstrom branded toolchains, tbh. >>> >>> Note that you can still append your angstrom string to the vendor part >>> of the triplet... >> >> arm-v7_angstrom-linux-gnueabi- etc. is a possibility > > that would work for me :) OK, I have a local patch here to append brand to vendor string in triplet. I will post it tomorrow morning if it builds my different images. I think now after these changes triplets will be distinct and we don't need MULTIMACH* or am I mistaken? Thanks -Khem > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (Darwin) > > iD8DBQFMTT5KMkyGM64RGpERAiNNAJ4pWZ3QzrdsF0zioWrU1oAmTuAF8QCghWiA > jYNyaUoeD+N7muCWMbilM78= > =tcjx > -----END PGP SIGNATURE----- > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 14:41 ` Khem Raj 2010-07-25 15:10 ` Koen Kooi @ 2010-07-25 15:21 ` Richard Purdie 1 sibling, 0 replies; 21+ messages in thread From: Richard Purdie @ 2010-07-25 15:21 UTC (permalink / raw) To: openembedded-devel On Sun, 2010-07-25 at 07:41 -0700, Khem Raj wrote: > On Sun, Jul 25, 2010 at 5:31 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > On 25-07-10 13:16, Koen Kooi wrote: > >> On 25-07-10 10:32, Koen Kooi wrote: > >>> On 24-07-10 23:25, Khem Raj wrote: > >>>> On (24/07/10 22:51), Koen Kooi wrote: > >>>>> -----BEGIN PGP SIGNED MESSAGE----- > >>>>> Hash: SHA1 > >>>>> > >>>>> On 24-07-10 11:32, Khem Raj wrote: > >>>>>> Hi > >>>>>> > >>>>>> Following three patches are for making multi-machine toolchains co-exist with > >>>>>> new cross staging for toolchain. > >>>>>> > >>>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS > >>>>>> > >>>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* > >>>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* > >>>>>> > >>>>>> They can coexist in same native sysroot. The symlinks would mean that > >>>>>> gcc will not accidently mix the assemblers or linkers. > >>>>>> > >>>>>> I have booted a minimal-image on qemuarm successfully. The build for > >>>>>> beagleboard in same sysroot is underway. > >>>>>> > >>>>>> Please give it a shot in your environments (especially Koen's env) > >>>>> > >>>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, > >>>>> going to try a bigger build now. > >> > >>>> You will need 4th patch which is attached here, for the sdk recipes. > >> > >>> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; > >>> MACHINE=hawkboard bitbake console-image' works as well. > >>> Let's see what xbmc does :) > >> > >> xbmc builds, but mplayer and gstreamer-ti fail. > >> > >> The fix for mplayer is simple, change configure:2106 from > >> arm|armv4t|armv5te) to arm*). > >> > >> The gstreamer-ti one is a bit harder to fix: > >> > >> | checking host system type... Invalid configuration > >> `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not > >> recognized > >> | configure: error: /bin/sh ./config.sub > >> beagleboard-angstrom-linux-gnueabi failed > >> > >> That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we > >> probably need to change things. Does anyone have a sample on how to do that? > > > > And cacao: > > > > | configure: error: armv7a systems are not supported at this time > > | ERROR: Function do_configure failed > > yes I was expecting that kind of problems. openssl also has similar issues. > > another idea that struck me was that we could change the target triplet to drop > TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH > could be anything > we could even make it same as MACHINE_ARCH which means you will build > toolchain per machine > and they will live together. > > then the tool names will be something like arm-v7-linux-gnueabi-* > powerpc-e500-linux-gnu > mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*- > > or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH > > that would keep all recipe configury happy as the arch detected from > config.guess will be what > we had (arm, mips, mipsel powerpc etc) so no changes needed but we > will have to drop the brand > > does it sound good ? bad? So we use the vendor part of the triplet? Its certainly an option that should work but I'm nervous about assigning meaning into something we've traditionally left to the distros. The more I think about it, the more I suspect its the better way to handle things though :/. FWIW, I have got the other approach I mentioned working in Poky. Its taken a few fixes to get it working right. In doing that I found a number of areas in the toolchain that raised questions about exactly what we're doing, and how fragile the current setup is. Symlinks in gcc's libexec directory for the toolchain components like "as" and "ld" are one thing I'm going to strongly recommend OE should consider. Unfortunately I'm travelling for work next week and I'm not going to have time to look at this until after that, much as I'd like to. Cheers, Richard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 11:16 ` Koen Kooi 2010-07-25 12:31 ` Koen Kooi @ 2010-07-25 14:30 ` Khem Raj 2010-07-25 15:19 ` Koen Kooi 1 sibling, 1 reply; 21+ messages in thread From: Khem Raj @ 2010-07-25 14:30 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 2669 bytes --] On Sun, Jul 25, 2010 at 4:16 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 25-07-10 10:32, Koen Kooi wrote: >> On 24-07-10 23:25, Khem Raj wrote: >>> On (24/07/10 22:51), Koen Kooi wrote: >>>> -----BEGIN PGP SIGNED MESSAGE----- >>>> Hash: SHA1 >>>> >>>> On 24-07-10 11:32, Khem Raj wrote: >>>>> Hi >>>>> >>>>> Following three patches are for making multi-machine toolchains co-exist with >>>>> new cross staging for toolchain. >>>>> >>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>>> >>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>>> >>>>> They can coexist in same native sysroot. The symlinks would mean that >>>>> gcc will not accidently mix the assemblers or linkers. >>>>> >>>>> I have booted a minimal-image on qemuarm successfully. The build for >>>>> beagleboard in same sysroot is underway. >>>>> >>>>> Please give it a shot in your environments (especially Koen's env) >>>> >>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>>> going to try a bigger build now. >> >>> You will need 4th patch which is attached here, for the sdk recipes. >> >> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; >> MACHINE=hawkboard bitbake console-image' works as well. >> Let's see what xbmc does :) > > xbmc builds, but mplayer and gstreamer-ti fail. > > The fix for mplayer is simple, change configure:2106 from > arm|armv4t|armv5te) to arm*). > > The gstreamer-ti one is a bit harder to fix: > > | checking host system type... Invalid configuration > `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not > recognized > | configure: error: /bin/sh ./config.sub > beagleboard-angstrom-linux-gnueabi failed > > That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we > probably need to change things. Does anyone have a sample on how to do that? > Actually I have yet another patch which uses a new variable called TARGET_SUB_ARCH which fixes this issue. I am attaching this here. > regards, > > Koen > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (Darwin) > > iD8DBQFMTBz+MkyGM64RGpERAoVGAJ915MD/4r74PfqhUF4VbX39xCluEACgr1M3 > A07sGQ8Ju0+4EomNKUFhRzw= > =4P5d > -----END PGP SIGNATURE----- > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > [-- Attachment #2: 0001-machines-Add-new-variable-TARGET_SUB_ARCH.patch --] [-- Type: text/x-patch, Size: 19833 bytes --] From 0d815efe9ffecf44835bba0fc13b018ec89650a3 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sun, 25 Jul 2010 00:16:25 -0700 Subject: [PATCH] machines: Add new variable TARGET_SUB_ARCH * This variable indicates the particular arch that toolchains TARGET_SYS and HOST_SYS should be built for. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- conf/bitbake.conf | 8 +++++--- conf/machine/h6300.conf | 1 - conf/machine/include/tune-arm1136-novfp.inc | 1 + conf/machine/include/tune-arm1136jf-s.inc | 1 + conf/machine/include/tune-arm1176jzf-s.inc | 1 + conf/machine/include/tune-arm920t.inc | 1 + conf/machine/include/tune-arm926ejs.inc | 1 + conf/machine/include/tune-arm9tdmi.inc | 1 + conf/machine/include/tune-armv7.inc | 1 + conf/machine/include/tune-at32ap7000.inc | 1 + conf/machine/include/tune-athlonmp.inc | 1 + conf/machine/include/tune-atom.inc | 3 ++- conf/machine/include/tune-c3.inc | 1 + conf/machine/include/tune-cortexa8.inc | 1 + conf/machine/include/tune-cortexa9.inc | 1 + conf/machine/include/tune-cortexm1.inc | 1 + conf/machine/include/tune-cortexm3.inc | 1 + conf/machine/include/tune-cortexr4.inc | 1 + conf/machine/include/tune-ep9312.inc | 1 + conf/machine/include/tune-geode.inc | 1 + conf/machine/include/tune-i486sx.inc | 1 + conf/machine/include/tune-iwmmxt.inc | 2 +- conf/machine/include/tune-pentium.inc | 1 + conf/machine/include/tune-pentium4c.inc | 1 + conf/machine/include/tune-pentiummmx.inc | 1 + conf/machine/include/tune-pentiumpro.inc | 1 + conf/machine/include/tune-ppc405.inc | 1 + conf/machine/include/tune-ppc440.inc | 1 + conf/machine/include/tune-ppc440e.inc | 1 + conf/machine/include/tune-ppc603e.inc | 1 + conf/machine/include/tune-ppce300c2.inc | 1 + conf/machine/include/tune-ppce300c3.inc | 1 + conf/machine/include/tune-ppce500.inc | 1 + conf/machine/include/tune-ppce500v2.inc | 1 + conf/machine/include/tune-ppce600.inc | 1 + conf/machine/include/tune-sh3.inc | 1 + conf/machine/include/tune-sh4.inc | 1 + conf/machine/include/tune-strongarm.inc | 1 + conf/machine/include/tune-supersparc.inc | 1 + conf/machine/include/tune-xscale.inc | 1 + 40 files changed, 44 insertions(+), 6 deletions(-) diff --git a/conf/bitbake.conf b/conf/bitbake.conf index 2a1f241..66eebf3 100644 --- a/conf/bitbake.conf +++ b/conf/bitbake.conf @@ -98,10 +98,10 @@ BUILD_PREFIX = "" BUILD_CC_ARCH = "" BUILD_EXEEXT = "" -HOST_ARCH = "${TARGET_ARCH}" +HOST_ARCH = "${TARGET_SUB_ARCH}" HOST_OS = "${TARGET_OS}" HOST_VENDOR = "${TARGET_VENDOR}" -HOST_SYS = "${BASEPKG_HOST_SYS}" +HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}" HOST_PREFIX = "${TARGET_PREFIX}" HOST_CC_ARCH = "${TARGET_CC_ARCH}" HOST_EXEEXT = "" @@ -109,7 +109,7 @@ HOST_EXEEXT = "" TARGET_ARCH ?= "INVALID" TARGET_OS = "INVALID" TARGET_VENDOR = "${BUILD_VENDOR}" -TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}" +TARGET_SYS = "${TARGET_SUB_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}" TARGET_PREFIX = "${TARGET_SYS}-" TARGET_CC_ARCH = "" TARGET_EXEEXT = "" @@ -139,6 +139,8 @@ MULTIMACH_HOST_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}" BASEPKG_HOST_SYS = "${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" BASEPKG_TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" +#TARGET_SUB_ARCH = "${BASE_PACKAGE_ARCH}" + # select proper CPU to get binary locales generated QEMU_OPTIONS = "" QEMU_OPTIONS_iwmmxt = "-cpu pxa270-c5" diff --git a/conf/machine/h6300.conf b/conf/machine/h6300.conf index 08f61b8..97201e8 100644 --- a/conf/machine/h6300.conf +++ b/conf/machine/h6300.conf @@ -7,7 +7,6 @@ # TARGET_ARCH = "arm" BASE_PACKAGE_ARCH = "arm" - #Use OMAP 1510 cpu specifig arm9tdmi options for gcc require conf/machine/include/tune-arm9tdmi.inc diff --git a/conf/machine/include/tune-arm1136-novfp.inc b/conf/machine/include/tune-arm1136-novfp.inc index 58134b7..8ba540f 100644 --- a/conf/machine/include/tune-arm1136-novfp.inc +++ b/conf/machine/include/tune-arm1136-novfp.inc @@ -5,3 +5,4 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s" FEED_ARCH = "armv6-novfp" BASE_PACKAGE_ARCH = "armv6-novfp" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6-novfp" +TARGET_SUB_ARCH = "armv6softfp" diff --git a/conf/machine/include/tune-arm1136jf-s.inc b/conf/machine/include/tune-arm1136jf-s.inc index 2944cc7..87c21bc 100644 --- a/conf/machine/include/tune-arm1136jf-s.inc +++ b/conf/machine/include/tune-arm1136jf-s.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6" +TARGET_SUB_ARCH = "" diff --git a/conf/machine/include/tune-arm1176jzf-s.inc b/conf/machine/include/tune-arm1176jzf-s.inc index ee2884b..5e57f9e 100644 --- a/conf/machine/include/tune-arm1176jzf-s.inc +++ b/conf/machine/include/tune-arm1176jzf-s.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=softfp FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6" +TARGET_SUB_ARCH = "armv6" diff --git a/conf/machine/include/tune-arm920t.inc b/conf/machine/include/tune-arm920t.inc index fee5c58..6b12f5f 100644 --- a/conf/machine/include/tune-arm920t.inc +++ b/conf/machine/include/tune-arm920t.inc @@ -2,3 +2,4 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" TARGET_CC_ARCH = "-march=armv4t -mtune=arm920t" PACKAGE_EXTRA_ARCHS += "armv4 armv4t" +TARGET_SUB_ARCH = "armv4t" diff --git a/conf/machine/include/tune-arm926ejs.inc b/conf/machine/include/tune-arm926ejs.inc index f41e460..29f0216 100644 --- a/conf/machine/include/tune-arm926ejs.inc +++ b/conf/machine/include/tune-arm926ejs.inc @@ -5,3 +5,4 @@ PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te" # For gcc 4.x you need: TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ej-s" BASE_PACKAGE_ARCH = "armv5te" +TARGET_SUB_ARCH = "armv5te" diff --git a/conf/machine/include/tune-arm9tdmi.inc b/conf/machine/include/tune-arm9tdmi.inc index d788b53..d284f43 100644 --- a/conf/machine/include/tune-arm9tdmi.inc +++ b/conf/machine/include/tune-arm9tdmi.inc @@ -2,3 +2,4 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" PACKAGE_EXTRA_ARCHS += "armv4 armv4t" TARGET_CC_ARCH = "-mcpu=arm9tdmi -mtune=arm9tdmi" +TARGET_SUB_ARCH = "armv4t" diff --git a/conf/machine/include/tune-armv7.inc b/conf/machine/include/tune-armv7.inc index 379a3eb..22da9e8 100644 --- a/conf/machine/include/tune-armv7.inc +++ b/conf/machine/include/tune-armv7.inc @@ -5,3 +5,4 @@ TARGET_CC_ARCH = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv7" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7" BASE_PACKAGE_ARCH = "armv7" +TARGET_SUB_ARCH = "armv7" diff --git a/conf/machine/include/tune-at32ap7000.inc b/conf/machine/include/tune-at32ap7000.inc index 666dd21..5e82cd8 100644 --- a/conf/machine/include/tune-at32ap7000.inc +++ b/conf/machine/include/tune-at32ap7000.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-march=ap" BASE_PACKAGE_ARCH = "avr32" FEED_ARCH = "avr32" +TARGET_SUB_ARCH = "avr32" diff --git a/conf/machine/include/tune-athlonmp.inc b/conf/machine/include/tune-athlonmp.inc index 9526faa..cb1b64c 100644 --- a/conf/machine/include/tune-athlonmp.inc +++ b/conf/machine/include/tune-athlonmp.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=i686" PACKAGE_EXTRA_ARCHS += "i386 i486 i586" BASE_PACKAGE_ARCH = "i686" FEED_ARCH = "i686" +TARGET_SUB_ARCH = "i686" diff --git a/conf/machine/include/tune-atom.inc b/conf/machine/include/tune-atom.inc index 44058c1..a578b47 100644 --- a/conf/machine/include/tune-atom.inc +++ b/conf/machine/include/tune-atom.inc @@ -6,4 +6,5 @@ TARGET_CC_ARCH = "-march=core2" #TARGET_CC_ARCH = "-march=i686 -mtune=atom" BASE_PACKAGE_ARCH = "i686" FEED_ARCH = "i686" -PACKAGE_EXTRA_ARCHS += "x86 i386 i486 i586" \ No newline at end of file +TARGET_SUB_ARCH = "i686" +PACKAGE_EXTRA_ARCHS += "x86 i386 i486 i586" diff --git a/conf/machine/include/tune-c3.inc b/conf/machine/include/tune-c3.inc index 136efa2..2528ff8 100644 --- a/conf/machine/include/tune-c3.inc +++ b/conf/machine/include/tune-c3.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=c3 -mtune=c3" PACKAGE_EXTRA_ARCHS += "i386 i486" BASE_PACKAGE_ARCH = "i586" FEED_ARCH = "i586" +TARGET_SUB_ARCH = "i586" diff --git a/conf/machine/include/tune-cortexa8.inc b/conf/machine/include/tune-cortexa8.inc index 096c219..d711fb2 100644 --- a/conf/machine/include/tune-cortexa8.inc +++ b/conf/machine/include/tune-cortexa8.inc @@ -13,5 +13,6 @@ TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon ${ARM_FP_OPT}" FEED_ARCH = "armv7a${ARM_FP_PACKAGESUFFIX}" BASE_PACKAGE_ARCH = "armv7a${ARM_FP_PACKAGESUFFIX}" +TARGET_SUB_ARCH = "armv7a" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a${ARM_FP_PACKAGESUFFIX}" diff --git a/conf/machine/include/tune-cortexa9.inc b/conf/machine/include/tune-cortexa9.inc index a12494f..a53c91b 100644 --- a/conf/machine/include/tune-cortexa9.inc +++ b/conf/machine/include/tune-cortexa9.inc @@ -7,3 +7,4 @@ TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp" FEED_ARCH = "armv7a" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a" BASE_PACKAGE_ARCH = "armv7a" +TARGET_SUB_ARCH = "armv7a" diff --git a/conf/machine/include/tune-cortexm1.inc b/conf/machine/include/tune-cortexm1.inc index 6c4a70a..eadf84f 100644 --- a/conf/machine/include/tune-cortexm1.inc +++ b/conf/machine/include/tune-cortexm1.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-march=armv7 -mtune=cortex-m1 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" +TARGET_SUB_ARCH = "armv6" diff --git a/conf/machine/include/tune-cortexm3.inc b/conf/machine/include/tune-cortexm3.inc index 6da9aee..1ef648d 100644 --- a/conf/machine/include/tune-cortexm3.inc +++ b/conf/machine/include/tune-cortexm3.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=armv7-m -mtune=cortex-m3 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv7" BASE_PACKAGE_ARCH = "armv7" +TARGET_SUB_ARCH = "armv7m" diff --git a/conf/machine/include/tune-cortexr4.inc b/conf/machine/include/tune-cortexr4.inc index b8bb7f5..15dcddb 100644 --- a/conf/machine/include/tune-cortexr4.inc +++ b/conf/machine/include/tune-cortexr4.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=armv7-r -mtune=cortex-r4 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv7" BASE_PACKAGE_ARCH = "armv7" +TARGET_SUB_ARCH = "armv7r" diff --git a/conf/machine/include/tune-ep9312.inc b/conf/machine/include/tune-ep9312.inc index 7458281..412e831 100644 --- a/conf/machine/include/tune-ep9312.inc +++ b/conf/machine/include/tune-ep9312.inc @@ -4,6 +4,7 @@ TARGET_CC_ARCH = "-mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp" PACKAGE_EXTRA_ARCHS += "armv4t ep9312" BASE_PACKAGE_ARCH = "ep9312" FEED_ARCH = "ep9312" +TARGET_SUB_ARCH = "armv4t" FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O -fno-signed-zeros" DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer -g" diff --git a/conf/machine/include/tune-geode.inc b/conf/machine/include/tune-geode.inc index eda332a..2af4696 100644 --- a/conf/machine/include/tune-geode.inc +++ b/conf/machine/include/tune-geode.inc @@ -3,3 +3,4 @@ BASE_PACKAGE_ARCH = "geode" PACKAGE_EXTRA_ARCHS += "x86 i386 geode" FEED_ARCH = "geode" +TARGET_SUB_ARCH = "i486" diff --git a/conf/machine/include/tune-i486sx.inc b/conf/machine/include/tune-i486sx.inc index bd80259..58b4f69 100644 --- a/conf/machine/include/tune-i486sx.inc +++ b/conf/machine/include/tune-i486sx.inc @@ -3,6 +3,7 @@ TARGET_CC_ARCH = "-march=i486" PACKAGE_EXTRA_ARCHS = "486sx" BASE_PACKAGE_ARCH = "486sx" FEED_ARCH = "${BASE_PACKAGE_ARCH}" +TARGET_SUB_ARCH = "i486" # gcc doesn't understand softfloat: # "This target does not support --with-float" diff --git a/conf/machine/include/tune-iwmmxt.inc b/conf/machine/include/tune-iwmmxt.inc index f7291be..8e102b3 100644 --- a/conf/machine/include/tune-iwmmxt.inc +++ b/conf/machine/include/tune-iwmmxt.inc @@ -4,4 +4,4 @@ TARGET_CC_ARCH = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt" BASE_PACKAGE_ARCH = "iwmmxt" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te iwmmxt" FEED_ARCH = "iwmmxt" - +TARGET_SUB_ARCH = "iwmmxt" diff --git a/conf/machine/include/tune-pentium.inc b/conf/machine/include/tune-pentium.inc index 0df6917..5e584f6 100644 --- a/conf/machine/include/tune-pentium.inc +++ b/conf/machine/include/tune-pentium.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=pentium" BASE_PACKAGE_ARCH = "i586" FEED_ARCH = "i586" PACKAGE_EXTRA_ARCHS += "x86 i386 i486" +TARGET_SUB_ARCH = "i586" diff --git a/conf/machine/include/tune-pentium4c.inc b/conf/machine/include/tune-pentium4c.inc index 42de0d9..2d5bc4d 100644 --- a/conf/machine/include/tune-pentium4c.inc +++ b/conf/machine/include/tune-pentium4c.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-march=prescott" BASE_PACKAGE_ARCH = "i686p4c" PACKAGE_EXTRA_ARCHS += "x86 i386 i486 i586" +TARGET_SUB_ARCH = "i686" diff --git a/conf/machine/include/tune-pentiummmx.inc b/conf/machine/include/tune-pentiummmx.inc index 33ef631..6e276cd 100644 --- a/conf/machine/include/tune-pentiummmx.inc +++ b/conf/machine/include/tune-pentiummmx.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=pentium-mmx" BASE_PACKAGE_ARCH = "i586" FEED_ARCH = "i586" PACKAGE_EXTRA_ARCHS += "i386 i486" +TARGET_SUB_ARCH = "i586" diff --git a/conf/machine/include/tune-pentiumpro.inc b/conf/machine/include/tune-pentiumpro.inc index 9b9a8be..6bcb7c7 100644 --- a/conf/machine/include/tune-pentiumpro.inc +++ b/conf/machine/include/tune-pentiumpro.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-march=pentiumpro" BASE_PACKAGE_ARCH = "i686" FEED_ARCH = "i686" PACKAGE_EXTRA_ARCHS += "x86 i386 i486 i586" +TARGET_SUB_ARCH = "i686" diff --git a/conf/machine/include/tune-ppc405.inc b/conf/machine/include/tune-ppc405.inc index e5edd68..7f8f726 100644 --- a/conf/machine/include/tune-ppc405.inc +++ b/conf/machine/include/tune-ppc405.inc @@ -4,3 +4,4 @@ TARGET_CC_ARCH = "-mcpu=405" BASE_PACKAGE_ARCH = "ppc405" FEED_ARCH = "ppc405" PACKAGE_EXTRA_ARCHS += "ppc405" +TARGET_SUB_ARCH = "powerpc405" diff --git a/conf/machine/include/tune-ppc440.inc b/conf/machine/include/tune-ppc440.inc index 1c94a34..a9bbbfe 100644 --- a/conf/machine/include/tune-ppc440.inc +++ b/conf/machine/include/tune-ppc440.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=440" BASE_PACKAGE_ARCH = "ppc440" FEED_ARCH = "ppc440" PACKAGE_EXTRA_ARCHS += "${BASE_PACKAGE_ARCH} ppc440e" +TARGET_SUB_ARCH = "powerpc440" diff --git a/conf/machine/include/tune-ppc440e.inc b/conf/machine/include/tune-ppc440e.inc index 8b6955a..3378d4b 100644 --- a/conf/machine/include/tune-ppc440e.inc +++ b/conf/machine/include/tune-ppc440e.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=440fp -mhard-float" BASE_PACKAGE_ARCH = "ppc440e" FEED_ARCH = "ppc440e" PACKAGE_EXTRA_ARCHS += "ppc440e" +TARGET_SUB_ARCH = "powerpc440e" diff --git a/conf/machine/include/tune-ppc603e.inc b/conf/machine/include/tune-ppc603e.inc index a1c62ad..e8ed321 100644 --- a/conf/machine/include/tune-ppc603e.inc +++ b/conf/machine/include/tune-ppc603e.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=603e" BASE_PACKAGE_ARCH = "ppc603e" FEED_ARCH = "ppc603e" PACKAGE_EXTRA_ARCHS += "ppc603e" +TARGET_SUB_ARCH = "powerpc603e" diff --git a/conf/machine/include/tune-ppce300c2.inc b/conf/machine/include/tune-ppce300c2.inc index 1524c7c..3a736f8 100644 --- a/conf/machine/include/tune-ppce300c2.inc +++ b/conf/machine/include/tune-ppce300c2.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=e300c2" BASE_PACKAGE_ARCH = "ppce300c2" FEED_ARCH = "ppce300c2" PACKAGE_EXTRA_ARCHS += "ppce300c2" +TARGET_SUB_ARCH = "powerpce300c2" diff --git a/conf/machine/include/tune-ppce300c3.inc b/conf/machine/include/tune-ppce300c3.inc index 467c4cc..e5a8661 100644 --- a/conf/machine/include/tune-ppce300c3.inc +++ b/conf/machine/include/tune-ppce300c3.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=e300c3" BASE_PACKAGE_ARCH = "ppce300c3" FEED_ARCH = "ppce300c3" PACKAGE_EXTRA_ARCHS += "ppce300c3" +TARGET_SUB_ARCH = "powerpce300c3" diff --git a/conf/machine/include/tune-ppce500.inc b/conf/machine/include/tune-ppce500.inc index 44f8742..0d9d996 100644 --- a/conf/machine/include/tune-ppce500.inc +++ b/conf/machine/include/tune-ppce500.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=8540" BASE_PACKAGE_ARCH = "ppce500" FEED_ARCH = "ppce500" PACKAGE_EXTRA_ARCHS += "ppce500" +TARGET_SUB_ARCH = "powerpce500" diff --git a/conf/machine/include/tune-ppce500v2.inc b/conf/machine/include/tune-ppce500v2.inc index 73d8e92..5d7f406 100644 --- a/conf/machine/include/tune-ppce500v2.inc +++ b/conf/machine/include/tune-ppce500v2.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=8548 -mspe=yes -mabi=spe -mhard-float -mfloat-gprs=doubl BASE_PACKAGE_ARCH = "ppce500v2" FEED_ARCH = "ppce500v2" PACKAGE_EXTRA_ARCHS += "ppce500v2" +TARGET_SUB_ARCH = "powerpce500v2" diff --git a/conf/machine/include/tune-ppce600.inc b/conf/machine/include/tune-ppce600.inc index 77a7cb8..31c91f5 100644 --- a/conf/machine/include/tune-ppce600.inc +++ b/conf/machine/include/tune-ppce600.inc @@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=7450" BASE_PACKAGE_ARCH = "ppce600" FEED_ARCH = "ppce600" PACKAGE_EXTRA_ARCHS += "ppce600" +TARGET_SUB_ARCH = "powerpce600" diff --git a/conf/machine/include/tune-sh3.inc b/conf/machine/include/tune-sh3.inc index 32801a6..f080292 100644 --- a/conf/machine/include/tune-sh3.inc +++ b/conf/machine/include/tune-sh3.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-ml -m3" FEED_ARCH = "sh3" BASE_PACKAGE_ARCH = "sh3" +TARGET_SUB_ARCH = "sh3" diff --git a/conf/machine/include/tune-sh4.inc b/conf/machine/include/tune-sh4.inc index 5d43e41..99868bf 100644 --- a/conf/machine/include/tune-sh4.inc +++ b/conf/machine/include/tune-sh4.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-ml -m4" FEED_ARCH = "sh4" BASE_PACKAGE_ARCH = "sh4" +TARGET_SUB_ARCH = "sh4" diff --git a/conf/machine/include/tune-strongarm.inc b/conf/machine/include/tune-strongarm.inc index fe57c9c..b602545 100644 --- a/conf/machine/include/tune-strongarm.inc +++ b/conf/machine/include/tune-strongarm.inc @@ -6,3 +6,4 @@ TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm" FEED_ARCH = "armv4" BASE_PACKAGE_ARCH = "armv4" PACKAGE_EXTRA_ARCHS += "armv4" +TARGET_SUB_ARCH = "armv4" diff --git a/conf/machine/include/tune-supersparc.inc b/conf/machine/include/tune-supersparc.inc index a402e7c..43da3b0 100644 --- a/conf/machine/include/tune-supersparc.inc +++ b/conf/machine/include/tune-supersparc.inc @@ -1,3 +1,4 @@ TARGET_CC_ARCH = "-mcpu=supersparc" BASE_PACKAGE_ARCH = "supersparc" FEED_ARCH = "supersparc" +TARGET_SUB_ARCH = "sparc" diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc index f0f58bc..3b05e28 100644 --- a/conf/machine/include/tune-xscale.inc +++ b/conf/machine/include/tune-xscale.inc @@ -7,3 +7,4 @@ TARGET_CC_ARCH = "-march=armv5te -mtune=xscale" TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale" PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][ bb.data.getVar('TARGET_ARCH', d, 1) == 'arm']}" BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('TARGET_ARCH', d, 1) == 'arm']}" +TARGET_SUB_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('TARGET_ARCH', d, 1) == 'arm']}" -- 1.7.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 14:30 ` Khem Raj @ 2010-07-25 15:19 ` Koen Kooi 2010-07-26 9:02 ` Eric Bénard 0 siblings, 1 reply; 21+ messages in thread From: Koen Kooi @ 2010-07-25 15:19 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25-07-10 16:30, Khem Raj wrote: > On Sun, Jul 25, 2010 at 4:16 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote: > On 25-07-10 10:32, Koen Kooi wrote: >>>> On 24-07-10 23:25, Khem Raj wrote: >>>>> On (24/07/10 22:51), Koen Kooi wrote: >>>>>> -----BEGIN PGP SIGNED MESSAGE----- >>>>>> Hash: SHA1 >>>>>> >>>>>> On 24-07-10 11:32, Khem Raj wrote: >>>>>>> Hi >>>>>>> >>>>>>> Following three patches are for making multi-machine toolchains co-exist with >>>>>>> new cross staging for toolchain. >>>>>>> >>>>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS >>>>>>> >>>>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-* >>>>>>> and for armv5te its called armv5te-oe-linux-gnueabi-* >>>>>>> >>>>>>> They can coexist in same native sysroot. The symlinks would mean that >>>>>>> gcc will not accidently mix the assemblers or linkers. >>>>>>> >>>>>>> I have booted a minimal-image on qemuarm successfully. The build for >>>>>>> beagleboard in same sysroot is underway. >>>>>>> >>>>>>> Please give it a shot in your environments (especially Koen's env) >>>>>> >>>>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work, >>>>>> going to try a bigger build now. >>>> >>>>> You will need 4th patch which is attached here, for the sdk recipes. >>>> >>>> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ; >>>> MACHINE=hawkboard bitbake console-image' works as well. >>>> Let's see what xbmc does :) > > xbmc builds, but mplayer and gstreamer-ti fail. > > The fix for mplayer is simple, change configure:2106 from > arm|armv4t|armv5te) to arm*). > > The gstreamer-ti one is a bit harder to fix: > > | checking host system type... Invalid configuration > `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not > recognized > | configure: error: /bin/sh ./config.sub > beagleboard-angstrom-linux-gnueabi failed > > That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we > probably need to change things. Does anyone have a sample on how to do that? > > >> Actually I have yet another patch which uses a new variable called >> TARGET_SUB_ARCH >> which fixes this issue. I am attaching this here. That gives me a lot of: NOTE: Handling BitBake files: / (7837/8428) [92 %]ERROR: Information not available for target 'armv7a-linux-gnueabi' ERROR: argument of type 'NoneType' is not iterable while parsing /OE/org.openembedded.dev/recipes/openssl/openssl_0.9.7g.bb ERROR: Information not available for target 'armv7a-linux-gnueabi' NOTE: <type 'exceptions.TypeError'>:argument of type 'NoneType' is not iterable while evaluating: ${@siteinfo_get_endianess(d)} NOTE: <type 'exceptions.TypeError'>:argument of type 'NoneType' is not iterable while evaluating: ${@base_conditional('SITEINFO_ENDIANESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} -DTERMIO -fexpensive-optimizations - -frename-registers -fomit-frame-pointer -O2 -ggdb3 -Wall NOTE: <type 'exceptions.TypeError'>:argument of type 'NoneType' is not iterable while evaluating: ${@'${CFLAG}'.replace('-O2', '')} ERROR: argument of type 'NoneType' is not iterable while parsing /OE/org.openembedded.dev/recipes/openssl/openssl_0.9.7g.bb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFMTFX2MkyGM64RGpERAhIOAKCER+vxmHJW9lxS/fT07h3lAmMW+ACcCd2V sEdfPtSpiY7XEEryEqueNhA= =pD3d -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-25 15:19 ` Koen Kooi @ 2010-07-26 9:02 ` Eric Bénard 0 siblings, 0 replies; 21+ messages in thread From: Eric Bénard @ 2010-07-26 9:02 UTC (permalink / raw) To: openembedded-devel Le 25/07/2010 17:19, Koen Kooi a écrit : > On 25-07-10 16:30, Khem Raj wrote: >>> Actually I have yet another patch which uses a new variable called >>> TARGET_SUB_ARCH >>> which fixes this issue. I am attaching this here. > > That gives me a lot of: > > NOTE: Handling BitBake files: / (7837/8428) [92 %]ERROR: Information not > available for target 'armv7a-linux-gnueabi' > ERROR: argument of type 'NoneType' is not iterable while parsing > /OE/org.openembedded.dev/recipes/openssl/openssl_0.9.7g.bb > ERROR: Information not available for target 'armv7a-linux-gnueabi' > NOTE:<type 'exceptions.TypeError'>:argument of type 'NoneType' is not > iterable while evaluating: > ${@siteinfo_get_endianess(d)} > NOTE:<type 'exceptions.TypeError'>:argument of type 'NoneType' is not > iterable while evaluating: > ${@base_conditional('SITEINFO_ENDIANESS', 'le', '-DL_ENDIAN', > '-DB_ENDIAN', d)} -DTERMIO -fexpensive-optimizations > - -frename-registers -fomit-frame-pointer -O2 -ggdb3 -Wall > NOTE:<type 'exceptions.TypeError'>:argument of type 'NoneType' is not > iterable while evaluating: > ${@'${CFLAG}'.replace('-O2', '')} > ERROR: argument of type 'NoneType' is not iterable while parsing > /OE/org.openembedded.dev/recipes/openssl/openssl_0.9.7g.bb same thing here, I had to revert this patch to get things running. Eric ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/3] Make multi-machine toolchains to co-exist. 2010-07-24 21:25 ` Khem Raj 2010-07-25 8:32 ` Koen Kooi @ 2010-07-26 9:01 ` Eric Bénard 1 sibling, 0 replies; 21+ messages in thread From: Eric Bénard @ 2010-07-26 9:01 UTC (permalink / raw) To: openembedded-devel Hi Khem, Le 24/07/2010 23:25, Khem Raj a écrit : > You will need 4th patch which is attached here, for the sdk recipes. > tested for 5 armv5te + 1 armv6 targets using angstrom distro : images + sdk are built without error (but not yet tested on the targets). Eric ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2010-07-26 9:02 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-07-24 9:32 [PATCH 0/3] Make multi-machine toolchains to co-exist Khem Raj 2010-07-24 9:32 ` [PATCH 1/3] bitbake.conf: Define HOST_SYS and TARGET_SYS based on target sub-arch Khem Raj 2010-07-24 9:32 ` [PATCH 2/3] binutils-cross.inc, binutils.inc: Overhaul for new cross dir structure Khem Raj 2010-07-24 9:32 ` [PATCH 3/3] gcc-cross: Use EXTRA_OECONF_PATHS in initial and intermediate recipes Khem Raj 2010-07-24 10:47 ` [PATCH 0/3] Make multi-machine toolchains to co-exist Koen Kooi 2010-07-24 20:51 ` Koen Kooi 2010-07-24 21:25 ` Khem Raj 2010-07-25 8:32 ` Koen Kooi 2010-07-25 11:16 ` Koen Kooi 2010-07-25 12:31 ` Koen Kooi 2010-07-25 14:41 ` Khem Raj 2010-07-25 15:10 ` Koen Kooi 2010-07-25 15:53 ` Richard Purdie 2010-07-25 19:43 ` Khem Raj 2010-07-26 7:50 ` Koen Kooi 2010-07-26 8:54 ` Khem Raj 2010-07-25 15:21 ` Richard Purdie 2010-07-25 14:30 ` Khem Raj 2010-07-25 15:19 ` Koen Kooi 2010-07-26 9:02 ` Eric Bénard 2010-07-26 9:01 ` Eric Bénard
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.