All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 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 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 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 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 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-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

* 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

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.