diff options
author | Alexey Brodkin <Alexey.Brodkin@synopsys.com> | 2017-02-27 21:27:50 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2017-05-02 15:17:30 +0200 |
commit | 34e83930197410e1d7ff306792f7426b7dce9195 (patch) | |
tree | a8de039f8d61135d6b8b690c7adfcadf386b2118 /toolchain/binutils | |
parent | 2b27e62e74fa73086e505f93d6bf037a16c66e55 (diff) | |
download | mtk-20170518-34e83930197410e1d7ff306792f7426b7dce9195.zip mtk-20170518-34e83930197410e1d7ff306792f7426b7dce9195.tar.gz mtk-20170518-34e83930197410e1d7ff306792f7426b7dce9195.tar.bz2 |
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')
6 files changed, 54 insertions, 26 deletions
diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in index ccf096d..318a138 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 66e1ee2..8a166e1 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 812a2ee..9bdd68f 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 7e51d588..0000000 --- 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 0000000..e4cec7f --- /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 0000000..95d3f75 --- /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) |