Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/FSF]: src/external/gpl3/binutils/dist Import the binutils-2_19-branch so...



details:   https://anonhg.NetBSD.org/src/rev/9b6dbfdae2c3
branches:  FSF
changeset: 746635:9b6dbfdae2c3
user:      skrll <skrll%NetBSD.org@localhost>
date:      Mon Dec 06 14:24:11 2010 +0000

description:
Import the binutils-2_19-branch sources as of 2010-04-02.

diffstat:

 external/gpl3/binutils/dist/bfd/ChangeLog                            |   105 +
 external/gpl3/binutils/dist/bfd/dwarf2.c                             |    88 +-
 external/gpl3/binutils/dist/bfd/elf-eh-frame.c                       |    30 +-
 external/gpl3/binutils/dist/bfd/elf.c                                |   110 +-
 external/gpl3/binutils/dist/bfd/elf32-avr.c                          |     6 +-
 external/gpl3/binutils/dist/bfd/elf32-ppc.c                          |   158 +-
 external/gpl3/binutils/dist/bfd/elf64-ppc.c                          |   259 +-
 external/gpl3/binutils/dist/bfd/elflink.c                            |    98 +-
 external/gpl3/binutils/dist/bfd/linker.c                             |    42 +-
 external/gpl3/binutils/dist/bfd/syms.c                               |     9 +-
 external/gpl3/binutils/dist/bfd/version.h                            |     2 +-
 external/gpl3/binutils/dist/binutils/ChangeLog                       |    13 +
 external/gpl3/binutils/dist/binutils/NEWS                            |     4 +
 external/gpl3/binutils/dist/binutils/doc/binutils.texi               |    12 +-
 external/gpl3/binutils/dist/binutils/objcopy.c                       |    19 +-
 external/gpl3/binutils/dist/binutils/readelf.c                       |    23 +
 external/gpl3/binutils/dist/configure.ac                             |     2 +-
 external/gpl3/binutils/dist/gas/ChangeLog                            |    38 +-
 external/gpl3/binutils/dist/gas/config/tc-arm.c                      |    10 +-
 external/gpl3/binutils/dist/gas/config/tc-ppc.c                      |   240 +-
 external/gpl3/binutils/dist/gas/doc/as.texinfo                       |     3 +-
 external/gpl3/binutils/dist/gas/doc/c-ppc.texi                       |     5 +-
 external/gpl3/binutils/dist/gas/testsuite/ChangeLog                  |    53 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke.d            |   183 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke.s            |   122 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke_xcoff.d      |     4 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke_xcoff.s      |     2 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke_xcoff64.d    |     4 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/booke_xcoff64.s    |     2 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/common.d           |   190 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/common.s           |   182 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/e500mc.d           |    77 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/e500mc.s           |     5 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power4_32.d        |    46 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power4_32.s        |    39 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power6.d           |    42 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power6.s           |    41 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power7.d           |   104 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power7.s           |    72 +-
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/ppc.exp            |     3 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/vsx.d              |   174 +
 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/vsx.s              |   166 +
 external/gpl3/binutils/dist/include/elf/ChangeLog                    |     8 +
 external/gpl3/binutils/dist/include/elf/internal.h                   |     2 +
 external/gpl3/binutils/dist/include/elf/ppc.h                        |     5 +
 external/gpl3/binutils/dist/include/opcode/ChangeLog                 |     9 +
 external/gpl3/binutils/dist/include/opcode/ppc.h                     |     9 +-
 external/gpl3/binutils/dist/ld/ChangeLog                             |    62 +
 external/gpl3/binutils/dist/ld/emultempl/beos.em                     |    20 +-
 external/gpl3/binutils/dist/ld/emultempl/elf32.em                    |    63 +-
 external/gpl3/binutils/dist/ld/emultempl/genelf.em                   |    20 +
 external/gpl3/binutils/dist/ld/emultempl/mmo.em                      |     8 +-
 external/gpl3/binutils/dist/ld/emultempl/pe.em                       |    49 +-
 external/gpl3/binutils/dist/ld/emultempl/pep.em                      |    49 +-
 external/gpl3/binutils/dist/ld/emultempl/spuelf.em                   |     7 +-
 external/gpl3/binutils/dist/ld/emultempl/xtensaelf.em                |    11 +-
 external/gpl3/binutils/dist/ld/ldctor.c                              |    12 +-
 external/gpl3/binutils/dist/ld/ldemul.c                              |     4 +-
 external/gpl3/binutils/dist/ld/ldemul.h                              |     4 +-
 external/gpl3/binutils/dist/ld/ldexp.c                               |   281 +-
 external/gpl3/binutils/dist/ld/ldlang.c                              |   149 +-
 external/gpl3/binutils/dist/ld/ldlang.h                              |    10 +-
 external/gpl3/binutils/dist/ld/testsuite/ChangeLog                   |    23 +
 external/gpl3/binutils/dist/ld/testsuite/ld-elf/eh-group.exp         |    24 +-
 external/gpl3/binutils/dist/ld/testsuite/ld-elf/eh-group2.s          |    11 +
 external/gpl3/binutils/dist/ld/testsuite/ld-elf/linkoncerdiff.d      |     6 +
 external/gpl3/binutils/dist/ld/testsuite/ld-elf/linkoncerdiff1.s     |     7 +
 external/gpl3/binutils/dist/ld/testsuite/ld-elf/linkoncerdiff2.s     |    22 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/attr-gnu-12-1.s  |     1 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/attr-gnu-12-11.d |    10 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/attr-gnu-12-2.s  |     1 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/attr-gnu-12-21.d |     6 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/powerpc.exp      |     8 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/vxworks-relax.rd |     9 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/vxworks-relax.s  |    13 +
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/vxworks1.ld      |     2 +-
 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/vxworks1.rd      |     4 +-
 external/gpl3/binutils/dist/opcodes/ChangeLog                        |    90 +
 external/gpl3/binutils/dist/opcodes/ppc-dis.c                        |    12 +-
 external/gpl3/binutils/dist/opcodes/ppc-opc.c                        |  6711 +++++----
 80 files changed, 6209 insertions(+), 4320 deletions(-)

