binutils: remove old versions

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42776
master
Felix Fietkau 10 years ago
parent fbbce1c8d8
commit c7bc3ad908
  1. 15
      toolchain/binutils/Config.in
  2. 6
      toolchain/binutils/Makefile
  3. 10
      toolchain/binutils/patches/2.22/200-musl.patch
  4. 22
      toolchain/binutils/patches/2.22/300-001_ld_makefile_patch.patch
  5. 20
      toolchain/binutils/patches/2.22/300-012_check_ldrunpath_length.patch
  6. 12
      toolchain/binutils/patches/2.22/400-fix_arm_gc_sections.patch
  7. 26
      toolchain/binutils/patches/2.22/500-arm_ld_assert_fix.patch
  8. 18
      toolchain/binutils/patches/2.22/600-mips_no_dynamic_linking_sym.patch
  9. 74
      toolchain/binutils/patches/2.22/999-ppc-textrels.patch
  10. 10
      toolchain/binutils/patches/2.23.1/200-musl.patch
  11. 22
      toolchain/binutils/patches/2.23.1/300-001_ld_makefile_patch.patch
  12. 20
      toolchain/binutils/patches/2.23.1/300-012_check_ldrunpath_length.patch
  13. 18
      toolchain/binutils/patches/2.23.1/400-mips_no_dynamic_linking_sym.patch

@ -11,14 +11,6 @@ choice
depends on avr32 depends on avr32
bool "binutils 2.20.1" bool "binutils 2.20.1"
config BINUTILS_VERSION_2_22
depends on !avr32 || (avr32 && BROKEN)
bool "binutils 2.22"
config BINUTILS_VERSION_2_23_1
depends on !avr32 || (avr32 && BROKEN)
bool "binutils 2.23.1"
config BINUTILS_VERSION_LINARO config BINUTILS_VERSION_LINARO
depends on !avr32 || (avr32 && BROKEN) depends on !avr32 || (avr32 && BROKEN)
bool "Linaro binutils 2.24" bool "Linaro binutils 2.24"
@ -35,9 +27,6 @@ config EXTRA_BINUTILS_CONFIG_OPTIONS
config BINUTILS_VERSION config BINUTILS_VERSION
string string
prompt "Binutils Version" if (TOOLCHAINOPTS && NULL) prompt "Binutils Version" if (TOOLCHAINOPTS && NULL)
default "2.20.1" if BINUTILS_VERSION_2_20_1 default "2.20.1" if BINUTILS_VERSION_2_20_1 || avr32
default "2.22" if BINUTILS_VERSION_2_22
default "2.23.1" if BINUTILS_VERSION_2_23_1
default "linaro" if BINUTILS_VERSION_LINARO default "linaro" if BINUTILS_VERSION_LINARO
default "2.20.1" if avr32 default "linaro"
default "2.22"

@ -24,12 +24,6 @@ else
ifeq ($(PKG_VERSION),2.20.1) ifeq ($(PKG_VERSION),2.20.1)
PKG_MD5SUM:=9cdfb9d6ec0578c166d3beae5e15c4e5 PKG_MD5SUM:=9cdfb9d6ec0578c166d3beae5e15c4e5
endif endif
ifeq ($(PKG_VERSION),2.22)
PKG_MD5SUM:=ee0f10756c84979622b992a4a61ea3f5
endif
ifeq ($(PKG_VERSION),2.23.1)
PKG_MD5SUM:=33adb18c3048d057ac58d07a3f1adb38
endif
endif endif
HOST_BUILD_PARALLEL:=1 HOST_BUILD_PARALLEL:=1

@ -1,10 +0,0 @@
--- a/config.sub
+++ b/config.sub
@@ -125,6 +125,7 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \

@ -1,22 +0,0 @@
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -37,7 +37,7 @@ endif
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -366,7 +366,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
# 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

@ -1,20 +0,0 @@
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1273,6 +1273,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;
@@ -1500,6 +1502,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)

