bfd/
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index e178d333d3ded1280336d63a2a5ed63519406306..ea94b0255a7fd0154accc8ab944883adc8752b16 100644 (file)
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.
+       * elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.
+       (elfNN_bed): Use it.
+       * elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p
+       instead of default_use_rela_p to choose between ".rel.plt" and
+       ".rela.plt".
+       * elflink.c (_bfd_elf_create_dynamic_sections): Use
+       rela_plts_and_copies_p instead of default_use_rela_p to choose
+       between ".rel.plt" and ".rela.plt", and between ".rel.bss" and
+       ".rela.bss".
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.
+       * elf32-mips.c (bfd_elf32_mkobject): Define.
+       * elf64-mips.c (bfd_elf64_mkobject): Likewise.
+       * elfn32-mips.c (bfd_elf32_mkobject): Likewise.
+       * elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.
+       * elfxx-mips.c (is_mips_elf): New macro.
+       (_bfd_mips_elf_mkobject): New function.
+       (_bfd_mips_elf_final_link): Use is_mips_elf.
+       (_bfd_mips_elf_merge_private_bfd_data): Likewise.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a
+       global GOT entry when deferring allocation of dynamic relocations.
+       (allocate_dynrelocs): When allocating deferred dynamic relocations,
+       also do the deferred allocation of a GOT entry.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.
+       (mips_elf_got_section): Delete.
+       (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide
+       how many reloc-only entries there are.
+       (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as
+       well as g->global_gotno.
+       (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.
+       (mips_elf_multi_got): Likewise.  Use gg->reloc_only_gotno
+       rather than gg->assigned_gotno to store the number of
+       reloc-only GOT entries.
+       (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.
+       Initialize reloc_only_gotno.
+       (mips_elf_calculate_relocation): Check htab->got_info instead of
+       dynobj when deciding whether to call mips_elf_adjust_gp,
+       (_bfd_mips_elf_create_dynamic_sections): Adjust the call
+       to mips_elf_create_got_section.
+       (mips_elf_record_relocs): Likewise.  Remove redundant
+       "dynobj == NULL" code.  Do not use mips_elf_create_got_section
+       or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32
+       and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.
+       (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead
+       of mips_elf_got_section.
+       (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
+       (_bfd_mips_elf_finish_dynamic_sections): Likewise.
+       Move the initial assignment of G to the block that uses it;
+       it is used for an unrelated purpose later.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (count_section_dynsyms): Move before the new first use.
+       (mips_elf_sort_hash_table): Take the output bfd as a parameter.
+       Remove the MAX_LOCAL parameter.  Exit early if there are no
+       dynamic symbols, if there is no dynobj, or if there is no
+       GOT section.  Use count_section_dynsyms instead of MAX_LOCAL.
+       Assert == rather than <= when checking hsd.max_unref_got_dynindx.
+       Also assert that g->global_gotno is right.
+       (mips_elf_count_forced_local_got_symbols): Rename to...
+       (mips_elf_count_got_symbols): ...and count global GOT entries too.
+       Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol
+       to GGA_NONE.
+       (mips_elf_multi_got): Don't sort the symbol table.
+       (mips_elf_lay_out_got): Likewise.  Use mips_elf_count_got_symbols
+       to count the number of global GOT entries.
+       (_bfd_mips_elf_final_link): Unconditionally call
+       mips_elf_sort_hash_table.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.
+       (mips_elf_link_hash_entry): Add a "global_got_area" field.
+       (mips_elf_link_hash_newfunc): Initialize it.
+       (mips_elf_sort_hash_table_f): Use h->global_got_area instead of
+       h->root.got.offset.  Do not handle forced_local symbols specially.
+       (mips_elf_record_global_got_symbol): Set h->global_got_area
+       instead of h->root.got.offset.
+       (mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE
+       for indirect and warning symbols.
+       (mips_elf_count_forced_local_got_symbols): Change the argument
+       from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".
+       Use and set h->global_got_area instead of h->root.got.offset.
+       Set it to GGA_NONE for all forced-local symbols.
+       (mips_elf_set_global_got_offset): Set h->global_got_area
+       instead of h->root.got.offset.  Use g->global_got_area instead
+       of a combination of dynindx, forced_local and tls_type.
+       (mips_elf_multi_got): Remove disabled code.  Pass GGA_* values to
+       mips_elf_set_global_got_offset.
+       (mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead
+       of elf_link_hash_traverse.
+       (_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's
+       global_got_area to the direct symbol if the latter's value is higher.
+       Set the indirect symbol's area to GGA_NONE.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf32-mips.c (elf_backend_hide_symbol): Delete.
+       * elfn32-mips.c (elf_backend_hide_symbol): Likewise.
+       * elf64-mips.c (elf_backend_hide_symbol): Likewise.
+       * elfxx-mips.h (elf_backend_hide_symbol): Likewise.
+       * elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"
+       and add "needs_lazy_stub".
+       (mips_elf_link_hash_newfunc): Update accordingly.
+       (mips_elf_link_hash_table): Remove "computed_got_sizes" and
+       add "lazy_stub_count".
+       (_bfd_mips_elf_link_hash_table_create): Update accordingly.
+       (mips_elf_output_extsym): Use hd->needs_lazy_stub to detect
+       cases where a lazy stub is being used.
+       (mips_elf_sort_hash_table_f): Use h->root.forced_local instead
+       of h->forced_local.
+       (mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol
+       instead of _bfd_mips_elf_hide_symbol.  Do not increment local_gotno
+       here.
+       (mips_elf_allocate_dynamic_relocations): Move before new first use.
+       (mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.
+       (mips_elf_resolve_final_got_entries): Move earlier in file.  Make at
+       most two passes over the hash table.  Use mips_elf_check_recreate_got
+       to see if there are any indirect or warning entries and
+       mips_elf_recreate_got to create a new GOT without them.
+       Return a boolean success value.
+       (mips_elf_count_forced_local_got_entries): New function.
+       (mips_elf_make_got_per_bfd): Check h->root.forced_local instead of
+       h->forced_local.
+       (mips_elf_set_global_got_offset): Likewise.
+       (mips_elf_set_no_stub): Replace with...
+       (mips_elf_forbid_lazy_stubs): ...this new function.
+       (mips_elf_resolve_final_got_entry): Delete.
+       (mips_elf_multi_got): Fix formatting.  Use mips_elf_forbid_lazy_stubs
+       instead of mips_elf_set_no_stub.  Move the code that sets
+       global offsets and allocates dynamic relocations from the main
+       _bfd_mips_elf_size_dynamic_sections loop to here.
+       (_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in
+       .MIPS.stubs here; just set hmips->needs_lazy_stub and increment
+       htab->lazy_stub_count.
+       (_bfd_mips_elf_always_size_sections): Move the stub-estimation
+       code to mips_elf_estimate_stub_size and the GOT-sizing code to
+       mips_elf_lay_out_got.  Do not call these functions here.
+       (mips_elf_estimate_stub_size): New function, split
+       out from _bfd_mips_elf_always_size_sections.  Call
+       mips_elf_resolve_final_got_entries earlier.  Count the number
+       of forced-local entries.  Do not add stub sizes to loadable_size;
+       after this patch, the stub sizes are already included in the main
+       estimate.  Allocate dynamic relocations here rather than in the
+       main _bfd_mips_elf_size_dynamic_sections loop.
+       (mips_elf_estimate_stub_size): New function, split out from
+       _bfd_mips_elf_always_size_sections.
+       (mips_elf_allocate_lazy_stub): New function.
+       (mips_elf_lay_out_lazy_stubs): Likewise.
+       (_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,
+       mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs.  Do not handle
+       the allocation of sreldyn specially.
+       (_bfd_mips_elf_hide_symbol): Delete.
+
+2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning
+       symbols.
+
+2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean
+       fields to the end of the structure and make them single-bit
+       bitfields.
+       (mips_elf_link_hash_newfunc): Make the initialization statements
+       follow the new field order.
+
+2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.
+       (mips_elf_link_hash_table): Add "sgot" and "got_info" fields.
+       (_bfd_mips_elf_link_hash_table_create): Initialize them.
+       (mips_elf_got_section): Always apply the !maybe_excluded behavior.
+       (mips_elf_got_info): Delete.
+       (mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.
+       Adjust the call to mips_elf_got_section.
+       (mips_elf_local_got_index): Don't call mips_elf_got_info.
+       Update the call to mips_elf_create_local_got_entry.
+       Use htab->got_info.
+       (mips_elf_global_got_index): Don't call mips_elf_got_info;
+       use htab->got_info and htab->sgot instead.
+       (mips_elf_got_page): Don't call mips_elf_got_info.  Update the
+       call to mips_elf_create_local_got_entry.
+       (mips_elf_got16_entry): Likewise.
+       (mips_elf_got_offset_from_index): Replace with DYNOBJ parameter
+       with an INFO parameter.  Don't call mips_elf_got_info; use htab->sgot
+       and htab->got_info instead.
+       (mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.
+       Use htab->sgot and htab->got_info.
+       (mips_elf_sort_hash_table): Remove the DYNOBJ local variable.
+       Don't call mips_elf_got_info; use htab->got_info instead.
+       (mips_elf_record_global_got_symbol): Turn G from a paramter to
+       a local variable and read it from htab->got_info.
+       (mips_elf_record_local_got_symbol): Replace the G parameter with
+       an INFO parameter.  Make G a local variable and read it from
+       htab->got_info instead.
+       (mips_elf_record_got_page_entry): Likewise.
+       (mips_elf_multi_got): Remove the G parameter and make it a local
+       variable instead.  Read it from htab->got_info.
+       (mips_elf_create_got_section): Cache the GOT section in htab->sgot.
+       Store the GOT information in htab->got_info.
+       (mips_elf_calculate_relocation): Don't call mips_elf_got_section
+       and mips_elf_got_info; use htab->sgot and htab->got_info instead.
+       Adjust the calls to mips_elf_got_offset_from_index and
+       mips_elf_adjust_gp.
+       (_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.
+       Adjust the calls to mips_elf_record_local_got_symbol,
+       mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.
+       Use htab->sgot.
+       (_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.
+       Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.
+       Update the call to mips_elf_multi_got.
+       (_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;
+       use htab->got_info instead.
+       (_bfd_mips_elf_finish_dynamic_symbol): Update the call to
+       mips_elf_got_section.  Get the got_info from the hash table
+       rather than the GOT section.
+       (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
+       (_bfd_mips_elf_finish_dynamic_sections): Likewise.
+       (_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;
+       get the got_info from the hash table instead.  Remove the GOT
+       local variable.
+       (_bfd_mips_elf_final_link): Likewise.  Also remove the DYNOBJ
+       local variable.
+
+2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.
+       (_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs
+       section.  Don't check whether the section already exists.
+       (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.
+       (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
+       (_bfd_mips_elf_finish_dynamic_sections): Likewise.
+       (_bfd_mips_elf_size_dynamic_sections): Likewise.  Don't add the
+       dummy stub to an empty section.
+       (_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.
+
+2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.
+       * libbfd.h, bfd-in2.h: Regenerate.
+       * elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
+       R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
+       (mips16_reloc_map): Add mappings.
+       * elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved
+       R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
+       (mips16_elf64_howto_table_rela): Likewise.
+       (mips16_reloc_map): Add mappings.
+       * elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
+       R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
+       (elf_mips16_howto_table_rela): Likewise.
+       (mips16_reloc_map): Add mappings.
+       * elfxx-mips.c (mips_elf_create_shadow_symbol): New function.
+       (section_allows_mips16_refs_p): Likewise.
+       (mips16_stub_symndx): Likewise.
+       (mips_elf_check_mips16_stubs): Treat the data argument as a
+       bfd_link_info.  Mark every dynamic symbol as needing MIPS16 stubs
+       and create a "shadow" symbol for the original MIPS16 definition.
+       (mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)
+       (lo16_reloc_p, mips16_call_reloc_p): New functions.
+       (_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize
+       relocation checks.
+       (_bfd_mips16_elf_reloc_shuffle): Likewise.
+       (_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.
+       (mips_elf_got16_entry): Add comment.
+       (mips_elf_calculate_relocation): Use hi16_reloc_p,
+       lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p
+       to generalize relocation checks.  Use section_allows_mips16_refs_p
+       instead of mips16_stub_section_p.   Handle R_MIPS16_CALL16 and
+       R_MIPS16_GOT16, allowing the former to refer directly to a
+       MIPS16 function if its stub is not needed.
+       (mips16_stub_section_p): Delete.
+       (_bfd_mips_elf_symbol_processing): Convert odd-valued function
+       symbols into even MIPS16 symbols.
+       (mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize
+       a relocation check.
+       (_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"
+       earlier in the function.  Use mips16_stub_symndx to identify
+       the target function.  Avoid out-of-bounds accesses when the
+       stub has no relocations; report an error instead.  Use
+       section_allows_mips16_refs_p instead of mips16_stub_section_p.
+       Use mips16_call_reloc_p and got16_reloc_p to generalize relocation
+       checks.  Handle R_MIPS16_CALL16 and R_MIPS16_GOT16.  Don't create
+       dynamic relocations for absolute references to __gnu_local_gp.
+       (_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as
+       the argument to mips_elf_check_mips16_stubs.  Generalize comment.
+       (_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p
+       to generalize relocation checks.
+       (_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function
+       symbol has a non-MIPS16 stub, redirect the symbol to the stub.
+       Fix an overly long line.  Don't give dynamic symbols type STO_MIPS16.
+       (_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and
+       R_MIPS16_GOT16.
+
+2008-08-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.
+       (ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.
+
+2008-08-05  Alan Modra  <amodra@bigpond.net.au>
+           Jaka Močnik <jaka@xlab.si>
+
+       * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first
+       so that we don't inadvertently free it.  Use bfd_alloc for sort
+       arrays, and memcpy sorted line table.
+
+2008-08-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible
+       if --fixed-space request is too large.
+
+2008-08-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C.
+       * Makefile.in: Regenerate.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2008-08-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (mark_overlay_section): Move code calculating
+       max_overlay_size to correct block.
+       (spu_elf_auto_overlay): Don't use %x in einfo error message.
+
+2008-08-01  Alan Modra  <amodra@bigpond.net.au>
+           Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * elfcore.h (elf_core_file_p): Ensure we have a backend match
+       with the correct arch size before rejecting the generic fallback.
+       * elfcode.h (elf_object_p): Likewise.  Ensure arch size matches
+       before accepting a target.
+
+2008-08-01  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 6774
+       * elf.c (rewrite_elf_program_header): Don't wrap p_paddr to
+       include file or program headers.
+
+2008-07-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c,
+       elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c,
+       elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c,
+       ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings.
+
+2008-07-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating
+       relocations for undefined weak symbols with non-default visibility.
+       (_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for
+       global symbols in shared libraries.
+       (allocate_dynrelocs): New function.
+       (_bfd_mips_elf_adjust_dynamic_symbol): Do not handle
+       possibly_dynamic_relocs here.
+       (_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs.
+
+2008-07-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-i386.c (struct elf_i386_link_hash_table): Added field
+       tls_module_base.
+       (elf_i386_link_hash_table_create): Initialize it.
+       (elf_i386_always_size_sections): Set it.
+       (set_tls_module_base): New.
+       (elf_i386_relocate_sections): Call it.
+       * elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added
+       field tls_module_base.
+       (elf64_x86_64_link_hash_table_create): Initialize it.
+       (elf64_x86_64_always_size_sections): Set it.
+       (set_tls_module_base): New.
+       (elf64_x86_64_relocate_sections): Call it.
+       Reported by Cary Coutant <ccoutant@google.com>
+
+2008-07-28  Ineiev  <ineiev@yahoo.co.uk>
+
+       * elf32-arm.c (arm_map_one_stub): Declare variables at beginning
+       of block.
+       * elf32-avr.c (get_local_syms): Likewise.
+
+2008-07-28  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 6769
+       * bfd-in.h (BFD_VMA_FMT): Define.
+       (printf_vma, sprintf_vma): Use the above.
+       (_bfd_int64_low, _bfd_int64_high): Delete.
+       * bfd-in2.h: Regenerate.
+
+2008-07-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Ignore return from
+       elf_parse_notes.  Use bfd_malloc_and_get_section.
+       (elf_parse_notes): Validate note namesz and descsz.
+
+2008-07-26  Michael Eager <eager@eagercon.com>
+
+       * elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility
+       between single-float, double-float, and soft-float.
+
+2008-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-mips.c (elf_backend_write_section): Define.
+
+2008-07-24  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (_bfd_elf_map_sections_to_segments): Catch off by one
+       error assigning sections to segments.
+
+2008-07-22  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (_bfd_elf_map_sections_to_segments): Allow sections in
+       adjoining pages to be included in the same segment.
+
+2008-07-22  Simon Baldwin  <simonb@google.com>
+
+       * elflink.c (elf_link_output_extsym): Set st_size to zero for
+       symbols from dynamic libraries.
+
+2008-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/4424
+       * elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible
+       to check if 2 inputs are compatible.
+
+2008-07-21  Sterling Augustine  <sterling@tensilica.com>
+
+       * elf.c (assign_file_positions_for_load_sections): Print vma in
+       error message about overlapping section vmas.
+
+2008-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/6747
+       * elf32-frv.c (elf32_frv_relocate_section): Revert the change
+       for PR ld/6446 checked in by accident on May 21, 2008.
+
+2008-07-21  Nick Clifton  <nickc@redhat.com>
+
+       * coff-sh.c (bfd_pe_print_pdata): Define to NULL for non
+       COFF_WITH_PE based SH ports.
+       * libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype.
+       * arm-wince-pe.c (bfd_pe_print_pdata): Use
+       _bfd_pe_print_ce_compressed_pdata.
+       (slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move
+       to...
+       * peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to
+       _bfd_XX_print_ce_compressed_pdata.
+
+2008-07-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
+       unwanted zero terminators.
+
+2008-07-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_relocate_section): Expand
+       RELOC_FOR_GLOBAL_SYMBOL.  Don't warn about undefined symbols for
+       R_SPU_PPU32 and R_SPU_PPU64 relocations.
+
+2008-07-21  Luis Machado  <luisgpm@br.ibm.com>
+
+       * elf-bfd.h: Declare elfcore_write_ppc_vsx.
+       * elf.c (elfcore_grok_ppc_vsx): New function.
+       (elfcore_write_ppc_vsx): New function
+       (elfcore_grok_note): Handle VSX notes.
+       (elfcore_write_register_note): Handle VSX notes.
+
+2008-07-18  Joseph Myers  <joseph@codesourcery.com>
+
+       * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter.
+       * bfd-in2.h: Regenerate.
+       * elf32-arm.c (struct elf_arm_obj_tdata): Add field
+       no_wchar_size_warning.
+       (bfd_elf32_arm_set_target_relocs): Add new parameter
+       no_wchar_warn.
+       (elf32_arm_merge_eabi_attributes): Give a warning, not an error,
+       for conflicting wchar_t attributes.  Do not warn if
+       --no-wchar-size-warning.  Make diagnostic text more specific.
+
+2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/6748
+       * elf32-arm.c (elf32_arm_link_hash_table_create): Initialize
+       new fields added for ARM long call support.
+
+2008-07-18  Danny Backx  <dannybackx@users.sourceforge.net>
+
+       * pe-arm-wince.c (pe_print_compressed_pdata): Define new function to
+       print compressed pdata structure as described on MSDN. This only
+       applies to a limited set of architectures (ARM, SH4).
+       (slurp_symtab, my_symbol_for_address): Define static helper
+       functions for pe_print_compressed_pdata.
+       * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.
+       (bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.
+       * bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on
+       bfd_coff_backend_data, call the function if non-null.
+       * pei-mcore.c: Add target dependent initialisation for
+       bfd_coff_backend_data.
+       * coff-sh.c: Likewise.
+       * coff64-rs6000.c: Likewise.
+       * coff-rs6000.c: Likewise.
+       * libcoff-in.h: Likewise.
+       * cf-i386lynx.c: Likewise.
+       * coff-alpha.c: Likewise.
+       * coff-apollo.c: Likewise.
+       * coff-arm.c: Likewise.
+       * coff-aux.c: Likewise.
+       * coff-h8300.c: Likewise.
+       * coff-h8500.c: Likewise.
+       * coff-i386.c: Likewise.
+       * coff-i860.c: Likewise.
+       * coff-i960.c: Likewise.
+       * coff-ia64.c: Likewise.
+       * coff-m68k.c: Likewise.
+       * coff-m88k.c: Likewise.
+       * coff-maxq.c: Likewise.
+       * coff-mips.c: Likewise.
+       * coff-or32.c: Likewise.
+       * coff-sparc.c: Likewise.
+       * coff-tic30.c: Likewise.
+       * coff-tic4x.c: Likewise.
+       * coff-tic54x.c: Likewise.
+       * coff-tic80.c: Likewise.
+       * coff-w65.c: Likewise.
+       * coff-we32k.c: Likewise.
+       * coff-x86_64.c: Likewise.
+       * coff-z80.c: Likewise.
+       * coff-z8k.c: Likewise.
+       * pe-mcore.c: Likewise.
+       * pe-mips.c: Likewise.
+       * pe-ppc.c: Likewise.
+       * peXXigen.c: Likewise.
+       * pei-ppc.c: Likewise.
+       * libcoff.h: Regenerate.
+
+2008-07-16  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * elf32-bfin.c (bfin_check_relocs, bfin_relocate_section,
+       bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook,
+       ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE,
+       struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code
+       separate from non-FD-PIC.
+
+2008-07-14  DJ Delorie  <dj@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow
+       checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16
+       relocs.
+       (mn10300_elf_relax_section): Correct jump offset check when target
+       is in a different section.
+
+2008-07-15  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf32-bfin.c (elf32_bfin_special_sections[]): New.
+       (elf_backend_special_sections): Define.
+
+2008-07-13  Craig Silverstein  <csilvers@google.com>
+
+       PR binutils/6743
+       * dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory.
+       (find_line): Use info_ptr_memory instead of sec_info_ptr.
+       (_bfd_dwarf2_cleanup_debug_info): Likewise.
+
+2008-07-12  Jie Zhang  <jie.zhang@analog.com>
+
+       Revert
+       2008-07-12  Jie Zhang  <jie.zhang@analog.com>
+       * elf.c (_bfd_elf_map_sections_to_segments): Don't put
+       executable sections into the same segment with other
+       read only sections if --sep-code.
+       * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
+       (elf32_bfin_data_in_l1): New variable.
+       (elf32_bfin_final_write_processing): New.
+       (elf32_bfin_special_sections[]): New.
+       (elf_backend_final_write_processing): Define.
+       (elf_backend_special_sections): Define.
+
+2008-07-12  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf.c (_bfd_elf_map_sections_to_segments): Don't put
+       executable sections into the same segment with other
+       read only sections if --sep-code.
+       * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
+       (elf32_bfin_data_in_l1): New variable.
+       (elf32_bfin_final_write_processing): New.
+       (elf32_bfin_special_sections[]): New.
+       (elf_backend_final_write_processing): Define.
+       (elf_backend_special_sections): Define.
+
+2008-07-11  Andreas Schwab  <schwab@suse.de>
+
+       * dwarf2.c (read_section): Take pointer to bfd_size_type instead
+       of unsigned long as last parameter.
+       (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,
+       dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of
+       unsigned long.
+
+2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0
+       for all relocation types.  Allow any type of relocation to refer to
+       __gnu_local_gp.
+
+2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.
+       (mips_elf_calculate_relocation): Likewise.
+       (_bfd_mips_elf_add_symbol_hook): Likewise.
+       (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
+       (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
+
+2008-07-10  Andreas Schwab  <schwab@suse.de>
+
+       * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing
+       paren.
+
+2008-07-09  Craig Silverstein  <csilvers@google.com>
+
+       * Makefile.am (BFD32_LIBS): Add compress.lo.
+       (BFD32_LIBS_CFILES): Add compress.c.
+       (BFD_H_FILES): Likewise.
+       * Makefile.in: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * config.in: Add HAVE_ZLIB_H
+       * configure.in: Add test for libz and zlib.h
+       * configure: Regenerate.
+       * dwarf2.c (read_section): New function.
+       (read_indirect_string): Call new function read_section.
+       (read_abbrevs): Likewise.
+       (decode_line_info): Likewise.
+       (read_debug_ranges): Likewise.
+       (find_line): Call new function read_section when just one
+       .zdebug_info section is found, otherwise read and compress
+       multiple sections.
+       (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.
+       * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.
+       (special_sections_z): New struct.
+       (special_sections): Refer to special_sections_z.
+       * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize
+       sections named .zdebug_*.
+       (_bfd_mips_elf_fake_sections): Likewise.
+       * compress.c: New file.
+       (bfd_uncompress_section_contents): New function.
+
+2008-07-07  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in
+       the presence of a PLT.
+
+2008-07-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.
+
+2008-07-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (is_pic_glink_stub): New function.
+       (ppc_elf_get_synthetic_symtab): Don't generate symbols when
+       multiple shared/pie stubs per plt entry.
+
+2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by
+       bed->s->int_rels_per_ext_rel.
+
+2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * syms.c (BSF_SYNTHETIC): New flag.
+       * elf.c (_bfd_elf_get_synthetic_symtab): Set it.
+       * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
+       * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
+       * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
+       for synthetic symbols.
+       * bfd-in2.h: Regenerate.
+
+2008-06-30  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
+       Expand comments.
+       (arm_map_one_stub): Use | 1 when setting the low bit.
+
+2008-06-29  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
+       addend on _GLOBAL_OFFSET_TABLE_.
+
+2008-06-24  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (STUB_ENTRY_NAME): Define.
+       (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n.
+       (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of
+       R_ARM_ABS32.
+       (struct elf32_arm_stub_hash_entry): Add output_name.
+       (arm_build_one_stub): Move offsets into the offset argument
+       of _bfd_final_link_relocate.  Correct offset for
+       arm_thumb_arm_v4t_stub_long_branch.
+       (elf32_arm_size_stubs): Set stub_entry->output_name.
+       (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym.
+       Update all callers.
+       (elf32_arm_output_stub_sym): New.
+       (arm_map_one_stub): Correct formatting.  Use elf32_arm_output_stub_sym.
+
+2008-06-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for
+       non-branch insns.
+
+2008-06-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (build_stub): Allow wraparound on stub branches.
+       (allocate_spuear_stubs, build_spuear_stubs): Return value from
+       count_stub/build_stub.
+       (spu_elf_build_stubs): Correct location of stub reloc error message.
+
+2008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+       * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD.
+
+2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure: Regenerate.
+
+2008-06-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space.
+       (spu_elf_check_vma): Add extra_stack_space param, copy to htab.
+       (spu_elf_auto_overlay): Use it.
+       (RECURSE_UNMARK): Define as 0.
+       (unmark_overlay_section): Heed RECURSE_UNMARK.
+       * elf32-spu.h (spu_elf_check_vma): Update prototype.
+
+2008-06-12  DJ Delorie  <dj@redhat.com>
+
+       * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD.
+
+2008-06-09  Paul Brook  <paul@codesourcery.com>
+
+       bfd/
+       * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared
+       libraries.
+
+2008-06-09  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (arm_stub_is_thumb): Define.
+       (elf32_arm_final_link_relocate): Handle near mode switching stubs.
+
+2008-06-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp
+       to stack calculation.
+
+2008-06-06  Paul Brook  <paul@codesourcery.com>
+
+       bfd/
+       * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.
+
+2008-06-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that
+       file names be unique.  Specify archive:path in overlay script.
+
+2008-06-05  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/6590
+       * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets.
+
+2008-06-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (ignore_section_sym): Don't test section sym value here.
+       (elf_map_symbols): Instead check zero value here as was done prior
+       to 2006-05-26 change.
+
+2008-06-04  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/6019
+       * elf32-avr.c (elf32_avr_relax_section): Handle the case where
+       there are no local symbols.
+
+2008-06-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (get_sym_h): Don't attempt to read global syms.
+       (process_stubs): Likewise.
+       (discover_functions): Don't used cached symbols.
+       (maybe_insert_function): Correct condition under which function
+       array is realloc'd.
+       (mark_functions_via_relocs): Delete unused variable.
+
+2008-05-30  Frediano Ziglio  <frediano.ziglio@vodafone.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       PR ld/6511
+       * elf64-hppa.c (allocate_global_data_opd): Default to using the
+       dynamic symbol table for local function names in shared libraries.
+
+2008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * elf.c (assign_file_positions_for_load_sections): Adjust pre-section
+       gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.
+
+2008-05-28  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_object_p): New function.
+       (elf_backend_object_p): Define.
+       (build_stub): Correct second word of 8 byte overlay stubs.
+       (spu_elf_relocate_section): Formatting.
+
+2008-05-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
+
+       * elf.c (elfcore_write_register_note): New function.
+       * elf-bfd.h (elfcore_write_register_note): New prototype.
+
+2008-05-22  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.
+       (elf32_arm_stub_add_mapping_symbol): Remove.
+       (elf32_arm_add_stub): Don't generate mapping symbols. Change
+       prototype.
+       (elf32_arm_size_stubs): Use new elf32_arm_add_stub
+       prototype. Don't generate thumb to arm glue for calls.
+       (arm_map_one_stub): Define.
+       (elf32_arm_output_arch_local_syms): Generate mapping symbols for
+       long calls stubs.
+
+2008-05-21  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arm.c (group_sections): Reformat comments.
+
+       PR ld/6446
+       * elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by
+       default (for FDPIC). Clear it if any inter-segment relocations
+       are found.
+
+       * elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return
+       from elf_link_hash_lookup.
+
+2008-05-21  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       Add multi-GOT support for m68k.
+       * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
+       glist): New fields.
+       (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
+       struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
+       struct elf_m68k_multi_got): New data structures.
+       (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
+       allow_multigot_p, multi_got_): New fields.
+       (elf_m68k_multi_got): New macro.
+       (elf_m68k_link_hash_newfunc): Initialize new fields of
+       struct elf_m68k_link_hash_entry.
+       (elf_m68k_link_hash_table_create): Initialize new fields of
+       struct elf_m68k_link_hash_table.
+       (elf_m68k_link_hash_table_free): New static function implementing hook.
+       (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
+       static functions for struct elf_m68k_got.
+       (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
+       elf_m68k_got_entry_eq): New static functions for
+       struct elf_m68k_got_entry.
+       (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
+       ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
+       (enum elf_m68k_get_entry_howto): New enum.
+       (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
+       elf_m68k_remove_got_entry_type): New static functions for
+       struct elf_m68k_got_entry.
+       (elf_m68k_add_entry_to_got): New static function.
+       (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
+       elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
+       functions for struct elf_m68k_bfd2got_entry.
+       (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
+       elf_m68k_can_merge_gots): New traversal.
+       (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
+       elf_m68k_merge_gots): Ditto.
+       (struct elf_m68k_finalize_got_offsets_arg,
+       elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
+       (struct elf_m68k_partition_multi_got_arg,
+       elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
+       elf_m68k_partition_multi_got): Ditto.
+       (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
+       functions.
+       (elf_m68k_copy_indirect_symbol): New static function implementing
+       a hook.
+       (elf_m68k_check_relocs): Update to add entries to multi-GOT.
+       (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
+       (elf_m68k_always_size_sections): Assign BFDs to GOTs.
+       (elf_m68k_relocate_section): Update to properly handle GOT relocations.
+       (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
+       of a global symbol.
+       (bfd_elf_m68k_set_target_options): New function.
+       (bfd_elf32_bfd_link_hash_table_free): Define hook.
+       (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
+       to skip generic calculation of GOT offsets.
+       (elf_backend_copy_indirect_symbol): Define hook.
+       * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
+       * bfd-in2.h: Regenerate.
+
+2008-05-21  André Johansen  <andrejoh@gmail.com>
+
+       PR 868
+       * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
+       for filenames in function tables and variable tables.
+
+2008-05-19  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to
+       vma when all p_paddr fields are zero and there is more than
+       one PT_LOAD header.
+
+2008-05-15  Christophe Lyon  <christophe.lyon@st.com>
+
+       Add long call support for ARM.
+       * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
+       (THM2_MAX_BWD_BRANCH_OFFSET): Define.
+       (ARM_MAX_FWD_BRANCH_OFFSET): Define.
+       (ARM_MAX_BWD_BRANCH_OFFSET): Define.
+       (THM_MAX_FWD_BRANCH_OFFSET): Define.
+       (THM_MAX_BWD_BRANCH_OFFSET): Define.
+       (arm_long_branch_stub): Define.
+       (arm_pic_long_branch_stub): Define.
+       (arm_thumb_v4t_long_branch_stub): Define.
+       (arm_thumb_thumb_long_branch_stub): Define.
+       (arm_thumb_arm_v4t_long_branch_stub): Define.
+       (STUB_SUFFIX): Define.
+       (elf32_arm_stub_type): Define.
+       (elf32_arm_stub_hash_entry): Define.
+       (elf32_arm_link_hash_entry): Add stub_cache field.
+       (arm_stub_hash_lookup): Define.
+       (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
+       add_stub_section, layout_sections_again, stub_group, bfd_count,
+       top_index, input_list fields.
+       (elf32_arm_link_hash_newfunc): Init new field.
+       (stub_hash_newfunc): New function.
+       (elf32_arm_link_hash_table_create): Init stub_hash_table.
+       (elf32_arm_hash_table_free): New function.
+       (arm_type_of_stub): New function.
+       (elf32_arm_stub_name): New function.
+       (elf32_arm_get_stub_entry): New function.
+       (elf32_arm_stub_add_mapping_symbol): New function.
+       (elf32_arm_add_stub): New function.
+       (arm_build_one_stub): New function.
+       (arm_size_one_stub): New function.
+       (elf32_arm_setup_section_lists): New function.
+       (elf32_arm_next_input_section): New function.
+       (group_sections): New function.
+       (elf32_arm_size_stubs): New function.
+       (elf32_arm_build_stubs): New function.
+       (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
+       (bfd_elf32_arm_process_before_allocation): No longer handle
+       R_ARM_CALL and R_ARM_THM_CALL.
+       (using_thumb_only): New function.
+       (elf32_arm_final_link_relocate): Redirect calls to stub if range
+       exceeds encoding capabilities.
+       (bfd_elf32_bfd_link_hash_table_free): Define.
+       * bfd-in.h (R_ARM_max): Fix value to 130.
+       (elf32_arm_setup_section_lists): Protype.
+       (elf32_arm_next_input_section): Protype.
+       (elf32_arm_size_stubs): Protype.
+       (elf32_arm_build_stubs): Protype.
+       * bfd-in2.h: Regenerate.
+
+2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
+       * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
+
+2008-05-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (section_covers_vma): New function.
+       (ppc_elf_get_synthetic_symtab): New function.
+       (bfd_elf32_get_synthetic_symtab): Define.
+       * elf64-ppc.c (section_covers_vma): New function.
+       (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
+       table entries, and __glink_PLTresolve on resolver stub.
+       (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.
+
+2008-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 6443
+       * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
+       (must_be_dyn_reloc): New function.
+       (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
+       in pies.
+       (ppc_elf_tls_optimize): Optimise pies.
+       (ppc_elf_relocate_section): Use a section symbol rather than no
+       symbol if possible for LD->IE TLS sequence, but don't error if
+       we must use no symbol.
+       * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
+       (must_be_dyn_reloc): Likewise.
+       (ppc64_elf_check_relocs): Likewise.
+       (ppc64_elf_tls_optimize): Likewise.
+       (ppc64_elf_relocate_section): Likewise.
+
+2008-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
+
+2008-05-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       * elfcore.h (elf_core_file_p): Warn about core truncation.
+
+2008-05-07  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (xtensa_property_section_name): New.
+       (xtensa_make_property_section): New.
+       (xtensa_get_property_section): Make static.  Do not create a new
+       section if it does not exist.
+
+2008-05-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_special_sections): Add "._ea".
+       (spu_elf_relocate_section): Handle relocations against symbols
+       defined in ._ea specially.
+
+2008-05-03  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
+       ARRAY_SIZE.
+       (elf32_arm_symbian_plt_sym_val): New.
+       (elf_backend_plt_sym_val): Define.
+
+2008-05-03  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (rewrite_elf_program_header): Rather than clearing
+       p_paddr_valid at end, don't set it in the first place.  Delete
+       comment no longer relevant.  When not p_paddr_valid, don't set
+       paddr from vaddr, and don't set p_vaddr_offset.
+
+2008-05-01  Cary Coutant  <ccoutant@google.com>
+
+       * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
+       corrupt string table.
+
+2008-05-01  Joel Brobecker  <brobecker@adacore.com>
+
+       * cache.c (cache_bread_1): Renames cache_bread.
+       (cache_bread): New function.
+
+2008-05-01  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
+       (assign_file_positions_for_load_sections): Combine nested "if".
+       (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
+       when all header p_paddr fields are zero.
+
 2008-04-30  Edmar Wienskoski  <edmar@freescale.com>
 
        * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
This page took 0.035265 seconds and 4 git commands to generate.