summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoam Camus <noamc@ezchip.com>2014-04-01 06:25:47 +0000
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-04-06 14:16:06 +0200
commit65c2400ff251397db930e90c65c51d714d00fa96 (patch)
tree67f6ac6719052624876a1a02dcd9f8a9ff76536d
parentfb8774327ad06e8f59faf4da4ab40ffffd39d1dd (diff)
downloadbuildroot-65c2400ff251397db930e90c65c51d714d00fa96.tar.gz
buildroot-65c2400ff251397db930e90c65c51d714d00fa96.zip
toolchain: control vendor part in GNU_TARGET_NAME
This option allows to customize the "vendor" part of the toolchain tuple, where the toolchain tuple has the form <arch>-<vendor>-<os>-<libc>. Use this option in situations where gcc might make different decisions based on the vendor part of the tuple. [Thomas: move the config option in a slightly different place, so that it does not appear between the C library selection and the C library options.] Signed-off-by: "Noam Camus" <noamc@ezchip.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/Makefile.in17
-rw-r--r--toolchain/toolchain-buildroot/Config.in17
2 files changed, 33 insertions, 1 deletions
diff --git a/package/Makefile.in b/package/Makefile.in
index 1f5cbcd186..0830cd5db9 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -20,8 +20,23 @@ endif
MAKE1:=$(HOSTMAKE) -j1
MAKE:=$(HOSTMAKE) $(if $(PARALLEL_JOBS),-j$(PARALLEL_JOBS))
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
+TARGET_VENDOR = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_VENDOR))
+else
+TARGET_VENDOR = buildroot
+endif
+
+# Sanity checks
+ifeq ($(TARGET_VENDOR),)
+$(error BR2_TOOLCHAIN_BUILDROOT_VENDOR is not allowed to be empty)
+endif
+ifeq ($(TARGET_VENDOR),unknown)
+$(error BR2_TOOLCHAIN_BUILDROOT_VENDOR cannot be 'unknown'. \
+ It might be confused with the native toolchain)
+endif
+
# Compute GNU_TARGET_NAME
-GNU_TARGET_NAME=$(ARCH)-buildroot-$(TARGET_OS)-$(LIBC)$(ABI)
+GNU_TARGET_NAME=$(ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI)
# Blackfin FLAT needs uclinux
ifeq ($(BR2_bfin)$(BR2_BINFMT_FLAT),yy)
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 07db50bfcb..42166d2633 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -1,6 +1,23 @@
# Config entries for internal toolchain backend
if BR2_TOOLCHAIN_BUILDROOT
+
+config BR2_TOOLCHAIN_BUILDROOT_VENDOR
+ string "custom toolchain vendor name"
+ default "buildroot"
+ help
+ This option allows to customize the "vendor" part of the
+ toolchain tuple, where the toolchain tuple has the form
+ <arch>-<vendor>-<os>-<libc>. The default value, "buildroot",
+ is fine for most cases, except in very specific situations
+ where gcc might make different decisions based on the vendor
+ part of the tuple. The value "unknown" is not allowed, as the
+ cross-compiling toolchain might then be confused with the
+ native toolchain when the target and host architecture are
+ identical. The value can not be empty either.
+
+ If you're not sure, just leave the default "buildroot" value.
+
source "package/linux-headers/Config.in.host"
choice
OpenPOWER on IntegriCloud