distro, toolchain-external: override TARGET_VENDOR with TOOLCHAIN_VENDOR
authorBen Gardiner <bengardiner@nanometrics.ca>
Wed, 13 Oct 2010 11:26:25 +0000 (11:26 +0000)
committerDenys Dmytriyenko <denis@denix.org>
Wed, 20 Oct 2010 19:47:33 +0000 (15:47 -0400)
Trying to use an external toolchain like the 2009q1 toolchain from codesourcery
has some strange results since the toolchain has vendor 'none' but
distributions like angstrom set TARGET_VENDOR unconditionally.

This patch overrides the TARGET_VENDOR with the value of TOOLCHAIN_VENDOR,
if set. TOOLCHAIN_VENDOR can be set in the local configuration alongside the
other TOOLCHAIN_* variables. The override is performed in
toolchain-external.inc, as suggested by Koen Kooi [1]. It also reorders the
inclusion of the distro and toolchain-* so that toolchain-external can override
the value of TARGET_VENDOR, as suggested by Denys Dmytriyenko [2].

Tested with angstrom-2008.1 and the codesourcery 2009q1 toolchain by assigning
TOOLCHAIN_VENDOR = "-none"
TOOLCHAIN_TYPE = "external"
TOOLCHAIN_BRAND = "csl"
in addition to putting the CSL in the PATH.

[1] http://thread.gmane.org/gmane.comp.handhelds.openembedded/37918/focus=38047
[2] http://thread.gmane.org/gmane.comp.handhelds.openembedded/38176/focus=38188

Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
CC: Koen Kooi <k.kooi@student.utwente.nl>
CC: Víctor M. Jáquez L. <vjaquez@igalia.com>
CC: CC: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Koen Kooi <koen@openembedded.org>
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
conf/distro/angstrom-2008.1.conf
conf/distro/angstrom-2010.x.conf
conf/distro/include/toolchain-external.inc
conf/distro/kaeilos.conf

index ec4f21e..1fd5ab6 100644 (file)
@@ -124,10 +124,6 @@ PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
 
-# Toolchain virtuals:
-require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
-require conf/distro/include/arm-thumb.inc
-
 PREFERRED_PROVIDER_dbus-glib             = "dbus-glib"
 PREFERRED_PROVIDER_hotplug               = "udev"
 PREFERRED_PROVIDER_opkg                 ?= "opkg"
@@ -143,6 +139,10 @@ ANGSTROMLIBC ?= "glibc"
 
 require conf/distro/include/angstrom.inc
 
+# Toolchain virtuals:
+require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
+require conf/distro/include/arm-thumb.inc
+
 # Set DISTRO_FEED_CONFIGS to our config var, assigned in the above .inc
 DISTRO_FEED_CONFIGS = "${ANGSTROM_FEED_CONFIGS}"
 
index deee2de..be61683 100644 (file)
@@ -114,10 +114,6 @@ PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
 
-# Toolchain virtuals:
-require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
-require conf/distro/include/arm-thumb.inc
-
 PREFERRED_PROVIDER_dbus-glib             = "dbus-glib"
 PREFERRED_PROVIDER_hotplug               = "udev"
 PREFERRED_PROVIDER_opkg                 ?= "opkg"
@@ -131,6 +127,10 @@ ANGSTROM_BLACKLIST_pn-ipkg                 = "ipkg has been superseded by opkg"
 
 require conf/distro/include/angstrom.inc
 
+# Toolchain virtuals:
+require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
+require conf/distro/include/arm-thumb.inc
+
 # Set DISTRO_FEED_CONFIGS to our config var, assigned in the above .inc
 DISTRO_FEED_CONFIGS = "${ANGSTROM_FEED_CONFIGS}"
 
index ff83f5a..585d50e 100644 (file)
@@ -6,3 +6,5 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-toolchain-${TOOLCHAIN
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "external-toolchain-${TOOLCHAIN_BRAND}"
 #PREFERRED_PROVIDER_linux-libc-headers = "external-toolchain-${TOOLCHAIN_BRAND}"
 
+TOOLCHAIN_VENDOR ?= "${TARGET_VENDOR}"
+TARGET_VENDOR = "${TOOLCHAIN_VENDOR}"
index 1287ea1..6625ba1 100644 (file)
@@ -119,10 +119,6 @@ PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
 
-# Toolchain virtuals:
-require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
-require conf/distro/include/arm-thumb.inc
-
 PREFERRED_PROVIDER_dbus-glib             = "dbus-glib"
 PREFERRED_PROVIDER_hotplug               = "udev"
 PREFERRED_PROVIDER_opkg                 ?= "opkg"
@@ -135,6 +131,10 @@ ANGSTROM_BLACKLIST_pn-fso-apm       = "regular apmd is good enough"
 
 require conf/distro/include/kaeilos.inc
 
+# Toolchain virtuals:
+require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
+require conf/distro/include/arm-thumb.inc
+
 # If we're using an .ipk based rootfs, we want to have opkg installed so postinst script can run
 # We also take this opportunity to inject angstrom-version and the feed configs into the rootfs
 IPKG_VARIANT = "opkg angstrom-version ${ANGSTROM_FEED_CONFIGS}"