powerpc max-page-size vs __QNXTARGET__
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index a8eaebb9af0f6cba08a46a7f7a46203d7e9dbbd8..c34cff6844f661787ede5f43ad548e2d6d873949 100644 (file)
@@ -1,3 +1,181 @@
+2018-04-14  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): Don't depend
+       on __QNXTARGET__ define.
+
+2018-04-14  Alan Modra  <amodra@gmail.com>
+
+       * config.bfd: Add powerpc-*-lynxos* and powerpc-*-windiss*
+       to obsolete list.
+
+2018-04-11  Alan Modra  <amodra@gmail.com>
+
+       * aout-adobe.c: Delete.
+       * bout.c: Delete.
+       * coff-i860.c: Delete.
+       * coff-i960.c: Delete.
+       * cpu-i860.c: Delete.
+       * cpu-i960.c: Delete.
+       * elf32-i860.c: Delete.
+       * elf32-i960.c: Delete.
+       * hosts/i860mach3.h: Delete.
+       * Makefile.am: Remove i860, i960, bout, and adobe support.
+       * archures.c: Remove i860 and i960 support.
+       * coffcode.h: Likewise.
+       * reloc.c: Likewise.
+       * aoutx.h: Comment updates.
+       * archive.c: Remove BOUT and i960 support.
+       * bfd.c: Remove BOUT support.
+       * coffswap.h: Remove i960 support.
+       * config.bfd: Remove i860, i960 and adobe targets.
+       * configure.ac: Remove adode, bout, i860, i960, icoff targets.
+       * targets.c: Likewise.
+       * ieee.c: Remove i960 support.
+       * mach-o.c: Remove i860 support.
+       * Makefile.in: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * configure: Regenerate.
+       * libbfd.h: Regenerate.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2018-04-09  Maciej W. Rozycki  <macro@mips.com>
+
+       * elf64-mips.c (mips_elf64_write_rel): Handle a NULL BFD pointer
+       in the BFD symbol referred by the relocation.
+       (mips_elf64_write_rela): Likewise.
+
+2018-04-09  Maciej W. Rozycki  <macro@mips.com>
+
+       * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Issue an
+       error for out-of-range `r_sym' values.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (struct _ppc64_elf_section_data): Add has_pltcall field.
+       (struct ppc_link_hash_table): Add can_convert_all_inline_plt.
+       (ppc64_elf_check_relocs): Set has_pltcall.
+       (ppc64_elf_adjust_dynamic_symbol): Discard some PLT entries.
+       (ppc64_elf_inline_plt): New function.
+       (ppc64_elf_size_dynamic_sections): Discard some PLT entries for locals.
+       * elf64-ppc.h (ppc64_elf_inline_plt): Declare.
+       * elf32-ppc.c (has_pltcall): Define.
+       (struct ppc_elf_link_hash_table): Add can_convert_all_inline_plt.
+       (ppc_elf_check_relocs): Set has_pltcall.
+       (ppc_elf_inline_plt): New function.
+       (ppc_elf_adjust_dynamic_symbol): Discard some PLT entries.
+       (ppc_elf_size_dynamic_sections): Likewise.
+       * elf32-ppc.h (ppc_elf_inline_plt): Declare.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_howto_raw): Add PLTSEQ and PLTCALL howtos.
+       (is_plt_seq_reloc): New function.
+       (ppc_elf_check_relocs): Handle PLTSEQ and PLTCALL relocs.
+       (ppc_elf_tls_optimize): Handle inline plt call sequence.
+       (ppc_elf_relax_section): Handle PLTCALL reloc.
+       (ppc_elf_relocate_section): Nop out inline plt call sequence when
+       resolving locally.
+       * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_PLTSEQ and
+       R_PPC64_PLTCALL entries.  Comment R_PPC64_TOCSAVE.
+       (has_tls_get_addr_call): Correct comment.
+       (is_branch_reloc): Add PLTCALL.
+       (is_plt_seq_reloc): New function.
+       (ppc64_elf_check_relocs): Handle PLT16_LO_DS reloc.  Set
+       has_tls_reloc for R_PPC64_TLSGD and R_PPC64_TLSLD.  Create plt
+       entry for R_PPC64_PLTCALL.
+       (ppc64_elf_tls_optimize): Handle inline plt call sequence.
+       (ppc_type_of_stub): Handle PLTCALL reloc.
+       (toc_adjusting_stub_needed): Likewise.
+       (ppc64_elf_relocate_section): Set "can_plt_call" for PLTCALL
+       reloc insn.  Nop out inline plt call sequence when resolving
+       locally.  Handle __tls_get_addr inline plt call optimization.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (LOCAL_PLT_ENTRY_SIZE): Define.
+       (struct ppc_stub_hash_entry): Add symtype field.
+       (PLT_KEEP): Define.
+       (struct ppc_link_hash_table): Add pltlocal and relpltlocal.
+       (create_linkage_sections): Create pltlocal and relpltlocal.
+       (ppc64_elf_check_relocs): Allow PLT relocs on local symbols.
+       Set PLT_KEEP.
+       (ppc64_elf_adjust_dynamic_symbol): Keep PLT entries for inline calls.
+       (allocate_dynrelocs): Allocate pltlocal and relpltlocal.
+       (ppc64_elf_size_dynamic_sections): Size pltlocal and relpltlocal.
+       Keep PLT entries for inline calls against locals.
+       (ppc_build_one_stub): Use pltlocal as appropriate.
+       (ppc_size_one_stub): Likewise.
+       (ppc64_elf_size_stubs): Set symtype.
+       (build_global_entry_stubs_and_plt): Init pltlocal and write
+       relpltlocal for globals.
+       (write_plt_relocs_for_local_syms): Likewise for local syms.
+       (ppc64_elf_relocate_section): Support PLT for local syms.
+       * elf32-ppc.c (PLT_KEEP): Define.
+       (struct ppc_elf_link_hash_table): Add pltlocal and relpltlocal.
+       (ppc_elf_create_glink): Create pltlocal and relpltlocal.
+       (ppc_elf_check_relocs): Allow PLT relocs on local symbols.
+       Set PLT_KEEP.  Adjust update_local_sym_info call.
+       (ppc_elf_adjust_dynamic_symbol): Keep PLT entries for inline calls.
+       (allocate_dynrelocs): Allocate pltlocal and relpltlocal.
+       (ppc_elf_size_dynamic_sections): Size pltlocal and relpltlocal.
+       (ppc_elf_relocate_section): Support PLT16 relocs for local syms.
+       (write_global_sym_plt): Init pltlocal and write relpltlocal.
+       (ppc_finish_symbols): Likewise for locals.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc_build_one_stub): Move output of PLT relocs
+       for local symbols to..
+       (write_plt_relocs_for_local_syms): ..here.  New function.
+       (ppc64_elf_finish_dynamic_symbol): Move output of PLT relocs for
+       global symbols to..
+       (build_global_entry_stubs_and_plt): ..here.  Rename from
+       build_global_entry_stubs.
+       (ppc64_elf_build_stubs): Always call build_global_entry_stubs_and_plt.
+       Call write_plt_relocs_for_local_syms.
+       * elf32-ppc.c (get_sym_h): New function.
+       (ppc_elf_relax_section): Use get_sym_h.
+       (ppc_elf_relocate_section): Move output of PLT relocs and glink
+       stubs for local symbols to..
+       (ppc_finish_symbols): ..here.  New function.
+       (ppc_elf_finish_dynamic_symbol): Move output of PLT relocs for
+       global syms to..
+       (write_global_sym_plt): ..here.  New function.
+       * elf32-ppc.h (ppc_elf_modify_segment_map): Delete attribute.
+       (ppc_finish_symbols): Declare.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Handle PLT16 relocs.
+       (ppc_elf_relocate_section): Likewise.
+       * elf64-ppc.c (ppc64_elf_check_relocs): Handle PLT16_LO_DS.
+       (ppc64_elf_relocate_section): Likewise.  Correct PLT16
+       resolution to plt entry relative to toc pointer.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (TLS_TLS, TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL,
+       TLS_TPRELGD, TLS_EXPLICIT):  Renumber.  Test TLS_TLS throughout
+       file when other TLS flags are tested in a mask.
+       (TLS_MARK, NON_GOT): Define.
+       (PLT_IFUNC): Redefine, and test TLS_TLS throughout file as well.
+       (update_local_sym_info): Don't create got entry when NON_GOT.
+       (ppc64_elf_check_relocs): Pass NON_GOT with PLT_IFUNC.
+       Set TLS_MARK.
+       (get_tls_mask): Do toc lookup if tls_mask is just TLS_MARK.
+       (ppc64_elf_relocate_section): Likewise.
+       (ppc64_elf_tls_optimize): Don't attempt to optimize indirect
+       __tls_get_addr calls lacking a marker reloc.
+       * elf32-ppc.c (TLS_TLS, TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL,
+       TLS_TPRELGD): Renumber.  Update comment.
+       (TLS_MARK, NON_GOT): Define.
+       (PLT_IFUNC): Redefine, and test TLS_TLS throughout file as well.
+       (update_local_sym_info): Don't create got entry when NON_GOT.
+       (ppc_elf_check_relocs): Pass NON_GOT with PLT_IFUNC.
+       Set TLS_MARK.
+       (ppc_elf_tls_optimize): Don't attempt to optimize indirect
+       __tls_get_addr calls lacking a marker reloc.
+
 2018-04-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf64-x86-64.c (elf_x86_64_info_to_howto): Don't mask out
This page took 0.029398 seconds and 4 git commands to generate.