All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/4] Update binutils package
@ 2017-07-29 13:09 Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 1/4] binutils: bump 2.28.x series to 2.28.1 Thomas Petazzoni
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 13:09 UTC (permalink / raw)
  To: buildroot

Hello,

This patch series:

 * Update binutils 2.28.x to 2.28.1 (instead of 2.28)

 * Adds support for binutils 2.29.

 * Moves to using binutils 2.28.x as the default binutils version
   instead f 2.27.

 * Removes support for the older binutils 2.26.x.

It has been tested by building qemu_arm_vexpress_defconfig with both
binutils 2.28.1 and binutils 2.29, and checking that the system boots
fine under Qemu.

Best regards,

Thomas

Thomas Petazzoni (4):
  binutils: bump 2.28.x series to 2.28.1
  binutils: add support for binutils 2.29
  binutils: switch to use 2.28.x as the default version
  binutils: remove support for 2.26

 Config.in.legacy                                   |   8 ++
 package/binutils/2.26.1/0800-microblaze-musl.patch |  23 ----
 ...900-Correct-nios2-_gp-address-computation.patch | 108 ---------------
 ...on-reduce-number-of-messages-about-FDE-en.patch |  67 ---------
 ...-xtensa-fix-signedness-of-gas-relocations.patch | 101 --------------
 ...03-xtensa-fix-.init-.fini-literals-moving.patch | 149 ---------------------
 .../binutils/2.26.1/0904-bfin-fdpic-upstream.patch |  30 -----
 .../binutils/2.26.1/0905-bfin-rofixup-bug.patch    |  21 ---
 .../binutils/2.26.1/0906-microblaze-pr21180.patch  |  33 -----
 .../binutils/{2.28 => 2.28.1}/0120-sh-conf.patch   |   0
 .../{2.28 => 2.28.1}/0300-ld-makefile.patch        |   0
 .../0301-check-ldrunpath-length.patch              |   0
 .../0500-add-sysroot-fix-from-bug-3049.patch       |   0
 .../0600-poison-system-directories.patch           |   0
 .../{2.28 => 2.28.1}/0905-bfin-rofixup-bug.patch   |   0
 .../{2.28 => 2.28.1}/0906-microblaze-pr21180.patch |   0
 .../0120-sh-conf.patch => 2.29/0001-sh-conf.patch} |  22 +--
 .../0002-ld-makefile.patch}                        |  10 +-
 .../0003-check-ldrunpath-length.patch}             |  22 +--
 .../0004-add-sysroot-fix-from-bug-3049.patch}      |  23 ++--
 .../0005-poison-system-directories.patch}          |  56 ++++----
 ...LINKER-BUG-.rofixup-section-size-mismatch.patch |  31 +++++
 package/binutils/Config.in.host                    |  15 +--
 package/binutils/binutils.hash                     |   4 +-
 package/binutils/binutils.mk                       |   8 +-
 25 files changed, 122 insertions(+), 609 deletions(-)
 delete mode 100644 package/binutils/2.26.1/0800-microblaze-musl.patch
 delete mode 100644 package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch
 delete mode 100644 package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch
 delete mode 100644 package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch
 delete mode 100644 package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch
 delete mode 100644 package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch
 delete mode 100644 package/binutils/2.26.1/0905-bfin-rofixup-bug.patch
 delete mode 100644 package/binutils/2.26.1/0906-microblaze-pr21180.patch
 rename package/binutils/{2.28 => 2.28.1}/0120-sh-conf.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0300-ld-makefile.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0301-check-ldrunpath-length.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0500-add-sysroot-fix-from-bug-3049.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0600-poison-system-directories.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0905-bfin-rofixup-bug.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0906-microblaze-pr21180.patch (100%)
 rename package/binutils/{2.26.1/0120-sh-conf.patch => 2.29/0001-sh-conf.patch} (70%)
 rename package/binutils/{2.26.1/0300-ld-makefile.patch => 2.29/0002-ld-makefile.patch} (85%)
 rename package/binutils/{2.26.1/0301-check-ldrunpath-length.patch => 2.29/0003-check-ldrunpath-length.patch} (62%)
 rename package/binutils/{2.26.1/0500-add-sysroot-fix-from-bug-3049.patch => 2.29/0004-add-sysroot-fix-from-bug-3049.patch} (69%)
 rename package/binutils/{2.26.1/0600-poison-system-directories.patch => 2.29/0005-poison-system-directories.patch} (88%)
 create mode 100644 package/binutils/2.29/0006-Fixes-LINKER-BUG-.rofixup-section-size-mismatch.patch

-- 
2.9.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 1/4] binutils: bump 2.28.x series to 2.28.1
  2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
@ 2017-07-29 13:09 ` Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29 Thomas Petazzoni
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 13:09 UTC (permalink / raw)
  To: buildroot

binutils 2.28.1 is a bug-fix release of the 2.28.x branch, so let's
switch to it.

Since a xz-compressed tarball is available, we use it instead of the
bz2-compressed one.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/binutils/{2.28 => 2.28.1}/0120-sh-conf.patch                  | 0
 package/binutils/{2.28 => 2.28.1}/0300-ld-makefile.patch              | 0
 package/binutils/{2.28 => 2.28.1}/0301-check-ldrunpath-length.patch   | 0
 .../{2.28 => 2.28.1}/0500-add-sysroot-fix-from-bug-3049.patch         | 0
 .../binutils/{2.28 => 2.28.1}/0600-poison-system-directories.patch    | 0
 package/binutils/{2.28 => 2.28.1}/0905-bfin-rofixup-bug.patch         | 0
 package/binutils/{2.28 => 2.28.1}/0906-microblaze-pr21180.patch       | 0
 package/binutils/Config.in.host                                       | 4 ++--
 package/binutils/binutils.hash                                        | 2 +-
 package/binutils/binutils.mk                                          | 4 ++++
 10 files changed, 7 insertions(+), 3 deletions(-)
 rename package/binutils/{2.28 => 2.28.1}/0120-sh-conf.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0300-ld-makefile.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0301-check-ldrunpath-length.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0500-add-sysroot-fix-from-bug-3049.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0600-poison-system-directories.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0905-bfin-rofixup-bug.patch (100%)
 rename package/binutils/{2.28 => 2.28.1}/0906-microblaze-pr21180.patch (100%)

diff --git a/package/binutils/2.28/0120-sh-conf.patch b/package/binutils/2.28.1/0120-sh-conf.patch
similarity index 100%
rename from package/binutils/2.28/0120-sh-conf.patch
rename to package/binutils/2.28.1/0120-sh-conf.patch
diff --git a/package/binutils/2.28/0300-ld-makefile.patch b/package/binutils/2.28.1/0300-ld-makefile.patch
similarity index 100%
rename from package/binutils/2.28/0300-ld-makefile.patch
rename to package/binutils/2.28.1/0300-ld-makefile.patch
diff --git a/package/binutils/2.28/0301-check-ldrunpath-length.patch b/package/binutils/2.28.1/0301-check-ldrunpath-length.patch
similarity index 100%
rename from package/binutils/2.28/0301-check-ldrunpath-length.patch
rename to package/binutils/2.28.1/0301-check-ldrunpath-length.patch
diff --git a/package/binutils/2.28/0500-add-sysroot-fix-from-bug-3049.patch b/package/binutils/2.28.1/0500-add-sysroot-fix-from-bug-3049.patch
similarity index 100%
rename from package/binutils/2.28/0500-add-sysroot-fix-from-bug-3049.patch
rename to package/binutils/2.28.1/0500-add-sysroot-fix-from-bug-3049.patch
diff --git a/package/binutils/2.28/0600-poison-system-directories.patch b/package/binutils/2.28.1/0600-poison-system-directories.patch
similarity index 100%
rename from package/binutils/2.28/0600-poison-system-directories.patch
rename to package/binutils/2.28.1/0600-poison-system-directories.patch
diff --git a/package/binutils/2.28/0905-bfin-rofixup-bug.patch b/package/binutils/2.28.1/0905-bfin-rofixup-bug.patch
similarity index 100%
rename from package/binutils/2.28/0905-bfin-rofixup-bug.patch
rename to package/binutils/2.28.1/0905-bfin-rofixup-bug.patch
diff --git a/package/binutils/2.28/0906-microblaze-pr21180.patch b/package/binutils/2.28.1/0906-microblaze-pr21180.patch
similarity index 100%
rename from package/binutils/2.28/0906-microblaze-pr21180.patch
rename to package/binutils/2.28.1/0906-microblaze-pr21180.patch
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 03ddf62..3045cb5 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -17,7 +17,7 @@ config BR2_BINUTILS_VERSION_2_27_X
 	depends on !(BR2_arm && !BR2_USE_MMU)
 
 config BR2_BINUTILS_VERSION_2_28_X
-	bool "binutils 2.28"
+	bool "binutils 2.28.1"
 
 endchoice
 
@@ -26,7 +26,7 @@ config BR2_BINUTILS_VERSION
 	default "arc-2017.03"	if BR2_arc
 	default "2.26.1"	if BR2_BINUTILS_VERSION_2_26_X
 	default "2.27"		if BR2_BINUTILS_VERSION_2_27_X
-	default "2.28"		if BR2_BINUTILS_VERSION_2_28_X
+	default "2.28.1"	if BR2_BINUTILS_VERSION_2_28_X
 
 config BR2_BINUTILS_ENABLE_LTO
 	bool
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index 5a70620..563f23d 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -1,7 +1,7 @@
 # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum
 sha512  9d9165609fd3b0f20d616f9891fc8e2b466eb13e2bfce40125e12427f8f201d20e2b8322bb6cb2b45e8df812f0e8ac059149f8a1f69ba3ed9d86a35c6a540b67  binutils-2.26.1.tar.bz2
 sha512	cf276f84935312361a2ca077e04d0b469d23a3aed979d8ba5d92ea590904ffb2c2e7ed12cc842822bfc402836be86f479660cef3791aa62f3753d8a1a6f564cb  binutils-2.27.tar.bz2
-sha512	ede2e4e59a800260eea8c14eafbaee94e30abadafd5c419a3370f9f62213cf027d6400a1d4970b6958bd4d220e675dcd483a708107016e7abd5c99d7392ba8fd  binutils-2.28.tar.bz2
+sha512	dc5b6872ae01c07c12d38f3bb7ead06effc6da3265ac872e2d9c6104304f89f85f2645b029a43f308a7938a7299b1928d385205d0a2245674a621649032a138d  binutils-2.28.1.tar.xz
 
 # Locally calculated (fetched from Github)
 sha512  07d5639e74eafe8fced259870c1a7dedee67c534573dda53fb78ee1ffeec9e17479fdde41dccd03b1cf0248023acbef7f66013398b2f722e4a8891ac680d1d16  binutils-arc-2017.03.tar.gz
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index ec85ad6..30ced3f 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -21,7 +21,11 @@ BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz
 BINUTILS_FROM_GIT = y
 endif
 BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils
+ifeq ($(BINUTILS_VERSION),2.28.1)
+BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz
+else
 BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.bz2
+endif
 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
 BINUTILS_INSTALL_STAGING = YES
 BINUTILS_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29
  2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 1/4] binutils: bump 2.28.x series to 2.28.1 Thomas Petazzoni
@ 2017-07-29 13:09 ` Thomas Petazzoni
  2017-07-29 18:15   ` Waldemar Brodkorb
  2017-07-29 13:09 ` [Buildroot] [PATCH 3/4] binutils: switch to use 2.28.x as the default version Thomas Petazzoni
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 13:09 UTC (permalink / raw)
  To: buildroot

