From f3b29a03710280fda6561b37313a56dd759befac Mon Sep 17 00:00:00 2001 From: Ben Gardiner Date: Wed, 13 Oct 2010 11:26:25 +0000 Subject: [PATCH] distro, toolchain-external: override TARGET_VENDOR with TOOLCHAIN_VENDOR MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 CC: Koen Kooi CC: Víctor M. Jáquez L. CC: CC: Denys Dmytriyenko Signed-off-by: Koen Kooi Signed-off-by: Denys Dmytriyenko --- conf/distro/angstrom-2008.1.conf | 8 ++++---- conf/distro/angstrom-2010.x.conf | 8 ++++---- conf/distro/include/toolchain-external.inc | 2 ++ conf/distro/kaeilos.conf | 8 ++++---- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf index ec4f21e864..1fd5ab6abd 100644 --- a/conf/distro/angstrom-2008.1.conf +++ b/conf/distro/angstrom-2008.1.conf @@ -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}" diff --git a/conf/distro/angstrom-2010.x.conf b/conf/distro/angstrom-2010.x.conf index deee2de658..be61683834 100644 --- a/conf/distro/angstrom-2010.x.conf +++ b/conf/distro/angstrom-2010.x.conf @@ -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}" diff --git a/conf/distro/include/toolchain-external.inc b/conf/distro/include/toolchain-external.inc index ff83f5a89b..585d50e024 100644 --- a/conf/distro/include/toolchain-external.inc +++ b/conf/distro/include/toolchain-external.inc @@ -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}" diff --git a/conf/distro/kaeilos.conf b/conf/distro/kaeilos.conf index 1287ea1dac..6625ba1dd7 100644 --- a/conf/distro/kaeilos.conf +++ b/conf/distro/kaeilos.conf @@ -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}" -- 2.39.5