diffs (truncated from 12448 to 300 lines):

diff -r 762ef2d71232 -r 9b6dbfdae2c3 external/gpl3/binutils/dist/bfd/ChangeLog
--- a/external/gpl3/binutils/dist/bfd/ChangeLog Tue Aug 18 10:16:42 2009 +0000
+++ b/external/gpl3/binutils/dist/bfd/ChangeLog Mon Dec 06 14:24:11 2010 +0000
@@ -1,3 +1,108 @@
+2009-03-02  Alan Modra  <amodra%bigpond.net.au@localhost>
+
+       2009-02-15  Alan Modra  <amodra%bigpond.net.au@localhost>
+       * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
+       add toc.symndx and toc.add.
+       (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
+       Set up toc.add.
+       (get_tls_mask): Add toc_addend param, set from toc.add.  Adjust all
+       callers.
+       (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
+       (branch_reloc_hash_match): New function, extracted from..
+       (ppc64_elf_tls_optimize): ..here.
+       (ppc64_elf_relocate_section): Properly set addends when optimizing
+       tls sequences.  Avoid unnecessary reading and writing of insns.
+       Only redo reloc when symbol changed.  Bypass symbol checks when
+       using tlsld_got.
+       * elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
+       (branch_reloc_hash_match): New function, extracted from..
+       (ppc_elf_tls_optimize): ..here.
+       (ppc_elf_relocate_section): Avoid unnecessary reading of insns.
+       Don't clear addend on zapped __tls_get_addr reloc.
+
+       2009-02-01  Jan Kratochvil  <jan.kratochvil%redhat.com@localhost>
+       * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
+       (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.
+
+       2009-01-26  Nathan Sidwell  <nathan%codesourcery.com@localhost>
+       * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
+       describing the trampolines.
+       (ppc_elf_relocate_section): Update relocs to describe the
+       trampolines.
+
+       2009-01-22  Alan Modra  <amodra%bigpond.net.au@localhost>
+       PR 6832
+       * dwarf2.c (find_line): Don't update stash->sec_info_ptr until
+       after comp_unit_find_line call.
+
+       2009-01-14  Alan Modra  <amodra%bigpond.net.au@localhost>
+       PR 9735
+       * syms.c (_bfd_stab_section_find_nearest_line): Don't free
+       saved filename, use bfd_alloc rather than bfd_malloc for it.
+
+       2009-01-11  Jan Kratochvil  <jan.kratochvil%redhat.com@localhost>
+       * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
+       relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
+
+       2008-12-11  Alan Modra  <amodra%bigpond.net.au@localhost>
+       PR 7041
+       * elf64-ppc.c (func_desc_adjust): Correct logic making fake function
+       descriptors.  Similarly correct making function descriptors dynamic.
+
+       2008-11-14  Nathan Sidwell  <nathan%codesourcery.com@localhost>
+       * elf.c (assign_file_positions_for_load_sections): Use header_size
+       to avoid moving the load address of file headers.
+       (assign_file_positions_for_load_sections): Set header_size for
+       segments containing the file header.
+
+       2008-11-13  Hans-Peter Nilsson  <hp%axis.com@localhost>
+       PR ld/7028
+       * elf.c (assign_file_positions_for_load_sections): Allocate phrds
+       with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use
+       the possibly-preset header-size, not the computed one.
+
+       2008-11-13  Alan Modra  <amodra%bigpond.net.au@localhost>
+       PR 7023
+       * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.
+
+       2008-11-11  Alan Modra  <amodra%bigpond.net.au@localhost>
+       PR 7012
+       * dwarf2.c (find_line): Don't keep stale pointers into realloc'd
+       memory.  Return on errors.  Fix memory leak.
+       (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.
+
+       2008-10-10  Nathan Froyd  <froydnj%codesourcery.com@localhost>
+       * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
+       Tag_GNU_Power_ABI_Struct_Return.
+
+       2008-10-03  Alan Modra  <amodra%bigpond.net.au@localhost>
+       * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
+       the signature symbol is global.
+       * elflink.c (elf_link_input_bfd): Ensure group signature symbol
+       is output when ld -r.  Set group sh_info when local.
+       * linker.c (default_indirect_link_order): Handle group sections
+       specially.
+
+       2008-09-28  Alan Modra  <amodra%bigpond.net.au@localhost>
+       * elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
+       (bfd_section_from_shdr): Don't change SHT_GROUP section name.
+       * elflink.c (section_signature): New function.
+       (_bfd_elf_section_already_linked): Use it.
+
+2009-02-15  Bjoern Haase  <bjoern.m.haase%web.de@localhost>
+
+       PR 9841
+       * elf32-avr.c: Handle case where no local symbos exist correctly.
+
+2009-02-04  Eric B. Weddington  <eric.weddington%atmel.com@localhost>
+
+       * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.
+
+2009-02-03  Tristan Gingold  <gingold%adacore.com@localhost>
+
+       * Makefile.am (RELEASE): Unset.
+       * Makefile.in: Regenerated.
+
 2009-02-02  Tristan Gingold  <gingold%adacore.com@localhost>
 
        * configure.in: Bump version to 2.19.1
diff -r 762ef2d71232 -r 9b6dbfdae2c3 external/gpl3/binutils/dist/bfd/dwarf2.c
--- a/external/gpl3/binutils/dist/bfd/dwarf2.c  Tue Aug 18 10:16:42 2009 +0000
+++ b/external/gpl3/binutils/dist/bfd/dwarf2.c  Mon Dec 06 14:24:11 2010 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 support.
    Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
    Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
    (gavin%cygnus.com@localhost).
@@ -2989,8 +2989,6 @@
                              symbols, 0,
                              &stash->info_ptr_memory, &total_size))
            goto done;
-         stash->info_ptr = stash->info_ptr_memory;
-         stash->info_ptr_end = stash->info_ptr + total_size;
        }
       else
        {
@@ -3008,63 +3006,64 @@
              if (stash->info_ptr_memory == NULL)
                goto done;
 
-             stash->info_ptr = stash->info_ptr_memory;
-             stash->info_ptr_end = stash->info_ptr;
-
+             total_size = 0;
              for (msec = find_debug_info (debug_bfd, NULL);
                   msec;
                   msec = find_debug_info (debug_bfd, msec))
                {
                  bfd_size_type size;
-                 bfd_size_type start;
 
                  size = msec->size;
                  if (size == 0)
                    continue;
 
-                 start = stash->info_ptr_end - stash->info_ptr;
-
-                 if ((bfd_simple_get_relocated_section_contents
-                      (debug_bfd, msec, stash->info_ptr + start, symbols))
-                     == NULL)
-                   continue;
-
-                 stash->info_ptr_end = stash->info_ptr + start + size;
+                 if (!(bfd_simple_get_relocated_section_contents
+                       (debug_bfd, msec, stash->info_ptr_memory + total_size,
+                        symbols)))
+                   goto done;
+
+                 total_size += size;
                }
-
-             BFD_ASSERT (stash->info_ptr_end == stash->info_ptr + total_size);
            }
          else
            {
              /* Case 3: multiple sections, some or all compressed.  */
-             stash->info_ptr_memory = bfd_malloc (1);
-             stash->info_ptr = stash->info_ptr_memory;
-             stash->info_ptr_end = stash->info_ptr;
+             stash->info_ptr_memory = NULL;
+             total_size = 0;
              for (msec = find_debug_info (debug_bfd, NULL);
                   msec;
                   msec = find_debug_info (debug_bfd, msec))
                {
                  bfd_size_type size = msec->size;
-                 bfd_byte* buffer
-                     = (bfd_simple_get_relocated_section_contents
-                        (debug_bfd, msec, NULL, symbols));
+                 bfd_byte* buffer;
+
+                 if (size == 0)
+                   continue;
+
+                 buffer = (bfd_simple_get_relocated_section_contents
+                           (debug_bfd, msec, NULL, symbols));
                  if (! buffer)
-                   continue;
+                   goto done;
+
                  if (strcmp (msec->name, DWARF2_COMPRESSED_DEBUG_INFO) == 0)
                    {
                      if (! bfd_uncompress_section_contents (&buffer, &size))
-                       continue;
+                       {
+                         free (buffer);
+                         goto done;
+                       }
                    }
-                 stash->info_ptr = bfd_realloc (stash->info_ptr,
-                                                stash->info_ptr_end
-                                                - stash->info_ptr + size);
-                 memcpy (stash->info_ptr_end, buffer, size);
+                 stash->info_ptr_memory = bfd_realloc (stash->info_ptr_memory,
+                                                       total_size + size);
+                 memcpy (stash->info_ptr_memory + total_size, buffer, size);
                  free (buffer);
-                 stash->info_ptr_end += size;
+                 total_size += size;
                }
            }
        }
 