All patches from binutils 2.28 are kept, except patch
0906-microblaze-pr21180.patch, because it has been merged upstream as
of commit bd757ca7bf5886a4025ca02093fca1b8c5ce11a2. Other patches are
slightly adapted to differences that appeared in binutils 2.29.

The patches are now all Git formatted, so instead of having weird
sequence numbers, they have normal sequence numbers starting from 0001
and incrementing.

Since binutils 2.29 is now available as a .tar.xz tarball, we use this
format instead of .bz2 used for previous versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/binutils/2.29/0001-sh-conf.patch           |  48 ++++
 package/binutils/2.29/0002-ld-makefile.patch       |  41 +++
 .../2.29/0003-check-ldrunpath-length.patch         |  36 +++
 .../2.29/0004-add-sysroot-fix-from-bug-3049.patch  |  51 ++++
 .../2.29/0005-poison-system-directories.patch      | 306 +++++++++++++++++++++
 ...LINKER-BUG-.rofixup-section-size-mismatch.patch |  31 +++
 package/binutils/Config.in.host                    |   4 +
 package/binutils/binutils.hash                     |   1 +
 package/binutils/binutils.mk                       |   2 +
 9 files changed, 520 insertions(+)
 create mode 100644 package/binutils/2.29/0001-sh-conf.patch
 create mode 100644 package/binutils/2.29/0002-ld-makefile.patch
 create mode 100644 package/binutils/2.29/0003-check-ldrunpath-length.patch
 create mode 100644 package/binutils/2.29/0004-add-sysroot-fix-from-bug-3049.patch
 create mode 100644 package/binutils/2.29/0005-poison-system-directories.patch
 create mode 100644 package/binutils/2.29/0006-Fixes-LINKER-BUG-.rofixup-section-size-mismatch.patch

