forked from Ivasoft/openwrt
toolchain/arc: update to the most recent release arc-2016.09
arc-2016.09 is the most recent toolchain for ARC cores and it is based on top of upstream Binutils 2.27 and GCC 6.2.1. With updated major version of GCC we copied all GCC 6.x patches for ARC as well as Bintils 2.27 patches. Note that toochain sports ARCv4 ABI and so must be used with 4.8+ Linux kernels. Even though it will build v4.4 kernel perfectly fine on attempt to run user-space apps they won't work with older kernel. That said previuosly sent RFC patches with Linux kernel update are required: [1] https://patchwork.ozlabs.org/patch/726686/ [2] https://patchwork.ozlabs.org/patch/726687/ Signed-off-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
This commit is contained in:
committed by
Felix Fietkau
parent
2b27e62e74
commit
34e8393019
@@ -3,7 +3,7 @@
|
||||
choice
|
||||
prompt "Binutils Version" if TOOLCHAINOPTS
|
||||
default BINUTILS_USE_VERSION_2_27 if !arc
|
||||
default BINUTILS_USE_VERSION_2_26_ARC if arc
|
||||
default BINUTILS_USE_VERSION_2_27_ARC if arc
|
||||
help
|
||||
Select the version of binutils you wish to use.
|
||||
|
||||
@@ -17,10 +17,10 @@ choice
|
||||
bool "Binutils 2.28"
|
||||
select BINUTILS_VERSION_2_28
|
||||
|
||||
config BINUTILS_USE_VERSION_2_26_ARC
|
||||
config BINUTILS_USE_VERSION_2_27_ARC
|
||||
depends on arc
|
||||
bool "ARC binutils 2.26"
|
||||
select BINUTILS_VERSION_2_26_ARC
|
||||
bool "ARC binutils 2.27"
|
||||
select BINUTILS_VERSION_2_27_ARC
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ config BINUTILS_VERSION_2_27
|
||||
config BINUTILS_VERSION_2_28
|
||||
bool
|
||||
|
||||
config BINUTILS_VERSION_2_26_ARC
|
||||
config BINUTILS_VERSION_2_27_ARC
|
||||
default y if (!TOOLCHAINOPTS && arc)
|
||||
bool
|
||||
|
||||
@@ -13,5 +13,4 @@ config BINUTILS_VERSION
|
||||
string
|
||||
default "2.27" if BINUTILS_VERSION_2_27
|
||||
default "2.28" if BINUTILS_VERSION_2_28
|
||||
default "arc-2016.03" if BINUTILS_VERSION_2_26_ARC
|
||||
|
||||
default "arc-2016.09" if BINUTILS_VERSION_2_27_ARC
|
||||
|
||||
@@ -21,12 +21,12 @@ ifeq ($(PKG_VERSION),2.28)
|
||||
PKG_HASH:=6297433ee120b11b4b0a1c8f3512d7d73501753142ab9e2daa13c5a3edd32a72
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_BINUTILS_VERSION_2_26_ARC),)
|
||||
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/arc-2016.03/
|
||||
PKG_REV:=2016.03
|
||||
PKG_SOURCE:=$(PKG_NAME)-arc-$(PKG_REV).tar.gz
|
||||
PKG_HASH:=6583a0cd5c7251dc895a47c797a9b011e466c23377d2ca7548a707fdb918fba1
|
||||
BINUTILS_DIR:=$(PKG_NAME)-gdb-arc-$(PKG_REV)
|
||||
ifneq ($(CONFIG_BINUTILS_VERSION_2_27_ARC),)
|
||||
PKG_REV:=arc-2016.09-release
|
||||
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_REV)/
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REV).tar.gz
|
||||
PKG_HASH:=c6de8aedb7568406d784295476de9139a5e351e970e18b602e0037439b3a7b4b
|
||||
BINUTILS_DIR:=$(PKG_NAME)-gdb-$(PKG_REV)
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/bfd/config.bfd b/bfd/config.bfd
|
||||
index 5145d4a..a9c9c99 100644
|
||||
--- a/bfd/config.bfd
|
||||
+++ b/bfd/config.bfd
|
||||
@@ -275,7 +275,7 @@ case "${targ}" in
|
||||
targ_defvec=am33_elf32_linux_vec
|
||||
;;
|
||||
|
||||
- arc*-*-elf* | arc*-*-linux-uclibc*)
|
||||
+ arc*-*-elf* | arc*-*-linux-*)
|
||||
targ_defvec=arc_elf32_le_vec
|
||||
targ_selvecs=arc_elf32_be_vec
|
||||
;;
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/ld/Makefile.am
|
||||
+++ b/ld/Makefile.am
|
||||
@@ -57,7 +57,7 @@ endif
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- a/ld/Makefile.in
|
||||
+++ b/ld/Makefile.in
|
||||
@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
BASEDIR = $(srcdir)/..
|
||||
BFDDIR = $(BASEDIR)/bfd
|
||||
INCDIR = $(BASEDIR)/include
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/ld/emultempl/elf32.em
|
||||
+++ b/ld/emultempl/elf32.em
|
||||
@@ -1244,6 +1244,8 @@ fragment <<EOF
|
||||
&& command_line.rpath == NULL)
|
||||
{
|
||||
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||
+ lib_path = NULL;
|
||||
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
|
||||
force))
|
||||
break;
|
||||
@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((rpath) && (strlen (rpath) == 0))
|
||||
+ rpath = NULL;
|
||||
|
||||
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
|
||||
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||
Reference in New Issue
Block a user