binutils: Allow upstream 2.29 to be chosen for ARC
PATCH v2 1/1 binutils: Allow upstream 2.29 to be chosen for ARC
As of today quite a lot of ARC stuff got merged in upsream such that we may finally use upstream realease for building and even running Linux kernel and rootfs built with vanilla binutils.
Essentially upstream release is still a bit behind our GitHub-based releases but let's try to use vanilla version and if we're lucky enough with just a small set of back-ported patches we'll be able to use vanilla release(s) for everything in Buildroot.
---
Changes v1->v2:
* Use positive logic on selection of ARC tools in binutils.mk (Arnout)
package/binutils/Config.in.host | 11 ++++++++--- package/binutils/binutils.mk | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-)
package/binutils/Config.in.host +8 -3
@@ -2,8 +2,8 @@ comment "Binutils Options" choice prompt "Binutils Version" - default BR2_BINUTILS_VERSION_2_28_X - depends on !BR2_arc + default BR2_BINUTILS_VERSION_2_28_X if !BR2_arc + default BR2_BINUTILS_VERSION_ARC if BR2_arc help Select the version of binutils you wish to use.
@@ -11,18 +11,23 @@ config BR2_BINUTILS_VERSION_2_27_X bool "binutils 2.27" # binutils 2.27 triggers a bug in elf2flt on ARM/noMMU depends on !(BR2_arm && !BR2_USE_MMU) + depends on !BR2_arc config BR2_BINUTILS_VERSION_2_28_X bool "binutils 2.28.1" + depends on !BR2_arc config BR2_BINUTILS_VERSION_2_29_X bool "binutils 2.29.1" +config BR2_BINUTILS_VERSION_ARC + bool "binutils arc (2.29)" + depends on BR2_arc endchoice config BR2_BINUTILS_VERSION string - default "arc-2017.09-release" if BR2_arc + default "arc-2017.09-release" if BR2_BINUTILS_VERSION_ARC default "2.27" if BR2_BINUTILS_VERSION_2_27_X default "2.28.1" if BR2_BINUTILS_VERSION_2_28_X default "2.29.1" if BR2_BINUTILS_VERSION_2_29_X
package/binutils/binutils.mk +1 -1
@@ -15,7 +15,7 @@ BINUTILS_VERSION = 2.28.1 endif endif # BINUTILS_VERSION -ifeq ($(BR2_arc),y) +ifeq ($(BR2_BINUTILS_VERSION_ARC),y) BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION)) BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz BINUTILS_FROM_GIT = y
Signature · 1 line
2.10.2
PATCH v2 1/1 binutils: Allow upstream 2.29 to be chosen for ARC
Hello,
Quoted 10 lines · Alexey Brodkin
As of today quite a lot of ARC stuff got merged in upsream such that we may finally use upstream realease for building and even running Linux kernel and rootfs built with vanilla binutils.
Essentially upstream release is still a bit behind our GitHub-based releases but let's try to use vanilla version and if we're lucky enough with just a small set of back-ported patches we'll be able to use vanilla release(s) for everything in Buildroot.
Quoted 4 lines
Signed-off-by Alexey Brodkin <[email protected]>Cc Arnout Vandecappelle (Essensium/Mind) <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>
Thanks, I've applied to next, but I had to do a change to avoid a build failure. See below.
package/binutils/binutils.mk BINUTILS_VERSION = 2.28.1 · line 18
Quoted 10 lines
package/binutils/binutils.mk +1
-1@@ -15,7 +15,7 @@ BINUTILS_VERSION = 2.28.1 endif endif # BINUTILS_VERSION -ifeq ($(BR2_arc),y) +ifeq ($(BR2_BINUTILS_VERSION_ARC),y)
The symbol BR2_BINUTILS_VERSION_ARC doesn't exist when you're using an external toolchain. Still, the target variant of binutils can be built, and in this case, on ARC, the Synopsys version is used. From binutils.mk:
ifeq ($(BINUTILS_VERSION),)
ifeq ($(BR2_arc),y)BINUTILS_VERSION = arc-2017.09-release
elseBINUTILS_VERSION = 2.28.1
endif
endif # BINUTILS_VERSION
So, instead of testing BR2_BINUTILS_VERSION_ARC, I've changed to:
ifeq ($(BINUTILS_VERSION),arc-2017.09-release)
BINUTILS_VERSION is either defined by BR2_BINUTILS_VERSION from package/binutils/Config.in.host (when a cross-binutils is built for an internal toolchain) *or* it is defined from binutils.mk when building a target binutils in an external toolchain context.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com