diff --git a/package/binutils/2.29/0001-sh-conf.patch b/package/binutils/2.29/0001-sh-conf.patch
new file mode 100644
index 0000000..3c9ef62
--- /dev/null
+++ b/package/binutils/2.29/0001-sh-conf.patch
@@ -0,0 +1,48 @@
+From fdb0d1d63d8dc30b319db174f2a90e681d8cd2ed Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:38:13 +0100
+Subject: [PATCH] sh-conf
+
+Likewise, binutils has no idea about any of these new targets either, so we
+fix that up too.. now we're able to actually build a real toolchain for
+sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
+inept targets than that one, really. Go look, I promise).
+
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+[Thomas: rebase on top of 2.29, in which sh64 support was removed.]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure    | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index be9dd89..3c0f4c6 100755
+--- a/configure
++++ b/configure
+@@ -3844,7 +3844,7 @@ case "${target}" in
+   or1k*-*-*)
+     noconfigdirs="$noconfigdirs gdb"
+     ;;
+-  sh-*-*)
++  sh*-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+diff --git a/configure.ac b/configure.ac
+index 532c5c2..4f40318 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1178,7 +1178,7 @@ case "${target}" in
+   or1k*-*-*)
+     noconfigdirs="$noconfigdirs gdb"
+     ;;
+-  sh-*-*)
++  sh*-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+-- 
+2.9.4
+
diff --git a/package/binutils/2.29/0002-ld-makefile.patch b/package/binutils/2.29/0002-ld-makefile.patch
new file mode 100644
index 0000000..a7cd71e
--- /dev/null
+++ b/package/binutils/2.29/0002-ld-makefile.patch
@@ -0,0 +1,41 @@
+From d4e18ebc6ad810167a2de84b185a5f0d65b9ec2d 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 625347f..d5334d2 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 ba25177..a2cf228 100644
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -446,7 +446,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.9.4
+
diff --git a/package/binutils/2.29/0003-check-ldrunpath-length.patch b/package/binutils/2.29/0003-check-ldrunpath-length.patch
new file mode 100644
index 0000000..3fbc503
--- /dev/null
+++ b/package/binutils/2.29/0003-check-ldrunpath-length.patch
@@ -0,0 +1,36 @@
+From 3bd211025c890ef2971958915d500a9bb2913a2a 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 d2551b6..70fcb56 100644
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1463,6 +1463,8 @@ fragment <<EOF
+ 	      && command_line.rpath == NULL)
+ 	    {
+ 	      path = (const char *) getenv ("LD_RUN_PATH");
++	      if ((path) && (strlen (path) == 0))
++	        path = NULL;
+ 	      if (path
+ 		  && gld${EMULATION_NAME}_search_needed (path, &n, force))
+ 		break;
+@@ -1740,6 +1742,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.9.4
+
diff --git a/package/binutils/2.29/0004-add-sysroot-fix-from-bug-3049.patch b/package/binutils/2.29/0004-add-sysroot-fix-from-bug-3049.patch
new file mode 100644
index 0000000..9e11840
--- /dev/null
+++ b/package/binutils/2.29/0004-add-sysroot-fix-from-bug-3049.patch
@@ -0,0 +1,51 @@
+From 378bda0e19d279535b3f4a0e448a658a534a5d67 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 | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index 3b37a0a..f7e5473 100644
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -338,18 +338,24 @@ 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.9.4
+
diff --git a/package/binutils/2.29/0005-poison-system-directories.patch b/package/binutils/2.29/0005-poison-system-directories.patch
new file mode 100644
index 0000000..a7c2761
--- /dev/null
+++ b/package/binutils/2.29/0005-poison-system-directories.patch
@@ -0,0 +1,306 @@
+From b100e9d16bfe6725b2624902af457ecfa490b150 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]
+
+Patch originally created by Mark Hatle, forward-ported to
+binutils 2.21 by Scott Garman.
+
+purpose:  warn for uses of system directories when cross linking
+
+Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
+
+2008-07-02  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * ld.h (args_type): Add error_poison_system_directories.
+    * ld.texinfo (--error-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.error_poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.error_poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --error-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-06-13  Joseph Myers  <joseph@codesourcery.com>
+
+    ld/
+    * config.in: Regenerate.
+    * ld.h (args_type): Add poison_system_directories.
+    * ld.texinfo (--no-poison-system-directories): Document.
+    * ldfile.c (ldfile_add_library_path): Check
+    command_line.poison_system_directories.
+    * ldmain.c (main): Initialize
+    command_line.poison_system_directories.
+    * lexsup.c (enum option_values): Add
+    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
+    (ld_options): Add --no-poison-system-directories.
+    (parse_args): Handle new option.
+
+2007-04-20  Joseph Myers  <joseph@codesourcery.com>
+
+    Merge from Sourcery G++ binutils 2.17:
+
+    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
+    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
+    ld/
+    * 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,
+    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
+
+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(+)
+
+diff --git a/ld/config.in b/ld/config.in
+index 5d91380..ffe84a7 100644
+--- a/ld/config.in
++++ b/ld/config.in
+@@ -21,6 +21,9 @@
+    language is requested. */
+ #undef ENABLE_NLS
+ 
++/* Define to warn for use of native system library directories */
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++
+ /* Additional extension a shared object might have. */
+ #undef EXTRA_SHLIB_EXTENSION
+ 
+diff --git a/ld/configure b/ld/configure
+index da20ab5..63e3da7 100755
+--- a/ld/configure
++++ b/ld/configure
+@@ -785,6 +785,7 @@ with_lib_path
+ enable_targets
+ enable_64_bit_bfd
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_compressed_debug_sections
+@@ -1443,6 +1444,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
++                          warn for use of native system library directories
+   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
+   --enable-got=<type>     GOT handling scheme (target, single, negative,
+                           multigot)
+@@ -15497,7 +15500,18 @@ else
+ fi
+ 
+ 
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++  enableval=$enable_poison_system_directories;
++else
++  enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
+ 
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
+ 
+ # Check whether --enable-got was given.
+ if test "${enable_got+set}" = set; then :
+diff --git a/ld/configure.ac b/ld/configure.ac
+index 34315e6..5ade9a0 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)
+ 
++AC_ARG_ENABLE([poison-system-directories],
++         AS_HELP_STRING([--enable-poison-system-directories],
++                [warn for use of native system library directories]),,
++         [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++       [1],
++       [Define to warn for use of native system library directories])
++fi
++
+ 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.
+diff --git a/ld/ld.h b/ld/ld.h
+index 162e156..7d6d7ef 100644
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -177,6 +177,14 @@ typedef struct
+      in the linker script.  */
+   bfd_boolean force_group_allocation;
+ 
++  /* 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 bb5f719..78501e4 100644
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -2480,6 +2480,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.
++
++ at kindex --no-poison-system-directories
++ at item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++ at 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.
++
++ at kindex --error-poison-system-directories
++ at 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 f7e5473..2cd84d3 100644
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
+     new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
+   else
+     new_dirs->name = xstrdup (name);
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++  if (command_line.poison_system_directories
++  && ((!strncmp (name, "/lib", 4))
++      || (!strncmp (name, "/usr/lib", 8))
++      || (!strncmp (name, "/usr/local/lib", 14))
++      || (!strncmp (name, "/usr/X11R6/lib", 14))))
++   {
++     if (command_line.error_poison_system_directories)
++       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++     else
++       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
++            "cross-compilation\n"), name);
++   }
++#endif
++
+ }
+ 
+ /* Try to open a BFD for a lang_input_statement.  */
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index 5aa7f6b..cb655e0 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -147,6 +147,8 @@ enum option_values
+   OPTION_REQUIRE_DEFINED_SYMBOL,
+   OPTION_ORPHAN_HANDLING,
+   OPTION_FORCE_GROUP_ALLOCATION,
++  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+ };
+ 
+ /* The initial parser states.  */
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index ee5ab11..5f6effd 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -270,6 +270,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.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
+diff --git a/ld/lexsup.c b/ld/lexsup.c
+index 08106bc..d619d50 100644
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -538,6 +538,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 },
++  { {"no-poison-system-directories", no_argument, NULL,
++    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},
++    '\0', NULL, N_("Give an error for -L options using system directories"),
++    TWO_DASHES },
+ };
+ 
+ #define OPTION_COUNT ARRAY_SIZE (ld_options)
+@@ -550,6 +558,7 @@ parse_args (unsigned argc, char **argv)
+   int ingroup = 0;
+   char *default_dirlist = NULL;
+   char *shortopts;
++  char *BR_paranoid_env;
+   struct option *longopts;
+   struct option *really_longopts;
+   int last_optind;
+@@ -1534,6 +1543,14 @@ parse_args (unsigned argc, char **argv)
+           }
+           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_PUSH_STATE:
+ 	  input_flags.pushed = xmemdup (&input_flags,
+ 					sizeof (input_flags),
+@@ -1577,6 +1594,10 @@ parse_args (unsigned argc, char **argv)
+       command_line.soname = NULL;
+     }
+ 
++  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
++  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
++    command_line.error_poison_system_directories = TRUE;
++
+   while (ingroup)
+     {
+       lang_leave_group ();
+-- 
+2.9.4
+
diff --git a/package/binutils/2.29/0006-Fixes-LINKER-BUG-.rofixup-section-size-mismatch.patch b/package/binutils/2.29/0006-Fixes-LINKER-BUG-.rofixup-section-size-mismatch.patch
new file mode 100644
index 0000000..e5409ef
--- /dev/null
+++ b/package/binutils/2.29/0006-Fixes-LINKER-BUG-.rofixup-section-size-mismatch.patch
@@ -0,0 +1,31 @@
+From 122de3b633f4273826a2d01702d7c515f93ec2be Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Sat, 29 Jul 2017 14:08:20 +0200
+Subject: [PATCH] Fixes: LINKER BUG: .rofixup section size mismatch
+
+Workaround from adi-toolchain commit:
+af414ec1fb628ddb1562f062f3db49823ca14ca2
+[#6798] binutils-2.21/bfd: temp workaround for rofixup mismatch errors.
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ bfd/elf32-bfin.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
+index b3e09bd..660eec5 100644
+--- a/bfd/elf32-bfin.c
++++ b/bfd/elf32-bfin.c
+@@ -4845,7 +4845,8 @@ bfinfdpic_check_relocs (bfd *abfd, struct bfd_link_info *info,
+ 
+ 	case R_BFIN_FUNCDESC:
+ 	  picrel->fd++;
+-	  picrel->relocsfd++;
++	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
++	    picrel->relocsfd++;
+ 	  break;
+ 
+         /* This relocation describes the C++ object vtable hierarchy.
+-- 
+2.9.4
+
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 3045cb5..0840e8a 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -19,6 +19,9 @@ config BR2_BINUTILS_VERSION_2_27_X
 config BR2_BINUTILS_VERSION_2_28_X
 	bool "binutils 2.28.1"
 
+config BR2_BINUTILS_VERSION_2_29_X
+	bool "binutils 2.29"
+
 endchoice
 
 config BR2_BINUTILS_VERSION
@@ -27,6 +30,7 @@ config BR2_BINUTILS_VERSION
 	default "2.26.1"	if BR2_BINUTILS_VERSION_2_26_X
 	default "2.27"		if BR2_BINUTILS_VERSION_2_27_X
 	default "2.28.1"	if BR2_BINUTILS_VERSION_2_28_X
+	default "2.29"		if BR2_BINUTILS_VERSION_2_29_X
 
 config BR2_BINUTILS_ENABLE_LTO
 	bool
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index 563f23d..f6ac10d 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -2,6 +2,7 @@
 sha512  9d9165609fd3b0f20d616f9891fc8e2b466eb13e2bfce40125e12427f8f201d20e2b8322bb6cb2b45e8df812f0e8ac059149f8a1f69ba3ed9d86a35c6a540b67  binutils-2.26.1.tar.bz2
 sha512	cf276f84935312361a2ca077e04d0b469d23a3aed979d8ba5d92ea590904ffb2c2e7ed12cc842822bfc402836be86f479660cef3791aa62f3753d8a1a6f564cb  binutils-2.27.tar.bz2
 sha512	dc5b6872ae01c07c12d38f3bb7ead06effc6da3265ac872e2d9c6104304f89f85f2645b029a43f308a7938a7299b1928d385205d0a2245674a621649032a138d  binutils-2.28.1.tar.xz
+sha512  bb227c7af65133a61bbde8be4104a543f4185fce8c8e7be22c36d92d121d28b5413d42f18c7e987d035d6312c542d0e2aaca8930386a4ce26d7c9d7248145398  binutils-2.29.tar.xz
 
 # Locally calculated (fetched from Github)
 sha512  07d5639e74eafe8fced259870c1a7dedee67c534573dda53fb78ee1ffeec9e17479fdde41dccd03b1cf0248023acbef7f66013398b2f722e4a8891ac680d1d16  binutils-arc-2017.03.tar.gz
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 30ced3f..2e09ba7 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -23,6 +23,8 @@ endif
 BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils
 ifeq ($(BINUTILS_VERSION),2.28.1)
 BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz
+else ifeq ($(BINUTILS_VERSION),2.29)
+BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.xz
 else
 BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.bz2
 endif
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 3/4] binutils: switch to use 2.28.x as the default version
  2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 1/4] binutils: bump 2.28.x series to 2.28.1 Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29 Thomas Petazzoni
@ 2017-07-29 13:09 ` Thomas Petazzoni
  2017-07-29 13:09 ` [Buildroot] [PATCH 4/4] binutils: remove support for 2.26 Thomas Petazzoni
  2017-07-31 19:27 ` [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
  4 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 13:09 UTC (permalink / raw)
  To: buildroot

Now that binutils 2.29 has been released, it is time to move to
binutils 2.28.x as the default binutils version, instead of 2.27.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/binutils/Config.in.host | 3 +--
 package/binutils/binutils.mk    | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 0840e8a..ef6aadb 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -2,8 +2,7 @@ comment "Binutils Options"
 
 choice
 	prompt "Binutils Version"
-	default BR2_BINUTILS_VERSION_2_27_X
-	default BR2_BINUTILS_VERSION_2_28_X if (BR2_arm && !BR2_USE_MMU)
+	default BR2_BINUTILS_VERSION_2_28_X
 	depends on !BR2_arc
 	help
 	  Select the version of binutils you wish to use.
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 2e09ba7..768f084 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -11,7 +11,7 @@ ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BR2_arc),y)
 BINUTILS_VERSION = arc-2017.03
 else
-BINUTILS_VERSION = 2.27
+BINUTILS_VERSION = 2.28.1
 endif
 endif # BINUTILS_VERSION
 
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 4/4] binutils: remove support for 2.26
  2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2017-07-29 13:09 ` [Buildroot] [PATCH 3/4] binutils: switch to use 2.28.x as the default version Thomas Petazzoni
@ 2017-07-29 13:09 ` Thomas Petazzoni
  2017-07-31 19:27 ` [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
  4 siblings, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 13:09 UTC (permalink / raw)
  To: buildroot

Now that binutils 2.29 has been introduced, and we have moved to
2.28.1 as the default version, it is time to drop support for binutils
2.26.x.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Config.in.legacy                                   |   8 +
 package/binutils/2.26.1/0120-sh-conf.patch         |  46 ----
 package/binutils/2.26.1/0300-ld-makefile.patch     |  41 ---
 .../2.26.1/0301-check-ldrunpath-length.patch       |  36 ---
 .../0500-add-sysroot-fix-from-bug-3049.patch       |  52 ----
 .../2.26.1/0600-poison-system-directories.patch    | 306 ---------------------
 package/binutils/2.26.1/0800-microblaze-musl.patch |  23 --
 ...900-Correct-nios2-_gp-address-computation.patch | 108 --------
 ...on-reduce-number-of-messages-about-FDE-en.patch |  67 -----
 ...-xtensa-fix-signedness-of-gas-relocations.patch | 101 -------
 ...03-xtensa-fix-.init-.fini-literals-moving.patch | 149 ----------
 .../binutils/2.26.1/0904-bfin-fdpic-upstream.patch |  30 --
 .../binutils/2.26.1/0905-bfin-rofixup-bug.patch    |  21 --
 .../binutils/2.26.1/0906-microblaze-pr21180.patch  |  33 ---
 package/binutils/Config.in.host                    |   4 -
 package/binutils/binutils.hash                     |   1 -
 16 files changed, 8 insertions(+), 1018 deletions(-)
 delete mode 100644 package/binutils/2.26.1/0120-sh-conf.patch
 delete mode 100644 package/binutils/2.26.1/0300-ld-makefile.patch
 delete mode 100644 package/binutils/2.26.1/0301-check-ldrunpath-length.patch
 delete mode 100644 package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch
 delete mode 100644 package/binutils/2.26.1/0600-poison-system-directories.patch
 delete mode 100644 package/binutils/2.26.1/0800-microblaze-musl.patch
 delete mode 100644 package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch
 delete mode 100644 package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch
 delete mode 100644 package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch
 delete mode 100644 package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch
 delete mode 100644 package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch
 delete mode 100644 package/binutils/2.26.1/0905-bfin-rofixup-bug.patch
 delete mode 100644 package/binutils/2.26.1/0906-microblaze-pr21180.patch

diff --git a/Config.in.legacy b/Config.in.legacy
index d2e6325..693dc95 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -145,6 +145,14 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.08"
 
+config BR2_BINUTILS_VERSION_2_26_X
+	bool "binutils version 2.26 support removed"
+	select BR2_LEGACY
+	help
+	  Support for binutils version 2.26 has been removed. The
+	  current default version (2.28 or later) has been selected
+	  instead.
+
 config BR2_XTENSA_OVERLAY_DIR
 	string "The BR2_XTENSA_OVERLAY_DIR option has been removed"
 	help
diff --git a/package/binutils/2.26.1/0120-sh-conf.patch b/package/binutils/2.26.1/0120-sh-conf.patch
deleted file mode 100644
index cc14ef4..0000000
--- a/package/binutils/2.26.1/0120-sh-conf.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 1ceee199e9a32034c6def7700fdbb26335ca76a3 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@gmail.com>
-Date: Fri, 25 Dec 2015 11:38:13 +0100
-Subject: [PATCH] sh-conf
-
-Likewise, binutils has no idea about any of these new targets either, so we
-fix that up too.. now we're able to actually build a real toolchain for
-sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
-inept targets than that one, really. Go look, I promise).
-
-[Romain: rebase on top of 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- configure    | 2 +-
- configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index 34b66f7..905bc7b 100755
---- a/configure
-+++ b/configure
-@@ -3939,7 +3939,7 @@ case "${target}" in
-   or1k*-*-*)
-     noconfigdirs="$noconfigdirs gdb"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
-diff --git a/configure.ac b/configure.ac
-index 4977d97..1e69ee2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1276,7 +1276,7 @@ case "${target}" in
-   or1k*-*-*)
-     noconfigdirs="$noconfigdirs gdb"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
--- 
-2.4.3
-
diff --git a/package/binutils/2.26.1/0300-ld-makefile.patch b/package/binutils/2.26.1/0300-ld-makefile.patch
deleted file mode 100644
index 73cc098..0000000
--- a/package/binutils/2.26.1/0300-ld-makefile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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/2.26.1/0301-check-ldrunpath-length.patch b/package/binutils/2.26.1/0301-check-ldrunpath-length.patch
deleted file mode 100644
index 3b4c204..0000000
--- a/package/binutils/2.26.1/0301-check-ldrunpath-length.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-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/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch b/package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch
deleted file mode 100644
index f67a43e..0000000
--- a/package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-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/2.26.1/0600-poison-system-directories.patch b/package/binutils/2.26.1/0600-poison-system-directories.patch
deleted file mode 100644
index d16994e..0000000
--- a/package/binutils/2.26.1/0600-poison-system-directories.patch
+++ /dev/null
@@ -1,306 +0,0 @@
-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]
-
-Patch originally created by Mark Hatle, forward-ported to
-binutils 2.21 by Scott Garman.
-
-purpose:  warn for uses of system directories when cross linking
-
-Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-
-2008-07-02  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * ld.h (args_type): Add error_poison_system_directories.
-    * ld.texinfo (--error-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.error_poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.error_poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --error-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-06-13  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * config.in: Regenerate.
-    * ld.h (args_type): Add poison_system_directories.
-    * ld.texinfo (--no-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --no-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-04-20  Joseph Myers  <joseph@codesourcery.com>
-
-    Merge from Sourcery G++ binutils 2.17:
-
-    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
-    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
-    ld/
-    * 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,
-    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-
-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(+)
-
-diff --git a/ld/config.in b/ld/config.in
-index 276fb77..35c58eb 100644
---- a/ld/config.in
-+++ b/ld/config.in
-@@ -14,6 +14,9 @@
-    language is requested. */
- #undef ENABLE_NLS
- 
-+/* Define to warn for use of native system library directories */
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+
- /* Additional extension a shared object might have. */
- #undef EXTRA_SHLIB_EXTENSION
- 
-diff --git a/ld/configure b/ld/configure
-index a446283..d1f9504 100755
---- a/ld/configure
-+++ b/ld/configure
-@@ -786,6 +786,7 @@ with_lib_path
- enable_targets
- enable_64_bit_bfd
- with_sysroot
-+enable_poison_system_directories
- enable_gold
- enable_got
- 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
-+                          warn for use of native system library directories
-   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
-   --enable-got=<type>     GOT handling scheme (target, single, negative,
-                           multigot)
-@@ -15491,7 +15494,18 @@ else
- fi
- 
- 
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+  enableval=$enable_poison_system_directories;
-+else
-+  enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
- 
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
- 
- # Check whether --enable-got was given.
- if test "${enable_got+set}" = set; then :
-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)
- 
-+AC_ARG_ENABLE([poison-system-directories],
-+         AS_HELP_STRING([--enable-poison-system-directories],
-+                [warn for use of native system library directories]),,
-+         [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+       [1],
-+       [Define to warn for use of native system library directories])
-+fi
-+
- 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.
-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.
-+
-+ at kindex --no-poison-system-directories
-+ at item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+ at 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.
-+
-+ at kindex --error-poison-system-directories
-+ at 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
-@@ -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);
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (command_line.poison_system_directories
-+  && ((!strncmp (name, "/lib", 4))
-+      || (!strncmp (name, "/usr/lib", 8))
-+      || (!strncmp (name, "/usr/local/lib", 14))
-+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
-+   {
-+     if (command_line.error_poison_system_directories)
-+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+     else
-+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+   }
-+#endif
-+
- }
- 
- /* Try to open a BFD for a lang_input_statement.  */
-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,
- };
- 
- /* 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
-@@ -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.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
-diff --git a/ld/lexsup.c b/ld/lexsup.c
-index 4cad209..be7d584 100644
---- a/ld/lexsup.c
-+++ b/ld/lexsup.c
-@@ -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 },
-+  { {"no-poison-system-directories", no_argument, NULL,
-+    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},
-+    '\0', NULL, N_("Give an error for -L options using system directories"),
-+    TWO_DASHES },
- };
- 
- #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv)
-   int ingroup = 0;
-   char *default_dirlist = NULL;
-   char *shortopts;
-+  char *BR_paranoid_env;
-   struct option *longopts;
-   struct option *really_longopts;
-   int last_optind;
-@@ -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_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");
-+  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-+    command_line.error_poison_system_directories = TRUE;
-+
-   while (ingroup)
-     {
-       lang_leave_group ();
--- 
-2.4.3
-
diff --git a/package/binutils/2.26.1/0800-microblaze-musl.patch b/package/binutils/2.26.1/0800-microblaze-musl.patch
deleted file mode 100644
index 5e45058..0000000
--- a/package/binutils/2.26.1/0800-microblaze-musl.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Fix the genetation of GOT entries for the Microblaze target.
-
-PR target/19516
-* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
-Always produce a RELATIVE reloc for a local symbol.
-
-[Taken from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=47993b4af18c6ef1cad300f6393bf896d3cb5e5c.]
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur binutils-2.26.1.orig/bfd/elf32-microblaze.c binutils-2.26.1/bfd/elf32-microblaze.c
---- binutils-2.26.1.orig/bfd/elf32-microblaze.c	2015-11-13 09:27:40.000000000 +0100
-+++ binutils-2.26.1/bfd/elf32-microblaze.c	2016-10-20 19:06:58.655565765 +0200
-@@ -3296,8 +3296,8 @@
-          The entry in the global offset table will already have been
-          initialized in the relocate_section function.  */
-       if (bfd_link_pic (info)
--          && (info->symbolic || h->dynindx == -1)
--          && h->def_regular)
-+	  && ((info->symbolic && h->def_regular)
-+		|| h->dynindx == -1))
-         {
-           asection *sec = h->root.u.def.section;
-           microblaze_elf_output_dynamic_relocation (output_bfd,
diff --git a/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch b/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch
deleted file mode 100644
index 81986f5..0000000
--- a/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 5eeb7401eed2f26d5fc255de816ca70a2cb9374e Mon Sep 17 00:00:00 2001
-From: Sandra Loosemore <sandra@codesourcery.com>
-Date: Sun, 27 Dec 2015 12:30:26 -0800
-Subject: [PATCH 900/901] Correct nios2 _gp address computation.
-
-2015-12-27  Sandra Loosemore  <sandra@codesourcery.com>
-
-	bfd/
-	* elf32-nios2.c (nios2_elf_assign_gp): Correct computation of _gp
-	address.
-	(nios2_elf32_relocate_section): Tidy code for R_NIOS2_GPREL error
-	messages.
-
-[Romain:
-  - backport upstream patch on 2.26
-  - drop bfd/ChangeLog entry]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- bfd/elf32-nios2.c | 31 +++++++++++++++++++++----------
- 1 file changed, 21 insertions(+), 10 deletions(-)
-
-diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
-index 6b29d8b..01ebd6e 100644
---- a/bfd/elf32-nios2.c
-+++ b/bfd/elf32-nios2.c
-@@ -3086,7 +3086,15 @@ lookup:
- 	case bfd_link_hash_defined:
- 	case bfd_link_hash_defweak:
- 	  gp_found = TRUE;
--	  *pgp = lh->u.def.value;
-+	  {
-+	    asection *sym_sec = lh->u.def.section;
-+	    bfd_vma sym_value = lh->u.def.value;
-+
-+	    if (sym_sec->output_section)
-+	      sym_value = (sym_value + sym_sec->output_offset
-+			   + sym_sec->output_section->vma);
-+	    *pgp = sym_value;
-+	  }
- 	  break;
- 	case bfd_link_hash_indirect:
- 	case bfd_link_hash_warning:
-@@ -3719,7 +3727,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
-       struct elf32_nios2_link_hash_entry *eh;
-       bfd_vma relocation;
-       bfd_vma gp;
--      bfd_vma reloc_address;
-       bfd_reloc_status_type r = bfd_reloc_ok;
-       const char *name = NULL;
-       int r_type;
-@@ -3762,12 +3769,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
-       if (bfd_link_relocatable (info))
- 	continue;
- 
--      if (sec && sec->output_section)
--	reloc_address = (sec->output_section->vma + sec->output_offset
--			 + rel->r_offset);
--      else
--	reloc_address = 0;
--
-       if (howto)
- 	{
- 	  switch (howto->type)
-@@ -3816,6 +3817,15 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- 	      /* Turns an absolute address into a gp-relative address.  */
- 	      if (!nios2_elf_assign_gp (output_bfd, &gp, info))
- 		{
-+		  bfd_vma reloc_address;
-+
-+		  if (sec && sec->output_section)
-+		    reloc_address = (sec->output_section->vma
-+				     + sec->output_offset
-+				     + rel->r_offset);
-+		  else
-+		    reloc_address = 0;
-+
- 		  format = _("global pointer relative relocation at address "
- 			     "0x%08x when _gp not defined\n");
- 		  sprintf (msgbuf, format, reloc_address);
-@@ -3825,7 +3835,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- 	      else
- 		{
- 		  bfd_vma symbol_address = rel->r_addend + relocation;
--		  relocation = relocation + rel->r_addend - gp;
-+		  relocation = symbol_address - gp;
- 		  rel->r_addend = 0;
- 		  if (((signed) relocation < -32768
- 		       || (signed) relocation > 32767)
-@@ -3833,6 +3843,8 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- 			  || h->root.type == bfd_link_hash_defined
- 			  || h->root.type == bfd_link_hash_defweak))
- 		    {
-+		      if (h)
-+			name = h->root.root.string;
- 		      format = _("Unable to reach %s (at 0x%08x) from the "
- 				 "global pointer (at 0x%08x) because the "
- 				 "offset (%d) is out of the allowed range, "
-@@ -3848,7 +3860,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- 						  rel->r_offset, relocation,
- 						  rel->r_addend);
- 		}
--
- 	      break;
- 	    case R_NIOS2_UJMP:
- 	      r = nios2_elf32_do_ujmp_relocate (input_bfd, howto,
--- 
-2.4.3
-
diff --git a/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch b/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch
deleted file mode 100644
index a490780..0000000
--- a/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 39c481c2fb0e7fb127a15facf70b55d517462809 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@gmail.com>
-Date: Sat, 6 Feb 2016 00:35:31 +0100
-Subject: [PATCH 901/901] Fix assertion, reduce number of messages about FDE
- encoding
-
-Patch by Nick Clifton [1]
-
-[1] https://sourceware.org/bugzilla/show_bug.cgi?id=19405
-
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- bfd/elf-eh-frame.c | 17 ++++++++++++++---
- bfd/elf32-nios2.c  |  4 ++--
- 2 files changed, 16 insertions(+), 5 deletions(-)
-
-diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
-index e303189..e79bff0 100644
---- a/bfd/elf-eh-frame.c
-+++ b/bfd/elf-eh-frame.c
-@@ -1369,14 +1369,25 @@ _bfd_elf_discard_section_eh_frame
- 		     && ent->make_relative == 0)
- 		    || (ent->fde_encoding & 0x70) == DW_EH_PE_aligned))
- 	      {
-+		static int num_warnings_issued = 0;
- 		/* If a shared library uses absolute pointers
- 		   which we cannot turn into PC relative,
- 		   don't create the binary search table,
- 		   since it is affected by runtime relocations.  */
- 		hdr_info->u.dwarf.table = FALSE;
--		(*info->callbacks->einfo)
--		  (_("%P: FDE encoding in %B(%A) prevents .eh_frame_hdr"
--		     " table being created.\n"), abfd, sec);
-+		if (num_warnings_issued < 10)
-+		  {
-+		    (*info->callbacks->einfo)
-+		      (_("%P: FDE encoding in %B(%A) prevents .eh_frame_hdr"
-+			 " table being created.\n"), abfd, sec);
-+		    num_warnings_issued ++;
-+		  }
-+		else if (num_warnings_issued == 10)
-+		  {
-+		    (*info->callbacks->einfo)
-+		      (_("%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n"));
-+		    num_warnings_issued ++;
-+		  }
- 	      }
- 	    ent->removed = 0;
- 	    hdr_info->u.dwarf.fde_count++;
-diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
-index 01ebd6e..d1b7f83 100644
---- a/bfd/elf32-nios2.c
-+++ b/bfd/elf32-nios2.c
-@@ -1905,8 +1905,8 @@ nios2_elf32_install_imm16 (asection *sec, bfd_vma offset, bfd_vma value)
- {
-   bfd_vma word = bfd_get_32 (sec->owner, sec->contents + offset);
- 
--  BFD_ASSERT(value <= 0xffff);
--
-+  BFD_ASSERT (value <= 0xffff || ((bfd_signed_vma) value) >= -0xffff);
-+  
-   bfd_put_32 (sec->owner, word | ((value & 0xffff) << 6),
- 	      sec->contents + offset);
- }
--- 
-2.4.3
-
diff --git a/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch b/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch
deleted file mode 100644
index 4ba2f75..0000000
--- a/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From eb3e02b484ff75f4a2f54192422a88baa275bdfc Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 2 Feb 2016 17:11:38 +0300
-Subject: [PATCH] xtensa: fix signedness of gas relocations
-
-Change 1058c7532d0b "Use signed data type for R_XTENSA_DIFF* relocation
-offsets." changed signedness of BFD_RELOC_XTENSA_DIFF* relocations
-substituted for BFD_RELOC_*. This made it impossible to encode arbitrary
-8-, 16- and 32-bit values, which broke e.g. debug info encoding by .loc
-directive. Revert this part and add test.
-
-gas/
-2016-02-03  Max Filippov  <jcmvbkbc@gmail.com>
-	* config/tc-xtensa.c (md_apply_fix): Mark BFD_RELOC_XTENSA_DIFF*
-	substitutions for BFD_RELOC_* as unsigned.
-
-gas/testsuite/
-2016-02-03  Max Filippov  <jcmvbkbc@gmail.com>
-	* gas/xtensa/all.exp: Add loc to list of xtensa tests.
-	* gas/xtensa/loc.d: New file: loc test result patterns.
-	* gas/xtensa/loc.s: New file: loc test.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-[Rebase on 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- gas/config/tc-xtensa.c           |  6 +++---
- gas/testsuite/gas/xtensa/all.exp |  1 +
- gas/testsuite/gas/xtensa/loc.d   | 10 ++++++++++
- gas/testsuite/gas/xtensa/loc.s   |  7 +++++++
- 4 files changed, 21 insertions(+), 3 deletions(-)
- create mode 100644 gas/testsuite/gas/xtensa/loc.d
- create mode 100644 gas/testsuite/gas/xtensa/loc.s
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index d707da8..f623add 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -5961,15 +5961,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
- 	    {
- 	    case BFD_RELOC_8:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    case BFD_RELOC_16:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    case BFD_RELOC_32:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    default:
- 	      break;
-diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp
-index db39629..4daeff2 100644
---- a/gas/testsuite/gas/xtensa/all.exp
-+++ b/gas/testsuite/gas/xtensa/all.exp
-@@ -101,6 +101,7 @@ if [istarget xtensa*-*-*] then {
-     run_dump_test "trampoline"
-     run_dump_test "first_frag_align"
-     run_dump_test "auto-litpools"
-+    run_dump_test "loc"
- }
- 
- if [info exists errorInfo] then {
-diff --git a/gas/testsuite/gas/xtensa/loc.d b/gas/testsuite/gas/xtensa/loc.d
-new file mode 100644
-index 0000000..71983cc
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/loc.d
-@@ -0,0 +1,10 @@
-+#as:
-+#objdump: -r
-+#name: .loc directive relocs
-+
-+.*: +file format .*xtensa.*
-+
-+RELOCATION RECORDS FOR \[\.debug_line\]:
-+#...
-+.*R_XTENSA_DIFF16.*\.text\+0x00009c42
-+#...
-diff --git a/gas/testsuite/gas/xtensa/loc.s b/gas/testsuite/gas/xtensa/loc.s
-new file mode 100644
-index 0000000..029e14e
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/loc.s
-@@ -0,0 +1,7 @@
-+	.text
-+	.file 1 "loc.s"
-+	.loc 1 3
-+	nop
-+	.space 40000
-+	.loc 1 5
-+	nop
--- 
-2.4.3
-
diff --git a/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch b/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch
deleted file mode 100644
index ead3e42..0000000
--- a/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 7db2accc3fdea0aaa0c3a76a413d8e8030e022c3 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 16 Feb 2016 02:23:28 +0300
-Subject: [PATCH] xtensa: fix .init/.fini literals moving
-
-Despite the documentation and the comment in xtensa_move_literals, in
-the presence of --text-section-literals and --auto-litpools literals are
-moved from the separate literal sections into .init and .fini, because
-the check in the xtensa_move_literals is incorrect.
-
-This moving was broken with introduction of auto litpools: some literals
-now may be lost. This happens because literal frags emitted from .init
-and .fini are not closed when new .literal_position marks new literal
-pool. Then frag_align(2, 0, 0) changes type of the last literal frag to
-rs_align. rs_align frags are skipped in the xtensa_move_literals. As a
-result fixups against such literals are not moved out of .init.literal/
-.fini.literal sections producing the following assembler error:
-
-  test.S: Warning: fixes not all moved from .init.literal
-  test.S: Internal error!
-
-Fix check for .init.literal/.fini.literal in the xtensa_move_literals
-and don't let it move literals from there in the presence of
---text-section-literals or --auto-litpools.
-
-2016-02-17  Max Filippov  <jcmvbkbc@gmail.com>
-gas/
-	* config/tc-xtensa.c (xtensa_move_literals): Fix check for
-	.init.literal/.fini.literal section name.
-	* testsuite/gas/xtensa/all.exp: Add init-fini-literals to the
-	list of xtensa tests.
-	* testsuite/gas/xtensa/init-fini-literals.d: New file:
-	init-fini-literals test result patterns.
-	* testsuite/gas/xtensa/init-fini-literals.s: New file:
-	init-fini-literals test.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: 4111950f363221c4641dc2f33bea61cc94f34906
-
- gas/config/tc-xtensa.c                        | 12 ++++++++++--
- gas/testsuite/gas/xtensa/all.exp              |  1 +
- gas/testsuite/gas/xtensa/init-fini-literals.d | 24 ++++++++++++++++++++++++
- gas/testsuite/gas/xtensa/init-fini-literals.s | 19 +++++++++++++++++++
- 4 files changed, 54 insertions(+), 2 deletions(-)
- create mode 100644 gas/testsuite/gas/xtensa/init-fini-literals.d
- create mode 100644 gas/testsuite/gas/xtensa/init-fini-literals.s
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index 36a06cc..5773634 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -11061,6 +11061,10 @@ xtensa_move_literals (void)
-   fixS *fix, *next_fix, **fix_splice;
-   sym_list *lit;
-   struct litpool_seg *lps;
-+  const char *init_name = INIT_SECTION_NAME;
-+  const char *fini_name = FINI_SECTION_NAME;
-+  int init_name_len = strlen(init_name);
-+  int fini_name_len = strlen(fini_name);
- 
-   mark_literal_frags (literal_head->next);
- 
-@@ -11171,9 +11175,13 @@ xtensa_move_literals (void)
- 
-   for (segment = literal_head->next; segment; segment = segment->next)
-     {
-+      const char *seg_name = segment_name (segment->seg);
-+
-       /* Keep the literals for .init and .fini in separate sections.  */
--      if (!strcmp (segment_name (segment->seg), INIT_SECTION_NAME)
--	  || !strcmp (segment_name (segment->seg), FINI_SECTION_NAME))
-+      if ((!memcmp (seg_name, init_name, init_name_len) &&
-+	   !strcmp (seg_name + init_name_len, ".literal")) ||
-+	  (!memcmp (seg_name, fini_name, fini_name_len) &&
-+	   !strcmp (seg_name + fini_name_len, ".literal")))
- 	continue;
- 
-       frchain_from = seg_info (segment->seg)->frchainP;
-diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp
-index 7ff7bd7..6b67320 100644
---- a/gas/testsuite/gas/xtensa/all.exp
-+++ b/gas/testsuite/gas/xtensa/all.exp
-@@ -102,6 +102,7 @@ if [istarget xtensa*-*-*] then {
-     run_dump_test "first_frag_align"
-     run_dump_test "auto-litpools"
-     run_dump_test "loc"
-+    run_dump_test "init-fini-literals"
- }
- 
- if [info exists errorInfo] then {
-diff --git a/gas/testsuite/gas/xtensa/init-fini-literals.d b/gas/testsuite/gas/xtensa/init-fini-literals.d
-new file mode 100644
-index 0000000..19ed121
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/init-fini-literals.d
-@@ -0,0 +1,24 @@
-+#as: --text-section-literals
-+#objdump: -r
-+#name: check that literals for .init and .fini always go to separate sections
-+
-+.*: +file format .*xtensa.*
-+#...
-+RELOCATION RECORDS FOR \[\.init\.literal\]:
-+#...
-+00000000 R_XTENSA_PLT      init
-+#...
-+RELOCATION RECORDS FOR \[\.fini\.literal\]:
-+#...
-+00000000 R_XTENSA_PLT      fini
-+#...
-+RELOCATION RECORDS FOR \[\.init\]:
-+#...
-+.* R_XTENSA_SLOT0_OP  \.init\.literal
-+.* R_XTENSA_SLOT0_OP  \.init\.literal\+0x00000004
-+#...
-+RELOCATION RECORDS FOR \[\.fini\]:
-+#...
-+.* R_XTENSA_SLOT0_OP  \.fini\.literal
-+.* R_XTENSA_SLOT0_OP  \.fini\.literal\+0x00000004
-+#...
-diff --git a/gas/testsuite/gas/xtensa/init-fini-literals.s b/gas/testsuite/gas/xtensa/init-fini-literals.s
-new file mode 100644
-index 0000000..7c9ec17
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/init-fini-literals.s
-@@ -0,0 +1,19 @@
-+	.section	.init,"ax", at progbits
-+	.literal_position
-+	.literal .LC0, init at PLT
-+	.literal_position
-+	.literal .LC1, 1
-+	.align	4
-+
-+	l32r	a2, .LC0
-+	l32r	a2, .LC1
-+
-+	.section	.fini,"ax", at progbits
-+	.literal_position
-+	.literal .LC2, fini at PLT
-+	.literal_position
-+	.literal .LC3, 1
-+	.align	4
-+
-+	l32r	a2, .LC2
-+	l32r	a2, .LC3
--- 
-2.1.4
-
diff --git a/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch b/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch
deleted file mode 100644
index ffbacc4..0000000
--- a/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ed3056ebdb9795446157af03d3e08fbb93c1b01d Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Tue, 29 Mar 2016 10:24:16 +0100
-Subject: [PATCH] Relax assertion in BFIN linker to allow for discard GOT relocs.
-
-	PR 17334
-	* elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax
-	assertion on the size of the got section to allow it to be bigger
-	than the number of relocs.
-diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
-index 7cc8b6d..b2fcf38 100644
---- a/bfd/elf32-bfin.c
-+++ b/bfd/elf32-bfin.c
-@@ -4457,7 +4457,13 @@ elf32_bfinfdpic_finish_dynamic_sections (bfd *output_bfd,
-   if (bfinfdpic_got_section (info))
-     {
-       BFD_ASSERT (bfinfdpic_gotrel_section (info)->size
--		  == (bfinfdpic_gotrel_section (info)->reloc_count
-+		  /* PR 17334: It appears that the GOT section can end up
-+		     being bigger than the number of relocs.  Presumably
-+		     because some relocs have been deleted.  A test case has
-+		     yet to be generated for verify this, but in the meantime
-+		     the test below has been changed from == to >= so that
-+		     applications can continue to be built.  */
-+		  >= (bfinfdpic_gotrel_section (info)->reloc_count
- 		      * sizeof (Elf32_External_Rel)));
- 
-       if (bfinfdpic_gotfixup_section (info))
--- 
-1.7.1
diff --git a/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch b/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch
deleted file mode 100644
index da9d586..0000000
--- a/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Fixes: LINKER BUG: .rofixup section size mismatch
-
-Workaround from adi-toolchain commit:
-af414ec1fb628ddb1562f062f3db49823ca14ca2
-[#6798] binutils-2.21/bfd: temp workaround for rofixup mismatch errors.
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur binutils-2.26.1.orig/bfd/elf32-bfin.c binutils-2.26.1/bfd/elf32-bfin.c
---- binutils-2.26.1.orig/bfd/elf32-bfin.c	2015-11-13 09:27:40.000000000 +0100
-+++ binutils-2.26.1/bfd/elf32-bfin.c	2016-07-31 00:50:48.357995132 +0200
-@@ -4879,7 +4879,8 @@
- 
- 	case R_BFIN_FUNCDESC:
- 	  picrel->fd++;
--	  picrel->relocsfd++;
-+	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
-+	    picrel->relocsfd++;
- 	  break;
- 
-         /* This relocation describes the C++ object vtable hierarchy.
diff --git a/package/binutils/2.26.1/0906-microblaze-pr21180.patch b/package/binutils/2.26.1/0906-microblaze-pr21180.patch
deleted file mode 100644
index 8104db3..0000000
--- a/package/binutils/2.26.1/0906-microblaze-pr21180.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Fix ld segfault for microblaze when --gc-sections is used
-Upstream: pending
-https://sourceware.org/bugzilla/show_bug.cgi?id=21180
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur binutils-2.26.1.orig/bfd/elf32-microblaze.c binutils-2.26.1/bfd/elf32-microblaze.c
---- binutils-2.26.1.orig/bfd/elf32-microblaze.c	2015-11-13 09:27:40.000000000 +0100
-+++ binutils-2.26.1/bfd/elf32-microblaze.c	2017-02-23 19:43:18.536542964 +0100
-@@ -3300,13 +3300,20 @@
-           && h->def_regular)
-         {
-           asection *sec = h->root.u.def.section;
-+	  bfd_vma value;
-+
-+	  value = h->root.u.def.value;
-+	  if (sec->output_section != NULL)
-+	    /* PR 21180: If the output section is NULL, then the symbol is no
-+	       longer needed, and in theory the GOT entry is redundant.  But
-+	       it is too late to change our minds now...  */
-+	    value += sec->output_section->vma + sec->output_offset;
-+
-           microblaze_elf_output_dynamic_relocation (output_bfd,
-                                                     srela, srela->reloc_count++,
-                                                     /* symindex= */ 0,
-                                                     R_MICROBLAZE_REL, offset,
--                                                    h->root.u.def.value
--                                                    + sec->output_section->vma
--                                                    + sec->output_offset);
-+                                                    value);
-         }
-       else
-         {
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index ef6aadb..48d3ea1 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -7,9 +7,6 @@ choice
 	help
 	  Select the version of binutils you wish to use.
 
-config BR2_BINUTILS_VERSION_2_26_X
-	bool "binutils 2.26.1"
-
 config BR2_BINUTILS_VERSION_2_27_X
 	bool "binutils 2.27"
 	# binutils 2.27 triggers a bug in elf2flt on ARM/noMMU
@@ -26,7 +23,6 @@ endchoice
 config BR2_BINUTILS_VERSION
 	string
 	default "arc-2017.03"	if BR2_arc
-	default "2.26.1"	if BR2_BINUTILS_VERSION_2_26_X
 	default "2.27"		if BR2_BINUTILS_VERSION_2_27_X
 	default "2.28.1"	if BR2_BINUTILS_VERSION_2_28_X
 	default "2.29"		if BR2_BINUTILS_VERSION_2_29_X
diff --git a/package/binutils/binutils.hash b/package/binutils/binutils.hash
index f6ac10d..4630a26 100644
--- a/package/binutils/binutils.hash
+++ b/package/binutils/binutils.hash
@@ -1,5 +1,4 @@
 # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum
-sha512  9d9165609fd3b0f20d616f9891fc8e2b466eb13e2bfce40125e12427f8f201d20e2b8322bb6cb2b45e8df812f0e8ac059149f8a1f69ba3ed9d86a35c6a540b67  binutils-2.26.1.tar.bz2
 sha512	cf276f84935312361a2ca077e04d0b469d23a3aed979d8ba5d92ea590904ffb2c2e7ed12cc842822bfc402836be86f479660cef3791aa62f3753d8a1a6f564cb  binutils-2.27.tar.bz2
 sha512	dc5b6872ae01c07c12d38f3bb7ead06effc6da3265ac872e2d9c6104304f89f85f2645b029a43f308a7938a7299b1928d385205d0a2245674a621649032a138d  binutils-2.28.1.tar.xz
 sha512  bb227c7af65133a61bbde8be4104a543f4185fce8c8e7be22c36d92d121d28b5413d42f18c7e987d035d6312c542d0e2aaca8930386a4ce26d7c9d7248145398  binutils-2.29.tar.xz
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29
  2017-07-29 13:09 ` [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29 Thomas Petazzoni
@ 2017-07-29 18:15   ` Waldemar Brodkorb
  2017-07-29 19:34     ` Thomas Petazzoni
  2017-08-02 18:43     ` Max Filippov
  0 siblings, 2 replies; 11+ messages in thread
From: Waldemar Brodkorb @ 2017-07-29 18:15 UTC (permalink / raw)
  To: buildroot

Hi Thomas,
Thomas Petazzoni wrote,

> All patches from binutils 2.28 are kept, except patch
> 0906-microblaze-pr21180.patch, because it has been merged upstream as
> of commit bd757ca7bf5886a4025ca02093fca1b8c5ce11a2. Other patches are
> slightly adapted to differences that appeared in binutils 2.29.
> 
> The patches are now all Git formatted, so instead of having weird
> sequence numbers, they have normal sequence numbers starting from 0001
> and incrementing.
> 
> Since binutils 2.29 is now available as a .tar.xz tarball, we use this
> format instead of .bz2 used for previous versions.

I am testing some more qemu defconfigs with binutils 2.29.
sh4/sparc worked fine. But xtensa fails to compile busybox:

/home/wbx/buildroot/output/host/lib/gcc/xtensa-buildroot-linux-uclibc/6.4.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
BFD (GNU Binutils) 2.29 assertion fail elf32-xtensa.c:3965

Adding Max to Cc.

best regards
 Waldemar

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29
  2017-07-29 18:15   ` Waldemar Brodkorb
@ 2017-07-29 19:34     ` Thomas Petazzoni
  2017-08-02 18:43     ` Max Filippov
  1 sibling, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-29 19:34 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 29 Jul 2017 20:15:54 +0200, Waldemar Brodkorb wrote:

> > All patches from binutils 2.28 are kept, except patch
> > 0906-microblaze-pr21180.patch, because it has been merged upstream as
> > of commit bd757ca7bf5886a4025ca02093fca1b8c5ce11a2. Other patches are
> > slightly adapted to differences that appeared in binutils 2.29.
> > 
> > The patches are now all Git formatted, so instead of having weird
> > sequence numbers, they have normal sequence numbers starting from 0001
> > and incrementing.
> > 
> > Since binutils 2.29 is now available as a .tar.xz tarball, we use this
> > format instead of .bz2 used for previous versions.  
> 
> I am testing some more qemu defconfigs with binutils 2.29.
> sh4/sparc worked fine. But xtensa fails to compile busybox:
> 
> /home/wbx/buildroot/output/host/lib/gcc/xtensa-buildroot-linux-uclibc/6.4.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> BFD (GNU Binutils) 2.29 assertion fail elf32-xtensa.c:3965
> 
> Adding Max to Cc.

Thanks!

Since we're not switching to 2.29 as the default, I think it's fine if
some architectures have a few issues with 2.29. The whole point of
adding new versions before making them the default is precisely to iron
out such issues.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 0/4] Update binutils package
  2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2017-07-29 13:09 ` [Buildroot] [PATCH 4/4] binutils: remove support for 2.26 Thomas Petazzoni
@ 2017-07-31 19:27 ` Thomas Petazzoni
  2017-07-31 19:29   ` Waldemar Brodkorb
  2017-08-01 21:38   ` Thomas Petazzoni
  4 siblings, 2 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-07-31 19:27 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 29 Jul 2017 15:09:02 +0200, Thomas Petazzoni wrote:

> Thomas Petazzoni (4):
>   binutils: bump 2.28.x series to 2.28.1
>   binutils: add support for binutils 2.29

I've applied those ones, which I believe are not controversial/

>   binutils: switch to use 2.28.x as the default version
>   binutils: remove support for 2.26

I'll hold off on those ones until I get some feedback, to decide
whether we take them in 2017.08, or wait for 2017.11.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 0/4] Update binutils package
  2017-07-31 19:27 ` [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
@ 2017-07-31 19:29   ` Waldemar Brodkorb
  2017-08-01 21:38   ` Thomas Petazzoni
  1 sibling, 0 replies; 11+ messages in thread
From: Waldemar Brodkorb @ 2017-07-31 19:29 UTC (permalink / raw)
  To: buildroot

Hi,
Thomas Petazzoni wrote,

> Hello,
> 
> On Sat, 29 Jul 2017 15:09:02 +0200, Thomas Petazzoni wrote:
> 
> > Thomas Petazzoni (4):
> >   binutils: bump 2.28.x series to 2.28.1
> >   binutils: add support for binutils 2.29
> 
> I've applied those ones, which I believe are not controversial/
> 
> >   binutils: switch to use 2.28.x as the default version
> >   binutils: remove support for 2.26
> 
> I'll hold off on those ones until I get some feedback, to decide
> whether we take them in 2017.08, or wait for 2017.11.

Having 2.28.1 as default seems okay to me.
I use 2.28 mostly and have seen no issues so far.

With binutils 2.29 I have some more issues for glibc toolchains.
I think tomorrow glibc developers will release their next version,
would it make sense to sent a patch or should I wait until
-next is open?

best regards
 Waldemar

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 0/4] Update binutils package
  2017-07-31 19:27 ` [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
  2017-07-31 19:29   ` Waldemar Brodkorb
@ 2017-08-01 21:38   ` Thomas Petazzoni
  1 sibling, 0 replies; 11+ messages in thread
From: Thomas Petazzoni @ 2017-08-01 21:38 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 31 Jul 2017 21:27:53 +0200, Thomas Petazzoni wrote:

> On Sat, 29 Jul 2017 15:09:02 +0200, Thomas Petazzoni wrote:
> 
> > Thomas Petazzoni (4):
> >   binutils: bump 2.28.x series to 2.28.1
> >   binutils: add support for binutils 2.29  
> 
> I've applied those ones, which I believe are not controversial/
> 
> >   binutils: switch to use 2.28.x as the default version
> >   binutils: remove support for 2.26  
> 
> I'll hold off on those ones until I get some feedback, to decide
> whether we take them in 2017.08, or wait for 2017.11.

Since only Waldemar commented positively on the move to binutils 2.28,
I've merged the two remaining patches in this series.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29
  2017-07-29 18:15   ` Waldemar Brodkorb
  2017-07-29 19:34     ` Thomas Petazzoni
@ 2017-08-02 18:43     ` Max Filippov
  1 sibling, 0 replies; 11+ messages in thread
From: Max Filippov @ 2017-08-02 18:43 UTC (permalink / raw)
  To: buildroot

Hi Waldemar,

On Sat, Jul 29, 2017 at 11:15 AM, Waldemar Brodkorb <wbx@openadk.org> wrote:
> I am testing some more qemu defconfigs with binutils 2.29.
> sh4/sparc worked fine. But xtensa fails to compile busybox:
>
> /home/wbx/buildroot/output/host/lib/gcc/xtensa-buildroot-linux-uclibc/6.4.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> BFD (GNU Binutils) 2.29 assertion fail elf32-xtensa.c:3965

Thanks for the heads up. I've posted a fix.

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-08-02 18:43 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-29 13:09 [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
2017-07-29 13:09 ` [Buildroot] [PATCH 1/4] binutils: bump 2.28.x series to 2.28.1 Thomas Petazzoni
2017-07-29 13:09 ` [Buildroot] [PATCH 2/4] binutils: add support for binutils 2.29 Thomas Petazzoni
2017-07-29 18:15   ` Waldemar Brodkorb
2017-07-29 19:34     ` Thomas Petazzoni
2017-08-02 18:43     ` Max Filippov
2017-07-29 13:09 ` [Buildroot] [PATCH 3/4] binutils: switch to use 2.28.x as the default version Thomas Petazzoni
2017-07-29 13:09 ` [Buildroot] [PATCH 4/4] binutils: remove support for 2.26 Thomas Petazzoni
2017-07-31 19:27 ` [Buildroot] [PATCH 0/4] Update binutils package Thomas Petazzoni
2017-07-31 19:29   ` Waldemar Brodkorb
2017-08-01 21:38   ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.