toolchain: add support of ARC architecture

This includes binutils, gcc, gdb and uClibc-ng.

Latest release of ARC gcc (as of today it is "arc-2015.06")
is based on upstream gcc 4.8.4.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/gcc

Latest release of ARC binutils (as of today it is "arc-2015.06")
is based on upstream binutils 2.23.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2015.06

Latest release of ARC GDB (as of today this is "arc-2015.06-gdb")
is based on upstream gdb 7.9.1.

Sources are available on GitHub, see:
https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2015.06-gdb

Note that for binutils and gdb that come from unified git repository
(which is the case for upstream binutils/gdb today) we need to disable
building of gdb in binutils and binutils in gdb hence in binutils:
------>8------
--disable-sim
--disable-gdb
------>8------

and in gdb:
------>8------
--disable-binutils
--disable-ld
--disable-gas
------>8------

Also in gdb we disable sim because if the following breakage while
building with it:
------------>8------------
/usr/bin/env bash ./../common/genmloop.sh -shell /usr/bin/env bash \
        -mono -fast -pbb -switch sem5-switch.c \
        -cpu a5f -infile ./mloop5.in \
        -outfile-suffix 5
unknown option: bash
Makefile:699: recipe for target 'stamp-5mloop' failed
make[7]: *** [stamp-5mloop] Error 1
------------>8------------

Cc: Felix Fietkau <nbd@openwrt.org>
Cc: John Crispin <blogic@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

SVN-Revision: 47438
This commit is contained in:
Felix Fietkau 2015-11-10 12:03:59 +00:00
parent 759b1c1187
commit 8b5d644bb3
31 changed files with 934 additions and 31 deletions

View file

@ -2,15 +2,25 @@
choice
prompt "Binutils Version" if TOOLCHAINOPTS
default BINUTILS_VERSION_LINARO
default BINUTILS_USE_VERSION_2_24_LINARO if !arc
default BINUTILS_USE_VERSION_2_23_ARC if arc
help
Select the version of binutils you wish to use.
config BINUTILS_VERSION_LINARO
config BINUTILS_USE_VERSION_2_24_LINARO
depends on !arc
bool "Linaro binutils 2.24"
select BINUTILS_VERSION_2_24_LINARO
config BINUTILS_VERSION_2_25_1
config BINUTILS_USE_VERSION_2_25_1
depends on !arc
bool "Binutils 2.25.1"
select BINUTILS_VERSION_2_25_1
config BINUTILS_USE_VERSION_2_23_ARC
depends on arc
bool "ARC binutils 2.23"
select BINUTILS_VERSION_2_23_ARC
endchoice
@ -20,10 +30,3 @@ config EXTRA_BINUTILS_CONFIG_OPTIONS
default ""
help
Any additional binutils options you may want to include....
config BINUTILS_VERSION
string
prompt "Binutils Version" if (TOOLCHAINOPTS && NULL)
default "linaro" if BINUTILS_VERSION_LINARO
default "2.25.1" if BINUTILS_VERSION_2_25_1
default "linaro"

View file

@ -0,0 +1,17 @@
config BINUTILS_VERSION_2_24_LINARO
default y if (!TOOLCHAINOPTS && !arc)
bool
config BINUTILS_VERSION_2_25_1
bool
config BINUTILS_VERSION_2_23_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
config BINUTILS_VERSION
string
default "2.24-linaro" if BINUTILS_VERSION_2_24_LINARO
default "2.25.1" if BINUTILS_VERSION_2_25_1
default "arc-2015.06" if BINUTILS_VERSION_2_23_ARC

View file

@ -10,6 +10,13 @@ PKG_NAME:=binutils
PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION))
BIN_VERSION:=$(PKG_VERSION)
PKG_SOURCE_URL:=@GNU/binutils/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
ifeq ($(PKG_VERSION),2.25.1)
PKG_MD5SUM:=ac493a78de4fee895961d025b7905be4
endif
ifeq ($(findstring linaro, $(CONFIG_BINUTILS_VERSION)),linaro)
PKG_SOURCE_URL:=https://releases.linaro.org/14.09/components/toolchain/binutils-linaro/
PKG_REV:=2.24.0-2014.09
@ -17,13 +24,15 @@ ifeq ($(findstring linaro, $(CONFIG_BINUTILS_VERSION)),linaro)
PKG_MD5SUM:=8f9b2b2e049d59b1b86ce9657802a353
BINUTILS_DIR:=$(PKG_NAME)-linaro-$(PKG_REV)
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
else
PKG_SOURCE_URL:=@GNU/binutils/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
endif
ifeq ($(PKG_VERSION),2.25.1)
PKG_MD5SUM:=ac493a78de4fee895961d025b7905be4
endif
ifneq ($(CONFIG_BINUTILS_VERSION_2_23_ARC),)
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/arc-2015.06/
PKG_REV:=2015.06
PKG_SOURCE:=$(PKG_NAME)-arc-$(PKG_REV).tar.gz
PKG_MD5SUM:=961a3564de857238c255c381f8e4360b
BINUTILS_DIR:=$(PKG_NAME)-gdb-arc-$(PKG_REV)
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
endif
HOST_BUILD_PARALLEL:=1
@ -46,6 +55,8 @@ BINUTILS_CONFIGURE:= \
--disable-multilib \
--disable-werror \
--disable-nls \
--disable-sim \
--disable-gdb \
$(GRAPHITE_CONFIGURE) \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
@ -91,6 +102,12 @@ define Host/Install
$(call FixupLibdir,$(TOOLCHAIN_DIR)/initial)
$(RM) $(TOOLCHAIN_DIR)/initial/lib/libiberty.a
$(CP) $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-readelf $(REAL_STAGING_DIR_HOST)/bin/readelf
# ARC gcc requires extlib.
# If extlib is not available in "initial" folder
# initial gcc will fail to build libc.
if [ -d $(TOOLCHAIN_DIR)/extlib ]; then \
$(CP) -r $(TOOLCHAIN_DIR)/extlib $(TOOLCHAIN_DIR)/initial/; \
fi
endef
define Host/Clean