@ -1,12 +0,0 @@
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12408,7 +12408,8 @@ elf32_arm_check_relocs (bfd *abfd, struc
/* If the symbol is a function that doesn't bind locally,
this relocation will need a PLT entry. */
- root_plt->refcount += 1;
+ if (root_plt->refcount != -1)
+ root_plt->refcount += 1;
if (!call_reloc_p)
arm_plt->noncall_refcount++;

@ -1,26 +0,0 @@
See http://sourceware.org/bugzilla/show_bug.cgi?id=13990 for details.
---
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12046,8 +12046,19 @@ elf32_arm_gc_sweep_hook (bfd *
if (may_need_local_target_p
&& elf32_arm_get_plt_info (abfd, eh, r_symndx, &root_plt, &arm_plt))
{
- BFD_ASSERT (root_plt->refcount > 0);
- root_plt->refcount -= 1;
+ /* If PLT refcount book-keeping is wrong and too low, we'll
+ see a zero value (going to -1) for the root PLT reference
+ count. */
+ if (root_plt->refcount >= 0)
+ {
+ BFD_ASSERT (root_plt->refcount != 0);
+ root_plt->refcount -= 1;
+ }
+ else
+ /* A value of -1 means the symbol has become local, forced
+ or seeing a hidden definition. Any other negative value
+ is an error. */
+ BFD_ASSERT (root_plt->refcount == -1);
if (!call_reloc_p)
arm_plt->noncall_refcount--;

@ -1,18 +0,0 @@
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7230,6 +7230,7 @@ _bfd_mips_elf_create_dynamic_sections (b
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
bh = NULL;
+ if (0) {
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
@@ -7242,6 +7243,7 @@ _bfd_mips_elf_create_dynamic_sections (b
if (! bfd_elf_link_record_dynamic_symbol (info, h))
return FALSE;
+ }
if (! mips_elf_hash_table (info)->use_rld_obj_head)
{

@ -1,74 +0,0 @@
http://bugs.gentoo.org/392645
http://sourceware.org/bugzilla/show_bug.cgi?id=13470
2011-12-03 Alan Modra <amodra@gmail.com>
PR ld/13470
* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Revert substantive
change in 2011-07-01 commit. Comment.
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
===================================================================
RCS file: /cvs/src/src/bfd/elf32-ppc.c,v
retrieving revision 1.302.2.1
retrieving revision 1.302.2.2
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -2987,10 +2987,6 @@ ppc_elf_copy_indirect_symbol (struct bfd
edir->elf.needs_plt |= eind->elf.needs_plt;
edir->elf.pointer_equality_needed |= eind->elf.pointer_equality_needed;
- /* If we were called to copy over info for a weak sym, that's all. */
- if (eind->elf.root.type != bfd_link_hash_indirect)
- return;
-
if (eind->dyn_relocs != NULL)
{
if (edir->dyn_relocs != NULL)
@@ -3022,6 +3018,16 @@ ppc_elf_copy_indirect_symbol (struct bfd
eind->dyn_relocs = NULL;
}
+ /* If we were called to copy over info for a weak sym, that's all.
+ You might think dyn_relocs need not be copied over; After all,
+ both syms will be dynamic or both non-dynamic so we're just
+ moving reloc accounting around. However, ELIMINATE_COPY_RELOCS
+ code in ppc_elf_adjust_dynamic_symbol needs to check for
+ dyn_relocs in read-only sections, and it does so on what is the
+ DIR sym here. */
+ if (eind->elf.root.type != bfd_link_hash_indirect)
+ return;
+
/* Copy over the GOT refcount entries that we may have already seen to
the symbol which just became indirect. */
edir->elf.got.refcount += eind->elf.got.refcount;
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4435,10 +4435,6 @@ ppc64_elf_copy_indirect_symbol (struct b
edir->elf.ref_regular_nonweak |= eind->elf.ref_regular_nonweak;
edir->elf.needs_plt |= eind->elf.needs_plt;
- /* If we were called to copy over info for a weak sym, that's all. */
- if (eind->elf.root.type != bfd_link_hash_indirect)
- return;
-
/* Copy over any dynamic relocs we may have on the indirect sym. */
if (eind->dyn_relocs != NULL)
{
@@ -4471,6 +4467,16 @@ ppc64_elf_copy_indirect_symbol (struct b
eind->dyn_relocs = NULL;
}
+ /* If we were called to copy over info for a weak sym, that's all.
+ You might think dyn_relocs need not be copied over; After all,
+ both syms will be dynamic or both non-dynamic so we're just
+ moving reloc accounting around. However, ELIMINATE_COPY_RELOCS
+ code in ppc64_elf_adjust_dynamic_symbol needs to check for
+ dyn_relocs in read-only sections, and it does so on what is the
+ DIR sym here. */
+ if (eind->elf.root.type != bfd_link_hash_indirect)
+ return;
+
/* Copy over got entries that we may have already seen to the
symbol which just became indirect. */
if (eind->elf.got.glist != NULL)

@ -1,10 +0,0 @@
--- a/config.sub
+++ b/config.sub
@@ -125,6 +125,7 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \

@ -1,22 +0,0 @@
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -37,7 +37,7 @@ endif
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -367,7 +367,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
# 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

@ -1,20 +0,0 @@
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1274,6 +1274,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;
@@ -1501,6 +1503,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)

@ -1,18 +0,0 @@
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7335,6 +7335,7 @@ _bfd_mips_elf_create_dynamic_sections (b
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
bh = NULL;
+ if (0) {
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
@@ -7347,6 +7348,7 @@ _bfd_mips_elf_create_dynamic_sections (b
if (! bfd_elf_link_record_dynamic_symbol (info, h))
return FALSE;
+ }
if (! mips_elf_hash_table (info)->use_rld_obj_head)
{
Loading…
Cancel
Save