summaryrefslogtreecommitdiff
path: root/package/binutils
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2016-05-11 00:05:04 +0300
committerPeter Korsgaard <peter@korsgaard.com>2016-05-11 23:06:45 +0200
commitadbdc6e58f2b387dc4200f2acbf9cc307cbc8838 (patch)
tree33b52dfe0f2d738327dfe83a67e436930dbdb524 /package/binutils
parent3ef13c49966d1cbfe08fc3d9d12b1f9d8d4f558b (diff)
toolchain: bump ARC tools to arc-2016.03-rc2
This change switches ARC tools to RC2 of the most recent arc-2016.03 version. Essentially once final release is ready version will be bumped again. ARC GNU tools of version arc-2016.03 bring some quite significant changes like: * Binutils v2.26+ (upstream commit id 202ac19 with additional ARC patches) * GCC v4.8.5 * GDB 7.10 More about changes, improvements and fixes could be found here: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2016.03-rc2 Also in this change we realign custom Buildroot patches for binutils and gcc for ARC tools. Looks like earlier most of arch-independent patches for binutils and gcc were either unintentionally removed or not even added in patch folders for ARC's binutils and gcc. Now arch-independent patches for binutils-2.26 and gcc-4.8.5 were added in package/{binutils|gcc}/arc-2016.03-rc2 folders. Build and run-tested in nSIM for both ARC700 and ARC HS38. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/binutils')
-rw-r--r--package/binutils/Config.in.host2
-rw-r--r--package/binutils/arc-2015.12/0001-PR-other-56780.patch236
-rw-r--r--package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch41
-rw-r--r--package/binutils/arc-2016.03-rc2/0301-check-ldrunpath-length.patch36
-rw-r--r--package/binutils/arc-2016.03-rc2/0500-add-sysroot-fix-from-bug-3049.patch52
-rw-r--r--package/binutils/arc-2016.03-rc2/0600-poison-system-directories.patch (renamed from package/binutils/arc-2015.12/600-poison-system-directories.patch)217
-rw-r--r--package/binutils/binutils.hash2
-rw-r--r--package/binutils/binutils.mk2
8 files changed, 254 insertions, 334 deletions
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index e42918e9f..6c72fa3f8 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -35,7 +35,7 @@ endchoice
config BR2_BINUTILS_VERSION
string
- default "arc-2015.12" if BR2_arc
+ default "arc-2016.03-rc2" if BR2_arc
default "2.23.2" if BR2_BINUTILS_VERSION_2_23_X
default "2.24" if BR2_BINUTILS_VERSION_2_24_X
default "2.25.1" if BR2_BINUTILS_VERSION_2_25_X
diff --git a/package/binutils/arc-2015.12/0001-PR-other-56780.patch b/package/binutils/arc-2015.12/0001-PR-other-56780.patch
deleted file mode 100644
index b418a2f4a..000000000
--- a/package/binutils/arc-2015.12/0001-PR-other-56780.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From 7827cdf59a1894abe18aa20043a63c8c875c3fce Mon Sep 17 00:00:00 2001
-From: DJ Delorie <dj@redhat.com>
-Date: Sat, 1 Jun 2013 01:01:44 +0000
-Subject: [PATCH] PR other/56780 merge from gcc
-
-binutils-gdb upstream a4818a052efb4cea976a03a2f7cb0b38b23d12d0
-
-libiberty: fix --enable-install-libiberty flag [PR 56780]
-
-Commit 199570 fixed the --disable-install-libiberty behavior, but it also
-added a bug where the enable path never works because the initial clear
-of target_header_dir wasn't deleted. So we end up initializing properly
-at the top only to reset it at the end all the time.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Romain
- rename patch name
- squash the two upstream commits
- Remove the ChangeLog]
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- libiberty/Makefile.in | 24 ++++++++++-----------
- libiberty/configure | 57 +++++++++++++++++++++++++++-----------------------
- libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
- 3 files changed, 68 insertions(+), 60 deletions(-)
-
-diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index 0a5da31..4f40c72 100644
---- a/libiberty/Makefile.in
-+++ b/libiberty/Makefile.in
-@@ -354,19 +354,19 @@ install-strip: install
- # since it will be passed the multilib flags.
- MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
- install_to_libdir: all
-- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
-- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
-- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
-- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
- if test -n "${target_header_dir}"; then \
-- case "${target_header_dir}" in \
-- /*) thd=${target_header_dir};; \
-- *) thd=${includedir}/${target_header_dir};; \
-- esac; \
-- ${mkinstalldirs} $(DESTDIR)$${thd}; \
-- for h in ${INSTALLED_HEADERS}; do \
-- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-- done; \
-+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-+ case "${target_header_dir}" in \
-+ /*) thd=${target_header_dir};; \
-+ *) thd=${includedir}/${target_header_dir};; \
-+ esac; \
-+ ${mkinstalldirs} $(DESTDIR)$${thd}; \
-+ for h in ${INSTALLED_HEADERS}; do \
-+ ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-+ done; \
- fi
- @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
-diff --git a/libiberty/configure b/libiberty/configure
-index 6e98352..44d1f78 100755
---- a/libiberty/configure
-+++ b/libiberty/configure
-@@ -675,8 +675,8 @@ with_cross_host
- with_newlib
- enable_maintainer_mode
- enable_multilib
--enable_largefile
- enable_install_libiberty
-+enable_largefile
- '
- ac_precious_vars='build_alias
- host_alias
-@@ -1303,8 +1303,8 @@ Optional Features:
- enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
- --enable-multilib build many library versions (default)
-+ --enable-install-libiberty Install headers and library for end users
- --disable-largefile omit support for large files
-- --enable-install-libiberty Install headers for end users
-
- Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
- cross_compiling=maybe
- fi
-
-+# We may wish to install the target headers somewhere.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
-+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
-+
-+# Check whether --enable-install-libiberty was given.
-+if test "${enable_install_libiberty+set}" = set; then :
-+ enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
-+else
-+ enable_install_libiberty=no
-+fi
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+ xyes|x)
-+ target_header_dir=libiberty
-+ ;;
-+ xno)
-+ target_header_dir=
-+ ;;
-+ *)
-+ # This could be sanity-checked in various ways...
-+ target_header_dir="${enable_install_libiberty}"
-+ ;;
-+esac
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
-+$as_echo "$enable_install_libiberty" >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
-+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
-+
-
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
-@@ -5475,7 +5504,6 @@ fi
-
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-
- # We are being configured as a target library. AC_REPLACE_FUNCS
-@@ -5752,29 +5780,6 @@ _ACEOF
-
- esac
-
-- # We may wish to install the target headers somewhere.
-- # Check whether --enable-install-libiberty was given.
--if test "${enable_install_libiberty+set}" = set; then :
-- enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
--else
-- enable_install_libiberty=no
--fi
--
-- # Option parsed, now set things appropriately.
-- case x"$enable_install_libiberty" in
-- xyes|x)
-- target_header_dir=libiberty
-- ;;
-- xno)
-- target_header_dir=
-- ;;
-- *)
-- # This could be sanity-checked in various ways...
-- target_header_dir="${enable_install_libiberty}"
-- ;;
-- esac
--
--
- else
-
- # Not a target library, so we set things up to run the test suite.
-diff --git a/libiberty/configure.ac b/libiberty/configure.ac
-index 754b66a..04260ec 100644
---- a/libiberty/configure.ac
-+++ b/libiberty/configure.ac
-@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
- cross_compiling=maybe
- fi
-
-+# We may wish to install the target headers somewhere.
-+AC_MSG_CHECKING([whether to install libiberty headers and static library])
-+dnl install-libiberty is disabled by default
-+
-+AC_ARG_ENABLE(install-libiberty,
-+[ --enable-install-libiberty Install headers and library for end users],
-+enable_install_libiberty=$enableval,
-+enable_install_libiberty=no)dnl
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+ xyes|x)
-+ target_header_dir=libiberty
-+ ;;
-+ xno)
-+ target_header_dir=
-+ ;;
-+ *)
-+ # This could be sanity-checked in various ways...
-+ target_header_dir="${enable_install_libiberty}"
-+ ;;
-+esac
-+AC_MSG_RESULT($enable_install_libiberty)
-+AC_MSG_NOTICE([target_header_dir = $target_header_dir])
-+
- GCC_NO_EXECUTABLES
- AC_PROG_CC
- AC_SYS_LARGEFILE
-@@ -379,7 +404,6 @@ fi
-
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
-
- # We are being configured as a target library. AC_REPLACE_FUNCS
-@@ -490,27 +514,6 @@ if test -n "${with_target_subdir}"; then
-
- esac
-
-- # We may wish to install the target headers somewhere.
-- AC_ARG_ENABLE(install-libiberty,
-- [ --enable-install-libiberty Install headers for end users],
-- enable_install_libiberty=$enableval,
-- enable_install_libiberty=no)dnl
--
-- # Option parsed, now set things appropriately.
-- case x"$enable_install_libiberty" in
-- xyes|x)
-- target_header_dir=libiberty
-- ;;
-- xno)
-- target_header_dir=
-- ;;
-- *)
-- # This could be sanity-checked in various ways...
-- target_header_dir="${enable_install_libiberty}"
-- ;;
-- esac
--
--
- else
-
- # Not a target library, so we set things up to run the test suite.
---
-1.9.3
-
diff --git a/package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch b/package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch
new file mode 100644
index 000000000..73cc09802
--- /dev/null
+++ b/package/binutils/arc-2016.03-rc2/0300-ld-makefile.patch
@@ -0,0 +1,41 @@
+From d76a7549b43974fe8564971a3f40459bc495a8a7 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:40:53 +0100
+Subject: [PATCH] ld-makefile
+
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/Makefile.am | 2 +-
+ ld/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ld/Makefile.am b/ld/Makefile.am
+index 0b3b049..3871c74 100644
+--- 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@
+diff --git a/ld/Makefile.in b/ld/Makefile.in
+index ed98f87..530e4c9 100644
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -413,7 +413,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
+--
+2.4.3
+
diff --git a/package/binutils/arc-2016.03-rc2/0301-check-ldrunpath-length.patch b/package/binutils/arc-2016.03-rc2/0301-check-ldrunpath-length.patch
new file mode 100644
index 000000000..3b4c204c7
--- /dev/null
+++ b/package/binutils/arc-2016.03-rc2/0301-check-ldrunpath-length.patch
@@ -0,0 +1,36 @@
+From ebe1cba46df52d7bf86def3d681271fd05fb453b Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:41:47 +0100
+Subject: [PATCH] check-ldrunpath-length
+
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/emultempl/elf32.em | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
+index 0405d4f..efd3300 100644
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1242,6 +1242,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;
+@@ -1523,6 +1525,8 @@ gld${EMULATION_NAME}_before_allocation (void)
+ 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)
+--
+2.4.3
+
diff --git a/package/binutils/arc-2016.03-rc2/0500-add-sysroot-fix-from-bug-3049.patch b/package/binutils/arc-2016.03-rc2/0500-add-sysroot-fix-from-bug-3049.patch
new file mode 100644
index 000000000..f67a43efd
--- /dev/null
+++ b/package/binutils/arc-2016.03-rc2/0500-add-sysroot-fix-from-bug-3049.patch
@@ -0,0 +1,52 @@
+From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:42:48 +0100
+Subject: [PATCH] add sysroot fix from bug #3049
+
+Always try to prepend the sysroot prefix to absolute filenames first.
+
+http://bugs.gentoo.org/275666
+http://sourceware.org/bugzilla/show_bug.cgi?id=10340
+
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/ldfile.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index 96f9ecc..1439309 100644
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch,
+ directory first. */
+ if (! entry->flags.maybe_archive)
+ {
+- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
++ /* For absolute pathnames, try to always open the file in the
++ sysroot first. If this fails, try to open the file at the
++ given location. */
++ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
++ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
++ && ld_sysroot)
+ {
+ char *name = concat (ld_sysroot, entry->filename,
+ (const char *) NULL);
+ if (ldfile_try_open_bfd (name, entry))
+ {
+ entry->filename = name;
++ entry->flags.sysrooted = TRUE;
+ return TRUE;
+ }
+ free (name);
+ }
+- else if (ldfile_try_open_bfd (entry->filename, entry))
++
++ if (ldfile_try_open_bfd (entry->filename, entry))
+ return TRUE;
+
+ if (IS_ABSOLUTE_PATH (entry->filename))
+--
+2.4.3
+
diff --git a/package/binutils/arc-2015.12/600-poison-system-directories.patch b/package/binutils/arc-2016.03-rc2/0600-poison-system-directories.patch
index 8a3bdc647..d16994ec0 100644
--- a/package/binutils/arc-2015.12/600-poison-system-directories.patch
+++ b/package/binutils/arc-2016.03-rc2/0600-poison-system-directories.patch
@@ -1,7 +1,16 @@
-Patch adapted to binutils arc-4.8-R3 and extended to use
+From be366461dd49e760440fb28eaee5164eb281adcc Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:45:38 +0100
+Subject: [PATCH] poison-system-directories
+
+Patch adapted to binutils 2.23.2 and extended to use
BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+[Gustavo: adapt to binutils 2.25]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Upstream-Status: Inappropriate [distribution: codesourcery]
@@ -48,7 +57,7 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
2007-03-20 Joseph Myers <joseph@codesourcery.com>
Based on patch by Mark Hatle <mark.hatle@windriver.com>.
ld/
- * configure.in (--enable-poison-system-directories): New option.
+ * configure.ac (--enable-poison-system-directories): New option.
* configure, config.in: Regenerate.
* ldfile.c (ldfile_add_library_path): If
ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
@@ -56,12 +65,23 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+---
+ ld/config.in | 3 +++
+ ld/configure | 14 ++++++++++++++
+ ld/configure.ac | 10 ++++++++++
+ ld/ld.h | 8 ++++++++
+ ld/ld.texinfo | 12 ++++++++++++
+ ld/ldfile.c | 17 +++++++++++++++++
+ ld/ldlex.h | 2 ++
+ ld/ldmain.c | 2 ++
+ ld/lexsup.c | 21 +++++++++++++++++++++
+ 9 files changed, 89 insertions(+)
-Index: b/ld/config.in
-===================================================================
+diff --git a/ld/config.in b/ld/config.in
+index 276fb77..35c58eb 100644
--- a/ld/config.in
+++ b/ld/config.in
-@@ -11,6 +11,9 @@
+@@ -14,6 +14,9 @@
language is requested. */
#undef ENABLE_NLS
@@ -71,20 +91,20 @@ Index: b/ld/config.in
/* Additional extension a shared object might have. */
#undef EXTRA_SHLIB_EXTENSION
-Index: b/ld/configure
-===================================================================
+diff --git a/ld/configure b/ld/configure
+index a446283..d1f9504 100755
--- a/ld/configure
+++ b/ld/configure
-@@ -773,6 +773,7 @@
+@@ -786,6 +786,7 @@ with_lib_path
enable_targets
enable_64_bit_bfd
with_sysroot
+enable_poison_system_directories
enable_gold
enable_got
- enable_werror
-@@ -1428,6 +1429,8 @@
- (and sometimes confusing) to the casual installer
+ enable_compressed_debug_sections
+@@ -1442,6 +1443,8 @@ Optional Features:
+ --disable-largefile omit support for large files
--enable-targets alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
+ --enable-poison-system-directories
@@ -92,7 +112,7 @@ Index: b/ld/configure
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
-@@ -4338,7 +4341,18 @@
+@@ -15491,7 +15494,18 @@ else
fi
@@ -111,11 +131,11 @@ Index: b/ld/configure
# Check whether --enable-got was given.
if test "${enable_got+set}" = set; then :
-Index: b/ld/configure.in
-===================================================================
---- a/ld/configure.in
-+++ b/ld/configure.in
-@@ -70,6 +70,16 @@
+diff --git a/ld/configure.ac b/ld/configure.ac
+index 188172d..2cd8443 100644
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot)
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
@@ -132,11 +152,53 @@ Index: b/ld/configure.in
dnl Use --enable-gold to decide if this linker should be the default.
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
-Index: b/ld/ldfile.c
-===================================================================
+diff --git a/ld/ld.h b/ld/ld.h
+index d84ec4e..3476b26 100644
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -164,6 +164,14 @@ typedef struct {
+ /* If set, display the target memory usage (per memory region). */
+ bfd_boolean print_memory_usage;
+
++ /* If TRUE (the default) warn for uses of system directories when
++ cross linking. */
++ bfd_boolean poison_system_directories;
++
++ /* If TRUE (default FALSE) give an error for uses of system
++ directories when cross linking instead of a warning. */
++ bfd_boolean error_poison_system_directories;
++
+ /* Big or little endian as set on command line. */
+ enum endian_enum endian;
+
+diff --git a/ld/ld.texinfo b/ld/ld.texinfo
+index 1dd7492..fb1438e 100644
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -2332,6 +2332,18 @@ string identifying the original linked file does not change.
+
+ Passing @code{none} for @var{style} disables the setting from any
+ @code{--build-id} options earlier on the command line.
++
++@kindex --no-poison-system-directories
++@item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++@file{/usr/lib} when cross linking. This option is intended for use
++in chroot environments when such directories contain the correct
++libraries for the target system rather than the host.
++
++@kindex --error-poison-system-directories
++@item --error-poison-system-directories
++Give an error instead of a warning for @option{-L} options using
++system directories when cross linking.
+ @end table
+
+ @c man end
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index 1439309..086b354 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@
+@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
else
new_dirs->name = xstrdup (name);
@@ -160,81 +222,52 @@ Index: b/ld/ldfile.c
}
/* Try to open a BFD for a lang_input_statement. */
-Index: b/ld/ld.h
-===================================================================
---- a/ld/ld.h
-+++ b/ld/ld.h
-@@ -203,6 +203,14 @@
- /* If TRUE we'll just print the default output on stdout. */
- bfd_boolean print_output_format;
-
-+ /* If TRUE (the default) warn for uses of system directories when
-+ cross linking. */
-+ bfd_boolean poison_system_directories;
-+
-+ /* If TRUE (default FALSE) give an error for uses of system
-+ directories when cross linking instead of a warning. */
-+ bfd_boolean error_poison_system_directories;
-+
- /* Big or little endian as set on command line. */
- enum endian_enum endian;
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index 6f11e7b..0ca3110 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -144,6 +144,8 @@ enum option_values
+ OPTION_PRINT_MEMORY_USAGE,
+ OPTION_REQUIRE_DEFINED_SYMBOL,
+ OPTION_ORPHAN_HANDLING,
++ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+ };
-Index: b/ld/ldmain.c
-===================================================================
+ /* The initial parser states. */
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index bb0b9cc..a23c56c 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
-@@ -265,6 +265,8 @@
+@@ -257,6 +257,8 @@ main (int argc, char **argv)
+ command_line.warn_mismatch = TRUE;
command_line.warn_search_mismatch = TRUE;
command_line.check_section_addresses = -1;
- command_line.disable_target_specific_optimizations = -1;
+ command_line.poison_system_directories = TRUE;
+ command_line.error_poison_system_directories = FALSE;
/* We initialize DEMANGLING based on the environment variable
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
-Index: b/ld/ld.texinfo
-===================================================================
---- a/ld/ld.texinfo
-+++ b/ld/ld.texinfo
-@@ -2156,6 +2156,18 @@
-
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
-+
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking. This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
- @end table
-
- @c man end
-Index: b/ld/lexsup.c
-===================================================================
+diff --git a/ld/lexsup.c b/ld/lexsup.c
+index 4cad209..be7d584 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
-@@ -498,6 +498,14 @@
+@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] =
+ { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
+ '\0', N_("=MODE"), N_("Control how orphan sections are handled."),
TWO_DASHES },
- { {"wrap", required_argument, NULL, OPTION_WRAP},
- '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
+ { {"no-poison-system-directories", no_argument, NULL,
-+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
++ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
+ '\0', NULL, N_("Do not warn for -L options using system directories"),
+ TWO_DASHES },
+ { {"error-poison-system-directories", no_argument, NULL,
-+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
+ '\0', NULL, N_("Give an error for -L options using system directories"),
+ TWO_DASHES },
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -510,6 +518,7 @@
+@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv)
int ingroup = 0;
char *default_dirlist = NULL;
char *shortopts;
@@ -242,19 +275,23 @@ Index: b/ld/lexsup.c
struct option *longopts;
struct option *really_longopts;
int last_optind;
-@@ -1427,9 +1436,21 @@
- einfo (_("%P%X: --hash-size needs a numeric argument\n"));
+@@ -1516,6 +1525,14 @@ parse_args (unsigned argc, char **argv)
}
break;
+
++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
++ command_line.poison_system_directories = FALSE;
++ break;
+
-+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+ command_line.poison_system_directories = FALSE;
-+ break;
++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
++ command_line.error_poison_system_directories = TRUE;
++ break;
+
-+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+ command_line.error_poison_system_directories = TRUE;
-+ break;
- }
+ case OPTION_PUSH_STATE:
+ input_flags.pushed = xmemdup (&input_flags,
+ sizeof (input_flags),
+@@ -1559,6 +1576,10 @@ parse_args (unsigned argc, char **argv)
+ command_line.soname = NULL;
}
+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
@@ -264,16 +301,6 @@ Index: b/ld/lexsup.c
while (ingroup)
{
lang_leave_group ();
-Index: b/ld/ldlex.h
-===================================================================
---- a/ld/ldlex.h
-+++ b/ld/ldlex.h
-@@ -136,6 +136,8 @@
- #endif /* ENABLE_PLUGINS */
- OPTION_DEFAULT_SCRIPT,
- OPTION_PRINT_OUTPUT_FORMAT,
-+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
-
- /* The initial parser states. */
+--
+2.4.3
+
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index 916b68c1c..15e7f1982 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -4,4 +4,4 @@ sha512 5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fb
sha512 0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2
sha512 e77e1b8dbbcbaf9ac2fae95c4403615808af3be03b2e1d32448cd3a7d32c43273f8bcace3f2de84ec120a982879295673029da306e2885dbf5f990584932cfc7 binutils-2.26.tar.bz2
# No hash for the ARC variant, comes from the github-helper:
-none xxx binutils-arc-2015.12.tar.gz
+none xxx binutils-arc-2016.03-rc2.tar.gz
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index ca39f0b14..340846def 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -9,7 +9,7 @@
BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
ifeq ($(BINUTILS_VERSION),)
ifeq ($(BR2_arc),y)
-BINUTILS_VERSION = arc-2015.12
+BINUTILS_VERSION = arc-2016.03-rc2
else
BINUTILS_VERSION = 2.25.1
endif