aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/binutils
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2017-02-27 21:27:50 +0300
committerFelix Fietkau <nbd@nbd.name>2017-05-02 15:17:30 +0200
commit34e83930197410e1d7ff306792f7426b7dce9195 (patch)
treea8de039f8d61135d6b8b690c7adfcadf386b2118 /toolchain/binutils
parent2b27e62e74fa73086e505f93d6bf037a16c66e55 (diff)
downloadupstream-34e83930197410e1d7ff306792f7426b7dce9195.tar.gz
upstream-34e83930197410e1d7ff306792f7426b7dce9195.tar.bz2
upstream-34e83930197410e1d7ff306792f7426b7dce9195.zip
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>
Diffstat (limited to 'toolchain/binutils')
-rw-r--r--toolchain/binutils/Config.in8
-rw-r--r--toolchain/binutils/Config.version5
-rw-r--r--toolchain/binutils/Makefile12
-rw-r--r--toolchain/binutils/patches/arc-2016.03/200-arc-fix-target-mask.patch13
-rw-r--r--toolchain/binutils/patches/arc-2016.09-release/300-001_ld_makefile_patch.patch22
-rw-r--r--toolchain/binutils/patches/arc-2016.09-release/300-012_check_ldrunpath_length.patch20
6 files changed, 54 insertions, 26 deletions
diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in
index ccf096d3d8..318a13804f 100644
--- a/toolchain/binutils/Config.in
+++ b/toolchain/binutils/Config.in
@@ -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
diff --git a/toolchain/binutils/Config.version b/toolchain/binutils/Config.version
index 66e1ee2c78..8a166e1aa3 100644
--- a/toolchain/binutils/Config.version
+++ b/toolchain/binutils/Config.version
@@ -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
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 812a2ee1fb..9bdd68f6ac 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -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
diff --git a/toolchain/binutils/patches/arc-2016.03/200-arc-fix-target-mask.patch b/toolchain/binutils/patches/arc-2016.03/200-arc-fix-target-mask.patch
deleted file mode 100644
index 7e51d588ae..0000000000
--- a/toolchain/binutils/patches/arc-2016.03/200-arc-fix-target-mask.patch
+++ /dev/null
@@ -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
- ;;
diff --git a/toolchain/binutils/patches/arc-2016.09-release/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/arc-2016.09-release/300-001_ld_makefile_patch.patch
new file mode 100644
index 0000000000..e4cec7f69e
--- /dev/null
+++ b/toolchain/binutils/patches/arc-2016.09-release/300-001_ld_makefile_patch.patch
@@ -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
diff --git a/toolchain/binutils/patches/arc-2016.09-release/300-012_check_ldrunpath_length.patch b/toolchain/binutils/patches/arc-2016.09-release/300-012_check_ldrunpath_length.patch
new file mode 100644
index 0000000000..95d3f75b85
--- /dev/null
+++ b/toolchain/binutils/patches/arc-2016.09-release/300-012_check_ldrunpath_length.patch
@@ -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)