+      stash->info_ptr = stash->info_ptr_memory;
+      stash->info_ptr_end = stash->info_ptr + total_size;
       stash->sec = find_debug_info (debug_bfd, NULL);
       stash->sec_info_ptr = stash->info_ptr;
       stash->syms = symbols;
@@ -3187,13 +3186,6 @@
            break;
          stash->info_ptr += length;
 
-         if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr)
-             == stash->sec->size)
-           {
-             stash->sec = find_debug_info (stash->bfd, stash->sec);
-             stash->sec_info_ptr = stash->info_ptr;
-           }
-
          if (stash->all_comp_units)
            stash->all_comp_units->prev_unit = each;
          else
@@ -3223,6 +3215,14 @@
                                                     functionname_ptr,
                                                     linenumber_ptr,
                                                     stash));
+
+         if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr)
+             == stash->sec->size)
+           {
+             stash->sec = find_debug_info (stash->bfd, stash->sec);
+             stash->sec_info_ptr = stash->info_ptr;
+           }
+
          if (found)
            goto done;
        }
@@ -3364,8 +3364,14 @@
        }
     }
 
-  free (stash->dwarf_abbrev_buffer);
-  free (stash->dwarf_line_buffer);
-  free (stash->dwarf_ranges_buffer);
-  free (stash->info_ptr_memory);
+  if (stash->dwarf_abbrev_buffer)
+    free (stash->dwarf_abbrev_buffer);
+  if (stash->dwarf_line_buffer)
+    free (stash->dwarf_line_buffer);
+  if (stash->dwarf_str_buffer)
+    free (stash->dwarf_str_buffer);
+  if (stash->dwarf_ranges_buffer)
+    free (stash->dwarf_ranges_buffer);
+  if (stash->info_ptr_memory)
+    free (stash->info_ptr_memory);
 }
