Support ELFv2 stack frame.
[binutils-gdb.git] / bfd / ChangeLog
index 48782783e8962551937cc4d29e505ad377dec6dc..6afd755a283ada655b1bab4fa1871ec941f31c74 100644 (file)
@@ -1,3 +1,346 @@
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (STK_LR, STK_TOC, STK_LINKER): Define.
+       (savegpr0_tail, restgpr0_tail, savefpr0_tail, restfpr0_tail)
+       build_plt_stub, build_tls_get_addr_stub, ppc_build_one_stub,
+       ppc64_elf_relocate_section): Use new defines.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (PLT_ENTRY_SIZE, PLT_INITIAL_ENTRY_SIZE): Add htab
+       parameter and adjust for ELFv2.  Update all uses.
+       (PLT_CALL_STUB_SIZE): Delete.
+       (ppc64_elf_get_synthetic_symtab): Support new glink layout.
+       (allocate_dynrelocs): Likewise.
+       (plt_stub_size, build_plt_stub): Adjust for ELFv2.
+       (get_r2off): Return 0 for ELFv2 -R.
+       (ppc_build_one_stub, ppc_size_one_stub): Adjust for ELFv2.
+       (ppc64_elf_size_stubs): Likewise.
+       (ppc64_elf_build_stubs): Add new ELFv2 glink.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+           Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf64-ppc.c (struct ppc_stub_hash_entry): Add "other".
+       (stub_hash_newfunc): Init new ppc_stub_hash_entry field, and one
+       we forgot, "plt_ent".
+       (ppc64_elf_add_symbol_hook): Check ELFv1 objects don't have
+       st_other bits only valid in ELFv2.
+       (ppc64_elf_merge_symbol_attribute): New function.
+       (ppc_type_of_stub): Add local_off param to test branch range.
+       (ppc_build_one_stub): Adjust destinations for ELFv2 locals.
+       (ppc_size_one_stub, toc_adjusting_stub_needed): Similarly.
+       (ppc64_elf_size_stubs): Pass local_off to ppc_type_of_stub.
+       Set "other" field.
+       (ppc64_elf_relocate_section): Adjust destination for ELFv2 local
+       calls.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (abiversion, set_abiversion): New functions.
+       (ppc64_elf_get_synthetic_symtab): Handle ELFv2 objects without .opd.
+       (struct ppc_link_hash_table): Add opd_abi.
+       (ppc64_elf_check_relocs): Check no .opd with ELFv2.
+       (ppc64_elf_merge_private_bfd_data): New function.
+       (ppc64_elf_print_private_bfd_data): New function.
+       (ppc64_elf_tls_setup): Set htab->opd_abi.
+       (ppc64_elf_size_dynamic_sections): Don't emit OPD related dynamic
+       tags for ELFv2.
+       (ppc_build_one_stub): Use R_PPC64_IRELATIVE for ELFv2 ifunc.
+       (ppc64_elf_finish_dynamic_symbol): Likewise
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (build_plt_stub): Switch stubs to use r11 as base
+       reg and r12 as destination.
+       (ppc_build_one_stub): Likewise.
+       (ppc64_elf_build_stubs): Likewise for glink.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * reloc.c (BFD_RELOC_PPC64_ADDR16_HIGH, BFD_RELOC_PPC64_ADDR16_HIGHA,
+       BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA,
+       BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA): New.
+       * elf64-ppc.c (ppc64_elf_howto_raw): Add entries for new relocs.
+       Make all _HA and _HI relocs report signed overflow.
+       (ppc64_elf_reloc_type_lookup): Handle new relocs.
+       (must_be_dyn_reloc, ppc64_elf_check_relocs): Likewise.
+       (dec_dynrel_count, ppc64_elf_relocate_section): Likewise.
+       (ppc64_elf_relocate_section): Don't apply 0x8000 adjust to
+       R_PPC64_TPREL16_HIGHER, R_PPC64_TPREL16_HIGHEST,
+       R_PPC64_DTPREL16_HIGHER, and R_PPC64_DTPREL16_HIGHEST.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2013-10-29  Roland McGrath  <mcgrathr@google.com>
+
+       * elf64-x86-64.c (elf_x86_64_nacl_plt0_entry): Correct 9-byte nop
+       sequence to match what the assembler generates.
+
+2013-10-29  Jan Beulich <jbeulich@suse.com>
+
+       * elflink.c (struct elf_outext_info): Add field file_sym_done.
+       (bfd_elf_final_link): Initialize new field. Move fake STT_FILE
+       symbol emission from here ...
+       (elf_link_output_extsym): ... to here.
+
+2013-10-24  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/15994
+       * dwarf2.c (lookup_address_in_line_info_table): Change return type
+       to be the range of addresses covered by the table.
+       (comp_unit_find_nearest_line): Likewise.
+       (find_line): Search all CUs.  Select the one that matches and
+       covers the smallest address range.
+
+2013-10-18  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_check_relocs): Don't assume
+       a registered dynobj means that a .got has been created.
+
+2013-10-17  Alan Modra  <amodra@gmail.com>
+
+       PR 16056
+       * elf.c (copy_elf_program_header): Only consider SEC_ALLOC sections
+       when finding lowest_section.
+
+2013-10-14  Chao-ying Fu  <Chao-ying.Fu@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_obj_tdata): Add abi_msa_bfd.
+       (mips_elf_merge_obj_attributes): Set abi_msa_bfd to the first object
+       file that has a Tag_GNU_MIPS_ABI_MSA attribute.
+       Merge Tag_GNU_MIPS_ABI_MSA attributes.
+
+2013-10-14  Nick Clifton  <nickc@redhat.com>
+
+       * gen-aout.c (main): Fix formatting.  Close file.
+
+2013-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elfxx-mips.c (mips_use_local_got_p): New function.
+       (mips_elf_count_got_symbols, mips_elf_calculate_relocation): Use it.
+       (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
+       GOT and absolute references.
+
+2013-10-09  Roland McGrath  <mcgrathr@google.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Cast switch
+       expression to int to silence over-eager compiler warnings.
+
+       * xcofflink.c (_bfd_xcoff_bfd_final_link): Don't touch EREL in
+       loop that doesn't use (or initialize) it.
+
+       * elfxx-tilegx.c (tilegx32_plt_tail_entry, tilegx32_plt_tail_entry):
+       Move second const qualifier so it applies to the pointer.
+
+2013-10-09  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/16022
+       * elf32-rx.c (rx_dump_symtab): Add missing break statements.
+
+2013-10-09  Tom Tromey  <tromey@redhat.com>
+
+       * opncls.c (get_alt_debug_link_info_shim): Update type of 'len'.
+
+2013-10-09  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/16021
+       * elf32-rl78.c (rl78_dump_symtab): Delete.
+       (rl78_get_reloc): Delete.
+
+2013-10-09  Tom Tromey  <tromey@redhat.com>
+
+       * bfd-in2.h: Rebuild.
+       * opncls.c (bfd_get_alt_debug_link_info): Change type of
+       buildid_len to bfd_size_type.
+
+2013-10-09  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       PR binutils/15993
+       * elf32-m32c.c (dump_symtab): Add missing "break;" statement on each
+       "case".  Reindent "switch" statements.
+
+2013-10-08  Tom Tromey  <tromey@redhat.com>
+
+       * bfd-in2.h: Rebuild.
+       * opncls.c (bfd_get_alt_debug_link_info): Add buildid_len
+       parameter.  Change type of buildid_out.  Update.
+       (get_alt_debug_link_info_shim): New function.
+       (bfd_follow_gnu_debuglink): Use it.
+
+2013-10-08  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (elf_m68k_size_dynamic_sections): Add DT_DEBUG also
+       for PIE executables.
+
+2013-10-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * configure: Regenerate.
+
+2013-10-03  Will Newton  <will.newton@linaro.org>
+
+       * configure: Regenerate.
+       * configure.in: Build elf-ifunc.o for AArch64.
+       * elfnn-aarch64.c: Include objalloc.h.
+       (elfNN_aarch64_local_htab_hash): New function.
+       (elfNN_aarch64_local_htab_eq): New function.
+       (elfNN_aarch64_get_local_sym_hash): New function.
+       (elfNN_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC
+       symbol hash.
+       (elfNN_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash.
+       (elfNN_aarch64_final_link_relocate): Add sym argument.  Add support
+       for handling STT_GNU_IFUNC symbols.
+       (elfNN_aarch64_gc_sweep_hook): Add support for garbage collecting
+       references to STT_GNU_IFUNC symbols.
+       (elfNN_aarch64_adjust_dynamic_symbol): Add support for handling
+       STT_GNU_IFUNC symbols.
+       (elfNN_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC
+       symbols.  Ensure we don't increase plt.refcount from -1 to 0.
+       (elfNN_aarch64_post_process_headers): Call _bfd_elf_set_osabi.
+       (elfNN_aarch64_is_function_type): Remove function.
+       (elfNN_aarch64_allocate_dynrelocs): Handle STT_GNU_IFUNC symbols.
+       (elfNN_aarch64_allocate_ifunc_dynrelocs): New function.
+       (elfNN_aarch64_allocate_local_dynrelocs): New function.
+       (elfNN_aarch64_allocate_local_ifunc_dynrelocs): New function.
+       (elfNN_aarch64_size_dynamic_sections): Call
+       elfNN_aarch64_allocate_local_dynrelocs.
+       (elfNN_aarch64_create_small_pltn_entry): Add info argument.
+       Add support for creating .iplt entries for STT_GNU_IFUNC symbols.
+       (elfNN_aarch64_finish_dynamic_symbol): Add support for handling
+       STT_GNU_IFUNC symbols and .iplt.
+       (elfNN_aarch64_finish_local_dynamic_symbol): New function.
+       (elfNN_aarch64_finish_dynamic_sections): Call
+       elfNN_aarch64_finish_local_dynamic_symbol.
+
+2013-09-30  Nick Clifton  <nickc@redhat.com>
+
+       * cpu-msp430.c: Use printable names that match the values
+       displayed by readelf.
+
+2013-08-25  Andrew Pinski  <apinski@cavium.com>
+
+       * elfnn-aarch64.c (TCB_SIZE): Base on the ARCH_SIZE rather than a
+       fixed size of 16.
+
+2013-09-24  Gregory Fong  <gregory.0xf0@gmail.com>
+
+       * elfxx-mips.c (mips_elf_create_got_section): Hide
+       _GLOBAL_OFFSET_TABLE_.
+
+2013-09-24  Alan Modra  <amodra@gmail.com>
+
+       * elf32-mips.c (ELF_OSABI): Undef for vxworks.
+
+2013-09-24  Alan Modra  <amodra@gmail.com>
+
+       * syms.c (_bfd_stab_section_find_nearest_line): Ignore partial
+       stabs at end of .stab.  Tidy variable usage.  Don't drop the need
+       for a NULL function name stab if If N_FUN stab is ignored.
+       Ensure index entry count loop matches write loop.
+
+2013-09-20  Alan Modra  <amodra@gmail.com>
+
+       * configure: Regenerate.
+
+2013-09-18  Tristan Gingold  <gingold@adacore.com>
+
+       * configure.in: Bump version to 2.24.51
+       * configure: Regenerate.
+
+2013-09-17  Doug Gilmore  <Doug.Gilmore@imgtec.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): Handle
+       EF_MIPS_FP64.
+
+2013-08-31  John David Anglin  <dave.anglin@bell.net>
+
+       * elf64-hppa.c (elf_hppa_final_link_relocate): Add missing '%' to
+       format string.
+
+2013-08-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow
+       64-bit -mcmodel=large -fpic TLS GD and LD sequences.
+       (elf_x86_64_relocate_section): Handle -mcmodel=large -fpic
+       TLS GD and LD sequences in GD->LE, GD->IE and LD->LE transitions.
+
+2013-08-27  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (struct elf_backend_data): Remove as_needed_cleanup.
+       Add notice_as_needed.
+       * elf64-ppc.c (elf_backend_as_needed_cleanup): Don't define.
+       (elf_backend_notice_as_needed): Define.
+       (ppc64_elf_as_needed_cleanup): Rename and adjust..
+       (ppc64_elf_notice_as_needed): ..to this.
+       * elflink.c (_bfd_elf_notice_as_needed): New function, extracted..
+       (elf_link_add_object_symbols): ..from here.
+       * elfxx-target.h (elf_backend_as_needed_cleanup): Don't define.
+       (elf_backend_notice_as_needed): Define..
+       (elfNN_bed): ..and use here.
+
+2013-08-26  Roland McGrath  <mcgrathr@google.com>
+
+       * archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros.
+       (bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros.
+       * cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function.
+       (bfd_i386_nacl_arch): New variable.
+       (bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables.
+       (bfd_x64_32_arch_intel_syntax): Link them into the list.
+       * bfd-in2.h: Regenerate.
+
+2013-08-26  Roland McGrath  <mcgrathr@google.com>
+
+       * elf-nacl.c (nacl_modify_segment_map): Fix logic reordering the
+       elf_segment_map list.  If an executable segment is page-aligned
+       but does not end with a full page, then append a fake section into
+       the segment map entry that pads out the page.
+       (nacl_final_write_processing): New function.  Write the code fill
+       laid out in nacl_modify_segment_map.
+       * elf-nacl.h: Declare it.
+       * elf32-arm.c (elf32_arm_nacl_final_write_processing): New function.
+       (elf_backend_final_write_processing): Define it for NaCl backend.
+       * elf32-i386.c (elf_backend_final_write_processing): Likewise.
+       * elf64-x86-64.c (elf_backend_final_write_processing): Likewise.
+
+       * elf-nacl.c (segment_eligible_for_headers): Rename MAXPAGESIZE
+       parameter to MINPAGESIZE.
+       (nacl_modify_segment_map): Use minpagesize instead of maxpagesize.
+
+       * elf32-arm.c (ELF_MINPAGESIZE, ELF_COMMONPAGESIZE): #undef for NaCl.
+
+2013-08-24  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don't
+       set GOT's entry size if there is no ELF section data.
+       * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
+       * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections):
+       Likewise.
+
+2013-08-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (get_elf_x86_64_arch_data): New.
+       (get_elf_x86_64_backend_data): Use it.
+       (elf_x86_64_size_dynamic_sections): Likewise.
+
+2013-08-23  Yuri Chornoivan  <yurchor@ukr.net>
+
+       PR binutils/15834
+       * bfdio.c: Fix typos.
+       * elf32-spu.c: Likewise.
+       * elfnn-aarch64.c: Likewise.
+
+2013-08-21  Tristan Gingold  <gingold@adacore.com>
+
+       * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Also count
+       .ovrflo sections.
+       * coffcode.h (coff_compute_section_file_positions): Force
+       match between file offset and vma offset.
+
+2013-08-21  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Set *poldbfd, *poldweak,
+       and *poldalignment before exiting when !relocs_compatible.
+
 2013-08-21  Alan Modra  <amodra@gmail.com>
 
        * elflink.c (_bfd_elf_define_linkage_sym): Don't set STV_INTERNAL