binutils: move patches to new model
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Mon, 22 Apr 2013 14:47:47 +0000 (11:47 -0300)
committerPeter Korsgaard <jacmet@sunsite.dk>
Tue, 23 Apr 2013 07:00:01 +0000 (09:00 +0200)
On commit 5538e4766201aa0c1c23721cfc99cbbde595964b the versioned package
patches changed the directory structure but the packages weren't fixed.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
58 files changed:
package/binutils/2.20.1/110-arm-eabi-conf.patch [new file with mode: 0644]
package/binutils/2.20.1/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.20.1/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.20.1/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.20.1/400-arm_link_speed.patch [new file with mode: 0644]
package/binutils/2.20.1/500-sysroot.patch [new file with mode: 0644]
package/binutils/2.21.1/110-arm-eabi-conf.patch [new file with mode: 0644]
package/binutils/2.21.1/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.21.1/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.21.1/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.21.1/500-sysroot.patch [new file with mode: 0644]
package/binutils/2.21/110-arm-eabi-conf.patch [new file with mode: 0644]
package/binutils/2.21/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.21/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.21/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.21/500-sysroot.patch [new file with mode: 0644]
package/binutils/2.22/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.22/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.22/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.22/500-sysroot.patch [new file with mode: 0644]
package/binutils/2.22/999-ppc-textrels.patch [new file with mode: 0644]
package/binutils/2.23.1/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.23.1/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.23.1/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.23.1/500-sysroot.patch [new file with mode: 0644]
package/binutils/2.23.2/120-sh-conf.patch [new file with mode: 0644]
package/binutils/2.23.2/300-001_ld_makefile_patch.patch [new file with mode: 0644]
package/binutils/2.23.2/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
package/binutils/2.23.2/500-sysroot.patch [new file with mode: 0644]
package/binutils/binutils-2.20.1/110-arm-eabi-conf.patch [deleted file]
package/binutils/binutils-2.20.1/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.20.1/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.20.1/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.20.1/400-arm_link_speed.patch [deleted file]
package/binutils/binutils-2.20.1/500-sysroot.patch [deleted file]
package/binutils/binutils-2.21.1/110-arm-eabi-conf.patch [deleted file]
package/binutils/binutils-2.21.1/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.21.1/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.21.1/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.21.1/500-sysroot.patch [deleted file]
package/binutils/binutils-2.21/110-arm-eabi-conf.patch [deleted file]
package/binutils/binutils-2.21/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.21/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.21/500-sysroot.patch [deleted file]
package/binutils/binutils-2.22/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.22/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.22/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.22/500-sysroot.patch [deleted file]
package/binutils/binutils-2.22/999-ppc-textrels.patch [deleted file]
package/binutils/binutils-2.23.1/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.23.1/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.23.1/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.23.1/500-sysroot.patch [deleted file]
package/binutils/binutils-2.23.2/120-sh-conf.patch [deleted file]
package/binutils/binutils-2.23.2/300-001_ld_makefile_patch.patch [deleted file]
package/binutils/binutils-2.23.2/300-012_check_ldrunpath_length.patch [deleted file]
package/binutils/binutils-2.23.2/500-sysroot.patch [deleted file]