diff -r 762ef2d71232 -r 9b6dbfdae2c3 external/gpl3/binutils/dist/bfd/elf-eh-frame.c
--- a/external/gpl3/binutils/dist/bfd/elf-eh-frame.c    Tue Aug 18 10:16:42 2009 +0000
+++ b/external/gpl3/binutils/dist/bfd/elf-eh-frame.c    Mon Dec 06 14:24:11 2010 +0000
@@ -549,16 +549,6 @@
             < (bfd_size_type) ((buf) - ehbuf)))        \
     cookie->rel++
 
-#define REQUIRE_CLEARED_RELOCS(buf)                    \
-  while (cookie->rel < cookie->relend                  \
-        && (cookie->rel->r_offset                      \
-            < (bfd_size_type) ((buf) - ehbuf)))        \
-    {                                                  \
-      REQUIRE (cookie->rel->r_info == 0);              \
-      REQUIRE (cookie->rel->r_addend == 0);            \
-      cookie->rel++;                                   \
-    }
-
 #define GET_RELOC(buf)                                 \
   ((cookie->rel < cookie->relend                       \
     && (cookie->rel->r_offset                          \
@@ -817,16 +807,16 @@
 
          buf = last_fde + 4 + hdr_length;
 
-         /* Cleared FDE?  The instructions will not be cleared but verify all
-            the relocation entries for them are cleared.  */
-         if (rsec == NULL)
-           {



Home | Main Index | Thread Index | Old Index