toolchain: control vendor part in GNU_TARGET_NAME
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v3 1/1 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 <cpu>-<vendor>-<kernel>-<os>. Use this option in situations where gcc might make different decisions based on the vendor part of the tuple.
--- package/Makefile.in | 12 +++++++++++- toolchain/toolchain-buildroot/Config.in | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletions(-)
package/Makefile.in +11 -1
@@ -20,8 +20,18 @@ endif MAKE1:=$(HOSTMAKE) -j1 MAKE:=$(HOSTMAKE) $(if $(PARALLEL_JOBS),-j$(PARALLEL_JOBS)) +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),) +VENDOR:=buildroot +else +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),unknown) +$(error The value 'unknown' is not allowed. It might be confused with native toolchain) +else +VENDOR:=$(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_VENDOR)) +endif +endif + # Compute GNU_TARGET_NAME -GNU_TARGET_NAME=$(ARCH)-buildroot-$(TARGET_OS)-$(LIBC)$(ABI) +GNU_TARGET_NAME=$(ARCH)-$(VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI) # Blackfin FLAT needs uclinux ifeq ($(BR2_bfin)$(BR2_BINFMT_FLAT),yy)
toolchain/toolchain-buildroot/Config.in +17 -0
@@ -70,6 +70,23 @@ config BR2_TOOLCHAIN_BUILDROOT_LIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC +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 + <cpu>-<vendor>-<kernel>-<os>. 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. + + If you're not sure, just leave the default "buildroot" value. + source "package/uclibc/Config.in" source "package/glibc/Config.in" source "package/binutils/Config.in.host"
--
1.7.1
PATCH v3 1/1 toolchain: control vendor part in GNU_TARGET_NAME
Noam, All,
On 2014-03-04 04:51 +0000, Noam Camus spake thusly:
Quoted 8 lines
This option allows to customize the "vendor" part of the toolchain tuple, where the toolchain tuple has the form <cpu>-<vendor>-<kernel>-<os>. Use this option in situations where gcc might make different decisions based on the vendor part of the tuple.
Signed-off-by Noam Camus <[email protected]>Signed-off-by Thomas Petazzoni <[email protected]>
I don't think Thomas provided a SoB line so far. You can't add such a line for someone else, unless they explicitly stated so. A SoB-line is binding:
http://elinux.org/Developer_Certificate_Of_Origin
package/Makefile.in endif · line 27
Quoted 13 lines
package/Makefile.in +5
-0@@ -20,8 +20,18 @@ endif MAKE1:=$(HOSTMAKE) -j1 MAKE:=$(HOSTMAKE) $(if $(PARALLEL_JOBS),-j$(PARALLEL_JOBS)) +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),) +VENDOR:=buildroot +else +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),unknown) +$(error The value 'unknown' is not allowed. It might be confused with native toolchain)
... with the native ...
[--SNIP--]
toolchain/toolchain-buildroot/Config.in config BR2_TOOLCHAIN_BUILDROOT_LIBC · line 71
Quoted 7 lines
toolchain/toolchain-buildroot/Config.in +0
-0@@ -70,6 +70,23 @@ config BR2_TOOLCHAIN_BUILDROOT_LIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC
Your patch is space-mangled: the leading tabs have been replaced with spaces. Can you try to use 'git send-email' to send the mails? This is known to work correctly most of the case, whereas some user-friendly mailers (lie the ones from MS) have issues properly sending patches.
toolchain/toolchain-buildroot/Config.in config BR2_TOOLCHAIN_BUILDROOT_LIBC · line 77
Quoted 5 lines
toolchain/toolchain-buildroot/Config.in +5
-0+config BR2_TOOLCHAIN_BUILDROOT_VENDOR + string "custom toolchain vendor name" + default "buildroot" + help +
Superfluous empty line.
toolchain/toolchain-buildroot/Config.in config BR2_TOOLCHAIN_BUILDROOT_LIBC · line 88
Quoted 11 lines
toolchain/toolchain-buildroot/Config.in +11
-0+ This option allows to customize the "vendor" part of the + toolchain tuple, where the toolchain tuple has the form + <cpu>-<vendor>-<kernel>-<os>. 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. + + If you're not sure, just leave the default "buildroot" value.
Add something like:
Leaving this empty will also use the default "buildroot" value.
Otherwise, looks good.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v3 1/1 toolchain: control vendor part in GNU_TARGET_NAME
In reply to Noam CamusQuoted 20 lines · Noam Camus
This option allows to customize the "vendor" part of the toolchain tuple, where the toolchain tuple has the form <cpu>-<vendor>-<kernel>-<os>. Use this option in situations where gcc might make different decisions based on the vendor part of the tuple.
Signed-off-by Noam Camus <[email protected]>Signed-off-by Thomas Petazzoni <[email protected]>--- package/Makefile.in | 12 +++++++++++- toolchain/toolchain-buildroot/Config.in | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletions(-)package/Makefile.in +0
-0@@ -20,8 +20,18 @@ endif MAKE1:=$(HOSTMAKE) -j1 MAKE:=$(HOSTMAKE) $(if $(PARALLEL_JOBS),-j$(PARALLEL_JOBS))
package/Makefile.in endif · line 31
Quoted 10 lines
package/Makefile.in +9
-0+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),) +VENDOR:=buildroot +else +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_VENDOR),unknown) +$(error The value 'unknown' is not allowed. It might be confused with native toolchain) +else +VENDOR:=$(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_VENDOR)) +endif +endif
I don't think it's a good idea to treat the case that vendor is empty
specially. Anyway, it will never be empty or unknown, because it always includes quotes - it should be qstripped first.
Therefore, this is better (also note the fixed spacing and := ):
VENDOR = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_VENDOR)) ifeq ($(VENDOR),)
$(error BR2_TOOLCHAIN_BUILDROOT_VENDOR is not allowed to be empty) endif
ifeq ($(VENDOR),unknown)
$(error BR2_TOOLCHAIN_BUILDROOT_VENDOR cannot be 'unknown'. \
It might be confused with the native toolchain)
endif
I would also prefer to name the internal variable TARGET_VENDOR, similar
to TARGET_OS.
Quoted 13 lines
package/Makefile.in +2
-1+ # Compute GNU_TARGET_NAME -GNU_TARGET_NAME=$(ARCH)-buildroot-$(TARGET_OS)-$(LIBC)$(ABI) +GNU_TARGET_NAME=$(ARCH)-$(VENDOR)-$(TARGET_OS)-$(LIBC)$(ABI) # Blackfin FLAT needs uclinux ifeq ($(BR2_bfin)$(BR2_BINFMT_FLAT),yy)toolchain/toolchain-buildroot/Config.in +0
-0@@ -70,6 +70,23 @@ config BR2_TOOLCHAIN_BUILDROOT_LIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC
toolchain/toolchain-buildroot/Config.in config BR2_TOOLCHAIN_BUILDROOT_LIBC · line 80
Quoted 10 lines
toolchain/toolchain-buildroot/Config.in +8
-0default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC +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 + <cpu>-<vendor>-<kernel>-<os>. The default value, "buildroot",
It's more like <arch>-<vendor>-<os>-<libc>
toolchain/toolchain-buildroot/Config.in config BR2_TOOLCHAIN_BUILDROOT_LIBC · line 88
Quoted 8 lines
toolchain/toolchain-buildroot/Config.in +8
-0+ 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. + + If you're not sure, just leave the default "buildroot" value.
With my comment above, Yann's comment about rewriting this is no longer
correct of course.
Regards,
Arnout
Quoted 12 lines
toolchain/toolchain-buildroot/Config.in +1
-1+ source "package/uclibc/Config.in" source "package/glibc/Config.in" source "package/binutils/Config.in.host" --1.7.1
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F