diff --git a/package/binutils/2.20.1/110-arm-eabi-conf.patch b/package/binutils/2.20.1/110-arm-eabi-conf.patch
new file mode 100644 (file)
index 0000000..af26329
--- /dev/null
@@ -0,0 +1,24 @@
+diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
+--- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
+@@ -2245,7 +2245,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
+diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
+--- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
+@@ -522,7 +522,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
diff --git a/package/binutils/2.20.1/120-sh-conf.patch b/package/binutils/2.20.1/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..071d15a
--- /dev/null
@@ -0,0 +1,42 @@
+diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
+--- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
+@@ -2281,7 +2281,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -2606,7 +2606,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[3456789]86-*-vsta) ;; # don't add gprof back in
+       i[3456789]86-*-go32*) ;; # don't add gprof back in
+diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
+--- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
+@@ -530,7 +530,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;    
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -855,7 +855,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
+       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/2.20.1/300-001_ld_makefile_patch.patch b/package/binutils/2.20.1/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.20.1/300-012_check_ldrunpath_length.patch b/package/binutils/2.20.1/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..6e80921
--- /dev/null
@@ -0,0 +1,21 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/emultempl/elf32.em binutils-2.17.50.0.17/ld/emultempl/elf32.em
+--- binutils-2.17.50.0.17.oorig/ld/emultempl/elf32.em  2007-06-18 19:31:40.000000000 +0200
++++ binutils-2.17.50.0.17/ld/emultempl/elf32.em        2007-06-25 10:01:25.000000000 +0200
+@@ -1007,6 +1007,8 @@
+             && 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;
+@@ -1191,6 +1193,8 @@
+   rpath = command_line.rpath;
+   if (rpath == NULL)
+     rpath = (const char *) getenv ("LD_RUN_PATH");
++  if ((rpath) && (strlen (rpath) == 0))
++      rpath = NULL;
+   if (! (bfd_elf_size_dynamic_sections
+        (output_bfd, command_line.soname, rpath,
+         command_line.filter_shlib,
diff --git a/package/binutils/2.20.1/400-arm_link_speed.patch b/package/binutils/2.20.1/400-arm_link_speed.patch
new file mode 100644 (file)
index 0000000..d03385a
--- /dev/null
@@ -0,0 +1,183 @@
+From Binutils CVS:
+
+http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-arm.c?rev=1.230&content-type=text/x-cvsweb-markup&cvsroot=src
+
+Improves linking time from large projects on ARM.
+diff -dupr binutils-2.20.orig/bfd/elf32-arm.c binutils-2.20/bfd/elf32-arm.c
+--- binutils-2.20.orig/bfd/elf32-arm.c 2010-04-19 10:08:50.000000000 -0700
++++ binutils-2.20/bfd/elf32-arm.c      2010-04-19 10:12:45.000000000 -0700
+@@ -12736,108 +12736,15 @@ elf32_arm_section_from_shdr (bfd *abfd,
+   return TRUE;
+ }
+
+-/* A structure used to record a list of sections, independently
+-   of the next and prev fields in the asection structure.  */
+-typedef struct section_list
+-{
+-  asection * sec;
+-  struct section_list * next;
+-  struct section_list * prev;
+-}
+-section_list;
+-
+-/* Unfortunately we need to keep a list of sections for which
+-   an _arm_elf_section_data structure has been allocated.  This
+-   is because it is possible for functions like elf32_arm_write_section
+-   to be called on a section which has had an elf_data_structure
+-   allocated for it (and so the used_by_bfd field is valid) but
+-   for which the ARM extended version of this structure - the
+-   _arm_elf_section_data structure - has not been allocated.  */
+-static section_list * sections_with_arm_elf_section_data = NULL;
+-
+-static void
+-record_section_with_arm_elf_section_data (asection * sec)
+-{
+-  struct section_list * entry;
+-
+-  entry = bfd_malloc (sizeof (* entry));
+-  if (entry == NULL)
+-    return;
+-  entry->sec = sec;
+-  entry->next = sections_with_arm_elf_section_data;
+-  entry->prev = NULL;
+-  if (entry->next != NULL)
+-    entry->next->prev = entry;
+-  sections_with_arm_elf_section_data = entry;
+-}
+-
+-static struct section_list *
+-find_arm_elf_section_entry (asection * sec)
+-{
+-  struct section_list * entry;
+-  static struct section_list * last_entry = NULL;
+-
+-  /* This is a short cut for the typical case where the sections are added
+-     to the sections_with_arm_elf_section_data list in forward order and
+-     then looked up here in backwards order.  This makes a real difference
+-     to the ld-srec/sec64k.exp linker test.  */
+-  entry = sections_with_arm_elf_section_data;
+-  if (last_entry != NULL)
+-    {
+-      if (last_entry->sec == sec)
+-      entry = last_entry;
+-      else if (last_entry->next != NULL
+-             && last_entry->next->sec == sec)
+-      entry = last_entry->next;
+-    }
+-
+-  for (; entry; entry = entry->next)
+-    if (entry->sec == sec)
+-      break;
+-
+-  if (entry)
+-    /* Record the entry prior to this one - it is the entry we are most
+-       likely to want to locate next time.  Also this way if we have been
+-       called from unrecord_section_with_arm_elf_section_data() we will not
+-       be caching a pointer that is about to be freed.  */
+-    last_entry = entry->prev;
+-
+-  return entry;
+-}
+-
+ static _arm_elf_section_data *
+ get_arm_elf_section_data (asection * sec)
+ {
+-  struct section_list * entry;
+-
+-  entry = find_arm_elf_section_entry (sec);
+-
+-  if (entry)
+-    return elf32_arm_section_data (entry->sec);
++  if (sec && sec->owner && is_arm_elf (sec->owner))
++    return elf32_arm_section_data (sec);
+   else
+     return NULL;
+ }
+
+-static void
+-unrecord_section_with_arm_elf_section_data (asection * sec)
+-{
+-  struct section_list * entry;
+-
+-  entry = find_arm_elf_section_entry (sec);
+-
+-  if (entry)
+-    {
+-      if (entry->prev != NULL)
+-      entry->prev->next = entry->next;
+-      if (entry->next != NULL)
+-      entry->next->prev = entry->prev;
+-      if (entry == sections_with_arm_elf_section_data)
+-      sections_with_arm_elf_section_data = entry->next;
+-      free (entry);
+-    }
+-}
+-
+-
+ typedef struct
+ {
+   void *finfo;
+@@ -13230,8 +13137,6 @@ elf32_arm_new_section_hook (bfd *abfd, a
+       sec->used_by_bfd = sdata;
+     }
+
+-  record_section_with_arm_elf_section_data (sec);
+-
+   return _bfd_elf_new_section_hook (abfd, sec);
+ }
+
+@@ -13659,44 +13564,13 @@ elf32_arm_write_section (bfd *output_bfd
+     }
+
+   free (map);
+-  arm_data->mapcount = 0;
++  arm_data->mapcount = -1;
+   arm_data->mapsize = 0;
+   arm_data->map = NULL;
+-  unrecord_section_with_arm_elf_section_data (sec);
+
+   return FALSE;
+ }
+
+-static void
+-unrecord_section_via_map_over_sections (bfd * abfd ATTRIBUTE_UNUSED,
+-                                      asection * sec,
+-                                      void * ignore ATTRIBUTE_UNUSED)
+-{
+-  unrecord_section_with_arm_elf_section_data (sec);
+-}
+-
+-static bfd_boolean
+-elf32_arm_close_and_cleanup (bfd * abfd)
+-{
+-  if (abfd->sections)
+-    bfd_map_over_sections (abfd,
+-                         unrecord_section_via_map_over_sections,
+-                         NULL);
+-
+-  return _bfd_elf_close_and_cleanup (abfd);
+-}
+-
+-static bfd_boolean
+-elf32_arm_bfd_free_cached_info (bfd * abfd)
+-{
+-  if (abfd->sections)
+-    bfd_map_over_sections (abfd,
+-                         unrecord_section_via_map_over_sections,
+-                         NULL);
+-
+-  return _bfd_free_cached_info (abfd);
+-}
+-
+ /* Display STT_ARM_TFUNC symbols as functions.  */
+
+ static void
+@@ -13882,8 +13756,6 @@ const struct elf_size_info elf32_arm_siz
+ #define bfd_elf32_find_inliner_info           elf32_arm_find_inliner_info
+ #define bfd_elf32_new_section_hook            elf32_arm_new_section_hook
+ #define bfd_elf32_bfd_is_target_special_symbol        elf32_arm_is_target_special_symbol
+-#define bfd_elf32_close_and_cleanup             elf32_arm_close_and_cleanup
+-#define bfd_elf32_bfd_free_cached_info          elf32_arm_bfd_free_cached_info
+ #define bfd_elf32_bfd_final_link              elf32_arm_final_link
+
+ #define elf_backend_get_symbol_type             elf32_arm_get_symbol_type
diff --git a/package/binutils/2.20.1/500-sysroot.patch b/package/binutils/2.20.1/500-sysroot.patch
new file mode 100644 (file)
index 0000000..d21e4cb
--- /dev/null
@@ -0,0 +1,36 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,24 @@
+      directory first.  */
+   if (! entry->is_archive)
+     {
+-      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
++      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
+       {
+         char *name = concat (ld_sysroot, entry->filename,
+                              (const char *) NULL);
+         if (ldfile_try_open_bfd (name, entry))
+           {
+             entry->filename = name;
++            entry->sysrooted = TRUE;
+             return TRUE;
+           }
+         free (name);
+       }
+-      else if (ldfile_try_open_bfd (entry->filename, entry))
++
++      if (ldfile_try_open_bfd (entry->filename, entry))
+       {
+         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
+           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/2.21.1/110-arm-eabi-conf.patch b/package/binutils/2.21.1/110-arm-eabi-conf.patch
new file mode 100644 (file)
index 0000000..af26329
--- /dev/null
@@ -0,0 +1,24 @@
+diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
+--- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
+@@ -2245,7 +2245,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
+diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
+--- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
+@@ -522,7 +522,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
diff --git a/package/binutils/2.21.1/120-sh-conf.patch b/package/binutils/2.21.1/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..071d15a
--- /dev/null
@@ -0,0 +1,42 @@
+diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
+--- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
+@@ -2281,7 +2281,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -2606,7 +2606,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[3456789]86-*-vsta) ;; # don't add gprof back in
+       i[3456789]86-*-go32*) ;; # don't add gprof back in
+diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
+--- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
+@@ -530,7 +530,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;    
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -855,7 +855,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
+       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/2.21.1/300-001_ld_makefile_patch.patch b/package/binutils/2.21.1/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.21.1/300-012_check_ldrunpath_length.patch b/package/binutils/2.21.1/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..df78310
--- /dev/null
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+             && 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;
+@@ -1497,6 +1499,8 @@
+   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)
diff --git a/package/binutils/2.21.1/500-sysroot.patch b/package/binutils/2.21.1/500-sysroot.patch
new file mode 100644 (file)
index 0000000..d21e4cb
--- /dev/null
@@ -0,0 +1,36 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,24 @@
+      directory first.  */
+   if (! entry->is_archive)
+     {
+-      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
++      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
+       {
+         char *name = concat (ld_sysroot, entry->filename,
+                              (const char *) NULL);
+         if (ldfile_try_open_bfd (name, entry))
+           {
+             entry->filename = name;
++            entry->sysrooted = TRUE;
+             return TRUE;
+           }
+         free (name);
+       }
+-      else if (ldfile_try_open_bfd (entry->filename, entry))
++
++      if (ldfile_try_open_bfd (entry->filename, entry))
+       {
+         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
+           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/2.21/110-arm-eabi-conf.patch b/package/binutils/2.21/110-arm-eabi-conf.patch
new file mode 100644 (file)
index 0000000..af26329
--- /dev/null
@@ -0,0 +1,24 @@
+diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
+--- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
+@@ -2245,7 +2245,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
+diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
+--- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
++++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
+@@ -522,7 +522,7 @@ case "${target}" in
+     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+     libgloss_dir=arm
+     ;;
+-  arm*-*-linux-gnueabi)
++  arm*-*-linux-*gnueabi)
+     noconfigdirs="$noconfigdirs target-qthreads"
+     noconfigdirs="$noconfigdirs target-libobjc"
+     case ${with_newlib} in
diff --git a/package/binutils/2.21/120-sh-conf.patch b/package/binutils/2.21/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..071d15a
--- /dev/null
@@ -0,0 +1,42 @@
+diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
+--- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
+@@ -2281,7 +2281,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -2606,7 +2606,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[3456789]86-*-vsta) ;; # don't add gprof back in
+       i[3456789]86-*-go32*) ;; # don't add gprof back in
+diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
+--- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
++++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
+@@ -530,7 +530,7 @@ case "${target}" in
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;    
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -855,7 +855,7 @@ case "${target}" in
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
+       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/2.21/300-001_ld_makefile_patch.patch b/package/binutils/2.21/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.21/300-012_check_ldrunpath_length.patch b/package/binutils/2.21/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..df78310
--- /dev/null
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+             && 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;
+@@ -1497,6 +1499,8 @@
+   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)
diff --git a/package/binutils/2.21/500-sysroot.patch b/package/binutils/2.21/500-sysroot.patch
new file mode 100644 (file)
index 0000000..d21e4cb
--- /dev/null
@@ -0,0 +1,36 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,24 @@
+      directory first.  */
+   if (! entry->is_archive)
+     {
+-      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
++      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
+       {
+         char *name = concat (ld_sysroot, entry->filename,
+                              (const char *) NULL);
+         if (ldfile_try_open_bfd (name, entry))
+           {
+             entry->filename = name;
++            entry->sysrooted = TRUE;
+             return TRUE;
+           }
+         free (name);
+       }
+-      else if (ldfile_try_open_bfd (entry->filename, entry))
++
++      if (ldfile_try_open_bfd (entry->filename, entry))
+       {
+         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
+           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/2.22/120-sh-conf.patch b/package/binutils/2.22/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..ea3d1b6
--- /dev/null
@@ -0,0 +1,29 @@
+r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
+
+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).
+
+--- a/configure
++++ b/configure
+@@ -1495,7 +1495,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+--- a/configure.ac
++++ b/configure.ac
+@@ -712,7 +712,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
diff --git a/package/binutils/2.22/300-001_ld_makefile_patch.patch b/package/binutils/2.22/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.22/300-012_check_ldrunpath_length.patch b/package/binutils/2.22/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..df78310
--- /dev/null
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+             && 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;
+@@ -1497,6 +1499,8 @@
+   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)
diff --git a/package/binutils/2.22/500-sysroot.patch b/package/binutils/2.22/500-sysroot.patch
new file mode 100644 (file)
index 0000000..d21e4cb
--- /dev/null
@@ -0,0 +1,36 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,24 @@
+      directory first.  */
+   if (! entry->is_archive)
+     {
+-      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
++      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
+       {
+         char *name = concat (ld_sysroot, entry->filename,
+                              (const char *) NULL);
+         if (ldfile_try_open_bfd (name, entry))
+           {
+             entry->filename = name;
++            entry->sysrooted = TRUE;
+             return TRUE;
+           }
+         free (name);
+       }
+-      else if (ldfile_try_open_bfd (entry->filename, entry))
++
++      if (ldfile_try_open_bfd (entry->filename, entry))
+       {
+         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
+           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/2.22/999-ppc-textrels.patch b/package/binutils/2.22/999-ppc-textrels.patch
new file mode 100644 (file)
index 0000000..c1efacf
--- /dev/null
@@ -0,0 +1,80 @@
+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
+diff -u -r1.302.2.1 -r1.302.2.2
+--- src/bfd/elf32-ppc.c        2011/11/15 11:36:52     1.302.2.1
++++ src/bfd/elf32-ppc.c        2011/12/03 00:58:01     1.302.2.2
+@@ -2987,10 +2987,6 @@
+   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 @@
+       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;
+===================================================================
+RCS file: /cvs/src/src/bfd/elf64-ppc.c,v
+retrieving revision 1.363.2.4
+retrieving revision 1.363.2.5
+diff -u -r1.363.2.4 -r1.363.2.5
+--- src/bfd/elf64-ppc.c        2011/11/08 13:46:36     1.363.2.4
++++ src/bfd/elf64-ppc.c        2011/12/03 00:58:02     1.363.2.5
+@@ -4435,10 +4435,6 @@
+   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 @@
+       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)
diff --git a/package/binutils/2.23.1/120-sh-conf.patch b/package/binutils/2.23.1/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..ea3d1b6
--- /dev/null
@@ -0,0 +1,29 @@
+r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
+
+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).
+
+--- a/configure
++++ b/configure
+@@ -1495,7 +1495,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+--- a/configure.ac
++++ b/configure.ac
+@@ -712,7 +712,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
diff --git a/package/binutils/2.23.1/300-001_ld_makefile_patch.patch b/package/binutils/2.23.1/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.23.1/300-012_check_ldrunpath_length.patch b/package/binutils/2.23.1/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..df78310
--- /dev/null
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+             && 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;
+@@ -1497,6 +1499,8 @@
+   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)
diff --git a/package/binutils/2.23.1/500-sysroot.patch b/package/binutils/2.23.1/500-sysroot.patch
new file mode 100644 (file)
index 0000000..e49c795
--- /dev/null
@@ -0,0 +1,37 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,25 @@
+      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))
diff --git a/package/binutils/2.23.2/120-sh-conf.patch b/package/binutils/2.23.2/120-sh-conf.patch
new file mode 100644 (file)
index 0000000..ea3d1b6
--- /dev/null
@@ -0,0 +1,29 @@
+r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
+
+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).
+
+--- a/configure
++++ b/configure
+@@ -1495,7 +1495,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
+--- a/configure.ac
++++ b/configure.ac
+@@ -712,7 +712,7 @@
+   mips*-*-*)
+     noconfigdirs="$noconfigdirs gprof"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${target}" in
+       sh*-*-elf)
+          ;;
diff --git a/package/binutils/2.23.2/300-001_ld_makefile_patch.patch b/package/binutils/2.23.2/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..5cb0f61
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
+@@ -18,7 +18,7 @@
+ # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
++++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
+@@ -287,7 +287,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch b/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..df78310
--- /dev/null
@@ -0,0 +1,21 @@
+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
+--- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
++++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
+@@ -1270,6 +1270,8 @@
+             && 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;
+@@ -1497,6 +1499,8 @@
+   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)
diff --git a/package/binutils/2.23.2/500-sysroot.patch b/package/binutils/2.23.2/500-sysroot.patch
new file mode 100644 (file)
index 0000000..e49c795
--- /dev/null
@@ -0,0 +1,37 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -308,18 +308,25 @@
+      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))
diff --git a/package/binutils/binutils-2.20.1/110-arm-eabi-conf.patch b/package/binutils/binutils-2.20.1/110-arm-eabi-conf.patch
deleted file mode 100644 (file)
index af26329..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
---- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
-@@ -2245,7 +2245,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
-diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
---- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
-@@ -522,7 +522,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
diff --git a/package/binutils/binutils-2.20.1/120-sh-conf.patch b/package/binutils/binutils-2.20.1/120-sh-conf.patch
deleted file mode 100644 (file)
index 071d15a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
---- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
-@@ -2281,7 +2281,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -2606,7 +2606,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[3456789]86-*-vsta) ;; # don't add gprof back in
-       i[3456789]86-*-go32*) ;; # don't add gprof back in
-diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
---- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
-@@ -530,7 +530,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;    
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -855,7 +855,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
-       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/binutils-2.20.1/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.20.1/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.20.1/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.20.1/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index 6e80921..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/emultempl/elf32.em binutils-2.17.50.0.17/ld/emultempl/elf32.em
---- binutils-2.17.50.0.17.oorig/ld/emultempl/elf32.em  2007-06-18 19:31:40.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/emultempl/elf32.em        2007-06-25 10:01:25.000000000 +0200
-@@ -1007,6 +1007,8 @@
-             && 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;
-@@ -1191,6 +1193,8 @@
-   rpath = command_line.rpath;
-   if (rpath == NULL)
-     rpath = (const char *) getenv ("LD_RUN_PATH");
-+  if ((rpath) && (strlen (rpath) == 0))
-+      rpath = NULL;
-   if (! (bfd_elf_size_dynamic_sections
-        (output_bfd, command_line.soname, rpath,
-         command_line.filter_shlib,
diff --git a/package/binutils/binutils-2.20.1/400-arm_link_speed.patch b/package/binutils/binutils-2.20.1/400-arm_link_speed.patch
deleted file mode 100644 (file)
index d03385a..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-From Binutils CVS:
-
-http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-arm.c?rev=1.230&content-type=text/x-cvsweb-markup&cvsroot=src
-
-Improves linking time from large projects on ARM.
-diff -dupr binutils-2.20.orig/bfd/elf32-arm.c binutils-2.20/bfd/elf32-arm.c
---- binutils-2.20.orig/bfd/elf32-arm.c 2010-04-19 10:08:50.000000000 -0700
-+++ binutils-2.20/bfd/elf32-arm.c      2010-04-19 10:12:45.000000000 -0700
-@@ -12736,108 +12736,15 @@ elf32_arm_section_from_shdr (bfd *abfd,
-   return TRUE;
- }
-
--/* A structure used to record a list of sections, independently
--   of the next and prev fields in the asection structure.  */
--typedef struct section_list
--{
--  asection * sec;
--  struct section_list * next;
--  struct section_list * prev;
--}
--section_list;
--
--/* Unfortunately we need to keep a list of sections for which
--   an _arm_elf_section_data structure has been allocated.  This
--   is because it is possible for functions like elf32_arm_write_section
--   to be called on a section which has had an elf_data_structure
--   allocated for it (and so the used_by_bfd field is valid) but
--   for which the ARM extended version of this structure - the
--   _arm_elf_section_data structure - has not been allocated.  */
--static section_list * sections_with_arm_elf_section_data = NULL;
--
--static void
--record_section_with_arm_elf_section_data (asection * sec)
--{
--  struct section_list * entry;
--
--  entry = bfd_malloc (sizeof (* entry));
--  if (entry == NULL)
--    return;
--  entry->sec = sec;
--  entry->next = sections_with_arm_elf_section_data;
--  entry->prev = NULL;
--  if (entry->next != NULL)
--    entry->next->prev = entry;
--  sections_with_arm_elf_section_data = entry;
--}
--
--static struct section_list *
--find_arm_elf_section_entry (asection * sec)
--{
--  struct section_list * entry;
--  static struct section_list * last_entry = NULL;
--
--  /* This is a short cut for the typical case where the sections are added
--     to the sections_with_arm_elf_section_data list in forward order and
--     then looked up here in backwards order.  This makes a real difference
--     to the ld-srec/sec64k.exp linker test.  */
--  entry = sections_with_arm_elf_section_data;
--  if (last_entry != NULL)
--    {
--      if (last_entry->sec == sec)
--      entry = last_entry;
--      else if (last_entry->next != NULL
--             && last_entry->next->sec == sec)
--      entry = last_entry->next;
--    }
--
--  for (; entry; entry = entry->next)
--    if (entry->sec == sec)
--      break;
--
--  if (entry)
--    /* Record the entry prior to this one - it is the entry we are most
--       likely to want to locate next time.  Also this way if we have been
--       called from unrecord_section_with_arm_elf_section_data() we will not
--       be caching a pointer that is about to be freed.  */
--    last_entry = entry->prev;
--
--  return entry;
--}
--
- static _arm_elf_section_data *
- get_arm_elf_section_data (asection * sec)
- {
--  struct section_list * entry;
--
--  entry = find_arm_elf_section_entry (sec);
--
--  if (entry)
--    return elf32_arm_section_data (entry->sec);
-+  if (sec && sec->owner && is_arm_elf (sec->owner))
-+    return elf32_arm_section_data (sec);
-   else
-     return NULL;
- }
-
--static void
--unrecord_section_with_arm_elf_section_data (asection * sec)
--{
--  struct section_list * entry;
--
--  entry = find_arm_elf_section_entry (sec);
--
--  if (entry)
--    {
--      if (entry->prev != NULL)
--      entry->prev->next = entry->next;
--      if (entry->next != NULL)
--      entry->next->prev = entry->prev;
--      if (entry == sections_with_arm_elf_section_data)
--      sections_with_arm_elf_section_data = entry->next;
--      free (entry);
--    }
--}
--
--
- typedef struct
- {
-   void *finfo;
-@@ -13230,8 +13137,6 @@ elf32_arm_new_section_hook (bfd *abfd, a
-       sec->used_by_bfd = sdata;
-     }
-
--  record_section_with_arm_elf_section_data (sec);
--
-   return _bfd_elf_new_section_hook (abfd, sec);
- }
-
-@@ -13659,44 +13564,13 @@ elf32_arm_write_section (bfd *output_bfd
-     }
-
-   free (map);
--  arm_data->mapcount = 0;
-+  arm_data->mapcount = -1;
-   arm_data->mapsize = 0;
-   arm_data->map = NULL;
--  unrecord_section_with_arm_elf_section_data (sec);
-
-   return FALSE;
- }
-
--static void
--unrecord_section_via_map_over_sections (bfd * abfd ATTRIBUTE_UNUSED,
--                                      asection * sec,
--                                      void * ignore ATTRIBUTE_UNUSED)
--{
--  unrecord_section_with_arm_elf_section_data (sec);
--}
--
--static bfd_boolean
--elf32_arm_close_and_cleanup (bfd * abfd)
--{
--  if (abfd->sections)
--    bfd_map_over_sections (abfd,
--                         unrecord_section_via_map_over_sections,
--                         NULL);
--
--  return _bfd_elf_close_and_cleanup (abfd);
--}
--
--static bfd_boolean
--elf32_arm_bfd_free_cached_info (bfd * abfd)
--{
--  if (abfd->sections)
--    bfd_map_over_sections (abfd,
--                         unrecord_section_via_map_over_sections,
--                         NULL);
--
--  return _bfd_free_cached_info (abfd);
--}
--
- /* Display STT_ARM_TFUNC symbols as functions.  */
-
- static void
-@@ -13882,8 +13756,6 @@ const struct elf_size_info elf32_arm_siz
- #define bfd_elf32_find_inliner_info           elf32_arm_find_inliner_info
- #define bfd_elf32_new_section_hook            elf32_arm_new_section_hook
- #define bfd_elf32_bfd_is_target_special_symbol        elf32_arm_is_target_special_symbol
--#define bfd_elf32_close_and_cleanup             elf32_arm_close_and_cleanup
--#define bfd_elf32_bfd_free_cached_info          elf32_arm_bfd_free_cached_info
- #define bfd_elf32_bfd_final_link              elf32_arm_final_link
-
- #define elf_backend_get_symbol_type             elf32_arm_get_symbol_type
diff --git a/package/binutils/binutils-2.20.1/500-sysroot.patch b/package/binutils/binutils-2.20.1/500-sysroot.patch
deleted file mode 100644 (file)
index d21e4cb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,24 @@
-      directory first.  */
-   if (! entry->is_archive)
-     {
--      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
-+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
-       {
-         char *name = concat (ld_sysroot, entry->filename,
-                              (const char *) NULL);
-         if (ldfile_try_open_bfd (name, entry))
-           {
-             entry->filename = name;
-+            entry->sysrooted = TRUE;
-             return TRUE;
-           }
-         free (name);
-       }
--      else if (ldfile_try_open_bfd (entry->filename, entry))
-+
-+      if (ldfile_try_open_bfd (entry->filename, entry))
-       {
-         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
-           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/binutils-2.21.1/110-arm-eabi-conf.patch b/package/binutils/binutils-2.21.1/110-arm-eabi-conf.patch
deleted file mode 100644 (file)
index af26329..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
---- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
-@@ -2245,7 +2245,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
-diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
---- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
-@@ -522,7 +522,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
diff --git a/package/binutils/binutils-2.21.1/120-sh-conf.patch b/package/binutils/binutils-2.21.1/120-sh-conf.patch
deleted file mode 100644 (file)
index 071d15a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
---- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
-@@ -2281,7 +2281,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -2606,7 +2606,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[3456789]86-*-vsta) ;; # don't add gprof back in
-       i[3456789]86-*-go32*) ;; # don't add gprof back in
-diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
---- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
-@@ -530,7 +530,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;    
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -855,7 +855,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
-       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/binutils-2.21.1/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.21.1/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.21.1/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.21.1/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index df78310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
-             && 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;
-@@ -1497,6 +1499,8 @@
-   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)
diff --git a/package/binutils/binutils-2.21.1/500-sysroot.patch b/package/binutils/binutils-2.21.1/500-sysroot.patch
deleted file mode 100644 (file)
index d21e4cb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,24 @@
-      directory first.  */
-   if (! entry->is_archive)
-     {
--      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
-+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
-       {
-         char *name = concat (ld_sysroot, entry->filename,
-                              (const char *) NULL);
-         if (ldfile_try_open_bfd (name, entry))
-           {
-             entry->filename = name;
-+            entry->sysrooted = TRUE;
-             return TRUE;
-           }
-         free (name);
-       }
--      else if (ldfile_try_open_bfd (entry->filename, entry))
-+
-+      if (ldfile_try_open_bfd (entry->filename, entry))
-       {
-         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
-           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/binutils-2.21/110-arm-eabi-conf.patch b/package/binutils/binutils-2.21/110-arm-eabi-conf.patch
deleted file mode 100644 (file)
index af26329..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure
---- binutils-2.18.50.0.3.orig/configure        2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure     2007-11-22 12:45:01.000000000 +0100
-@@ -2245,7 +2245,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
-diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac
---- binutils-2.18.50.0.3.orig/configure.ac     2007-11-22 12:41:26.000000000 +0100
-+++ binutils-2.18.50.0.3/configure.ac  2007-11-22 12:44:54.000000000 +0100
-@@ -522,7 +522,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
-     libgloss_dir=arm
-     ;;
--  arm*-*-linux-gnueabi)
-+  arm*-*-linux-*gnueabi)
-     noconfigdirs="$noconfigdirs target-qthreads"
-     noconfigdirs="$noconfigdirs target-libobjc"
-     case ${with_newlib} in
diff --git a/package/binutils/binutils-2.21/120-sh-conf.patch b/package/binutils/binutils-2.21/120-sh-conf.patch
deleted file mode 100644 (file)
index 071d15a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -rdup binutils-2.18.50.0.9.old/configure binutils-2.18.50.0.9/configure
---- binutils-2.18.50.0.9.old/configure 2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure     2008-10-14 14:25:22.000000000 +0200
-@@ -2281,7 +2281,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -2606,7 +2606,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[3456789]86-*-vsta) ;; # don't add gprof back in
-       i[3456789]86-*-go32*) ;; # don't add gprof back in
-diff -rdup binutils-2.18.50.0.9.old/configure.ac binutils-2.18.50.0.9/configure.ac
---- binutils-2.18.50.0.9.old/configure.ac      2008-08-23 17:36:13.000000000 +0200
-+++ binutils-2.18.50.0.9/configure.ac  2008-10-14 14:25:11.000000000 +0200
-@@ -530,7 +530,7 @@ case "${target}" in
-   am33_2.0-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;
--  sh-*-linux*)
-+  sh*-*-linux*)
-     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
-     ;;    
-   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-@@ -855,7 +855,7 @@ case "${target}" in
-   romp-*-*)
-     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${host}" in
-       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
-       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
diff --git a/package/binutils/binutils-2.21/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.21/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.21/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index df78310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
-             && 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;
-@@ -1497,6 +1499,8 @@
-   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)
diff --git a/package/binutils/binutils-2.21/500-sysroot.patch b/package/binutils/binutils-2.21/500-sysroot.patch
deleted file mode 100644 (file)
index d21e4cb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,24 @@
-      directory first.  */
-   if (! entry->is_archive)
-     {
--      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
-+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
-       {
-         char *name = concat (ld_sysroot, entry->filename,
-                              (const char *) NULL);
-         if (ldfile_try_open_bfd (name, entry))
-           {
-             entry->filename = name;
-+            entry->sysrooted = TRUE;
-             return TRUE;
-           }
-         free (name);
-       }
--      else if (ldfile_try_open_bfd (entry->filename, entry))
-+
-+      if (ldfile_try_open_bfd (entry->filename, entry))
-       {
-         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
-           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/binutils-2.22/120-sh-conf.patch b/package/binutils/binutils-2.22/120-sh-conf.patch
deleted file mode 100644 (file)
index ea3d1b6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
-
-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).
-
---- a/configure
-+++ b/configure
-@@ -1495,7 +1495,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
---- a/configure.ac
-+++ b/configure.ac
-@@ -712,7 +712,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
diff --git a/package/binutils/binutils-2.22/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.22/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.22/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.22/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index df78310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
-             && 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;
-@@ -1497,6 +1499,8 @@
-   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)
diff --git a/package/binutils/binutils-2.22/500-sysroot.patch b/package/binutils/binutils-2.22/500-sysroot.patch
deleted file mode 100644 (file)
index d21e4cb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,24 @@
-      directory first.  */
-   if (! entry->is_archive)
-     {
--      if (entry->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->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
-+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
-       {
-         char *name = concat (ld_sysroot, entry->filename,
-                              (const char *) NULL);
-         if (ldfile_try_open_bfd (name, entry))
-           {
-             entry->filename = name;
-+            entry->sysrooted = TRUE;
-             return TRUE;
-           }
-         free (name);
-       }
--      else if (ldfile_try_open_bfd (entry->filename, entry))
-+
-+      if (ldfile_try_open_bfd (entry->filename, entry))
-       {
-         entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
-           && is_sysrooted_pathname (entry->filename, TRUE);
diff --git a/package/binutils/binutils-2.22/999-ppc-textrels.patch b/package/binutils/binutils-2.22/999-ppc-textrels.patch
deleted file mode 100644 (file)
index c1efacf..0000000
+++ /dev/null
@@ -1,80 +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
-diff -u -r1.302.2.1 -r1.302.2.2
---- src/bfd/elf32-ppc.c        2011/11/15 11:36:52     1.302.2.1
-+++ src/bfd/elf32-ppc.c        2011/12/03 00:58:01     1.302.2.2
-@@ -2987,10 +2987,6 @@
-   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 @@
-       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;
-===================================================================
-RCS file: /cvs/src/src/bfd/elf64-ppc.c,v
-retrieving revision 1.363.2.4
-retrieving revision 1.363.2.5
-diff -u -r1.363.2.4 -r1.363.2.5
---- src/bfd/elf64-ppc.c        2011/11/08 13:46:36     1.363.2.4
-+++ src/bfd/elf64-ppc.c        2011/12/03 00:58:02     1.363.2.5
-@@ -4435,10 +4435,6 @@
-   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 @@
-       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)
diff --git a/package/binutils/binutils-2.23.1/120-sh-conf.patch b/package/binutils/binutils-2.23.1/120-sh-conf.patch
deleted file mode 100644 (file)
index ea3d1b6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
-
-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).
-
---- a/configure
-+++ b/configure
-@@ -1495,7 +1495,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
---- a/configure.ac
-+++ b/configure.ac
-@@ -712,7 +712,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
diff --git a/package/binutils/binutils-2.23.1/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.23.1/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.23.1/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.23.1/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index df78310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
-             && 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;
-@@ -1497,6 +1499,8 @@
-   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)
diff --git a/package/binutils/binutils-2.23.1/500-sysroot.patch b/package/binutils/binutils-2.23.1/500-sysroot.patch
deleted file mode 100644 (file)
index e49c795..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,25 @@
-      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))
diff --git a/package/binutils/binutils-2.23.2/120-sh-conf.patch b/package/binutils/binutils-2.23.2/120-sh-conf.patch
deleted file mode 100644 (file)
index ea3d1b6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
-
-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).
-
---- a/configure
-+++ b/configure
-@@ -1495,7 +1495,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
---- a/configure.ac
-+++ b/configure.ac
-@@ -712,7 +712,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
diff --git a/package/binutils/binutils-2.23.2/300-001_ld_makefile_patch.patch b/package/binutils/binutils-2.23.2/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 5cb0f61..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am       2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # 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 -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in       2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/package/binutils/binutils-2.23.2/300-012_check_ldrunpath_length.patch b/package/binutils/binutils-2.23.2/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index df78310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em   2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em        2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
-             && 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;
-@@ -1497,6 +1499,8 @@
-   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)
diff --git a/package/binutils/binutils-2.23.2/500-sysroot.patch b/package/binutils/binutils-2.23.2/500-sysroot.patch
deleted file mode 100644 (file)
index e49c795..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-
-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
-
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -308,18 +308,25 @@
-      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))