x86: Don't set eh->local_ref to 1 for versioned symbol
[binutils-gdb.git] / bfd / ChangeLog
index 91a41ae61123e31f6c35920ef1f5f22b0d903837..bab543b9cefb341eb4950aae487dbe99a236c80b 100644 (file)
@@ -1,3 +1,375 @@
+2018-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23194
+       * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
+       set eh->local_ref to 1 if a symbol is versioned and there is a
+       version script.
+
+2018-05-18  Kito Cheng  <kito.cheng@gmail.com>
+
+       * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Handle
+       EF_RISCV_RVE.
+
+2018-05-18  Jim Wilson  <jimw@sifive.com>
+
+       * elfnn-riscv.c (allocate_dynrelocs): Discard dynamic relocations if
+       UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+       (riscv_elf_relocate_section): Don't generate dynamic relocation if
+       UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+       (riscv_elf_finish_dynamic_symbol): Likewise.
+
+2018-05-18  John Darrington  <john@darrington.wattle.id.au>
+
+       * Makefile.am: Add s12z files.
+       * Makefile.in: Regenerate.
+       * archures.c: Add bfd_s12z_arch.
+       * bfd-in.h: Add exports of bfd_putb24 and bfd_putl24.
+       * bfd-in2.h: Regenerate.
+       * config.bfd: Add s12z target.
+       * configure.ac: Add s12z target.
+       * configure: Regenerate.
+       * cpu-s12z.c: New file.
+       * elf32-s12z.c: New file.
+       * libbfd.c (bfd_putb24): New function.
+       (bfd_putl24): New function.
+       * libbfd.h: Regenerate.
+       * reloc.c: Add s12z relocations.
+       (bfd_get_reloc_size): Handle size 5 relocs.
+       * targets.c: Add s12z_elf32_vec.
+
+2018-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23189
+       * elf32-i386.c (elf_i386_relocate_section): Handle R_386_GOT32X
+       like R_386_GOT32.
+       * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
+       set eh->local_ref to 1 for linker defined symbols.
+
+2018-05-18  Alan Modra  <amodra@gmail.com>
+
+       PR 23199
+       * elf.c (setup_group): Formatting.  Check that SHT_GROUP entries
+       don't point at other SHT_GROUP sections.  Set shdr corresponding
+       to invalid entry, to NULL rather than section 0.  Identify
+       SHT_GROUP section index when reporting an error.  Cope with NULL
+       shdr pointer.
+
+2018-05-18  Alan Modra  <amodra@gmail.com>
+
+       * libbfd-in.h (ATTRIBUTE_HIDDEN): Define and use throughout.
+       * configure.ac (HAVE_HIDDEN): Check compiler support for hidden
+       visibility.
+       * libbfd.h: Regenerate.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+2018-05-18  Alan Modra  <amodra@gmail.com>
+
+       * libbfd-in.h: Add include guard.
+       * libcoff-in.h: Likewise.
+       * doc/Makefile.am (libbfd.h, libcoff.h): Append another #endif.
+       * doc/Makefile.in: Regenerate.
+       * libbfd.h: Regenerate.
+       * libcoff.h: Regenerate.
+
+2018-05-16  Maciej W. Rozycki  <macro@mips.com>
+
+       * elf32-nds32.c (nds32_convert_32_to_16): Preset `insn_type'.
+
+2018-05-16  Alan Modra  <amodra@gmail.com>
+
+       PR 22458
+       * format.c (struct bfd_preserve): Add section_id.
+       (bfd_preserve_save, bfd_preserve_restore): Save and restore
+       _bfd_section_id.
+       (bfd_reinit): Set _bfd_section_id.
+       (bfd_check_format_matches): Put all matches of any priority into
+       matching_vector.  Save initial section id and start each attempted
+       match at that section id.
+       * libbfd-in.h (_bfd_section_id): Declare.
+       * section.c (_bfd_section_id): Rename from section_id and make
+       global.  Adjust uses.
+       (bfd_get_next_section_id): Delete.
+       * elf64-ppc.c (ppc64_elf_setup_section_lists): Replace use of
+       bfd_get_section_id with _bfd_section_id.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2018-05-15  Christophe Guillon  <christophe.guillon@st.com>
+
+       * coffcode.h (coff_bigobj_swap_aux_in): Make sure that all fields
+       of the aux structure are initialised.
+
+2018-05-15  Francois H. Theron  <francois.theron@netronome.com>
+
+       * targets.c: Wrap nfp_elf64_vec in BFD64 ifdef.
+
+2018-05-15  Nick Clifton  <nickc@redhat.com>
+
+       * po/pt.po: New Portuguese translation.
+       * configure.ac (ALL_LINGUAS): Add pt.
+       * configure: Regenerate.
+
+2018-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23169
+       * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Don't issue
+       an error on IFUNC pointer defined in PDE.
+       * elf32-i386.c (elf_i386_finish_dynamic_symbol): Call
+       _bfd_x86_elf_link_fixup_ifunc_symbol.
+       * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
+       * elfxx-x86.c (_bfd_x86_elf_link_fixup_ifunc_symbol): New
+       function.
+       * elfxx-x86.h (_bfd_x86_elf_link_fixup_ifunc_symbol): New.
+
+2018-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23162
+       * elfxx-x86.c (elf_x86_linker_defined): New function.
+       (_bfd_x86_elf_link_check_relocs): Use it to mark __bss_start,
+       _end and _edata locally defined within executables.
+
+2018-05-12  Alan Modra  <amodra@gmail.com>
+
+       PR 20659
+       * elf.c (rewrite_elf_program_header): Use segment_mark only for
+       PT_LOAD headers.  Delete first_matching_lma and first_suggested_lma.
+       Instead make matching_lma and suggested_lma pointers to the
+       sections.  Align section vma and lma calculated from segment.
+       Don't clear includes_phdrs or includes_filehdr based on p_paddr
+       test.  Try to handle alignment padding before first section by
+       adjusting new segment lma down.  Adjust PT_PHDR map p_paddr.
+
+2018-05-09  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+       * elf32-pru.c (pru_elf32_do_ldi32_relocate): Make LDI32 relocation
+       conformant to TI ABI.
+       (pru_elf32_relax_section): Likewise.
+       (pru_elf_relax_delete_bytes): Fix offsets for new LDI32 code.
+       * elf32-pru.c (pru_elf32_do_ldi32_relocate): Ignore addend.
+       (pru_elf32_pmem_relocate): Trap - should not get here.
+       (pru_elf32_relocate_section): Add support for REL relocations.
+       (elf_info_to_howto_rel): Enable REL.
+       (elf_backend_may_use_rel_p): Likewise.
+       (elf_backend_may_use_rela_p): Likewise.
+       (elf_backend_default_use_rela_p): Likewise.
+
+2018-05-09  Alan Modra  <amodra@gmail.com>
+
+       PR 23148
+       * peXXigen.c (pe_print_edata): Correct minimum size.
+
+2018-05-09  Alan Modra  <amodra@gmail.com>
+
+       PR 23147
+       * peXXigen.c (pe_print_idata): Bound check hint_addr.
+
+2018-05-08  Nick Clifton  <nickc@redhat.com>
+
+       PR 22809
+       * elf.c (bfd_elf_get_str_section): Check for an excessively large
+       string section.
+       * elf-attrs.c (_bfd_elf_parse_attributes): Issue an error if the
+       attribute section is larger than the size of the file.
+
+2018-05-07  Alan Modra  <amodra@gmail.com>
+
+       * cofflink.c (_bfd_coff_link_input_bfd): Use memcmp rather than
+       strncmp when checking for ".bf" special symbol.
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Make pe_required_section_flags
+       section name a char array, remove sentinal known_sections entry,
+       and adjust loop over known_sections to suit.  Use memcmp rather
+       than strncmp.
+
+2018-05-04  Alan Modra  <amodra@gmail.com>
+
+       * elf-linux-core.h (struct elf_external_linux_prpsinfo32_ugid32),
+       (struct elf_external_linux_prpsinfo32_ugid16),
+       (struct elf_external_linux_prpsinfo64_ugid32),
+       (struct elf_external_linux_prpsinfo64_ugid16): Add ATTRIBUTE_NONSTRING
+       to pr_fname and pr_psargs fields.  Remove GCC diagnostic pragmas.
+       Move comment to..
+       * elf.c (elfcore_write_prpsinfo): ..here.  Indent nested preprocessor
+       directives.
+       * elf32-arm.c (elf32_arm_nabi_write_core_note): Add ATTRIBUTE_NONSTRING
+       to data.
+       * elf32-ppc.c (ppc_elf_write_core_note): Likewise.
+       * elf32-s390.c (elf_s390_write_core_note): Likewise.
+       * elf64-s390.c (elf_s390_write_core_note): Likewise.
+       * elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewise.
+       * elf64-x86-64.c (elf_x86_64_write_core_note): Add GCC diagnostic
+       pragmas.
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Use strnlen to avoid
+       false positive gcc-8 warning.
+       * cofflink.c (_bfd_coff_link_input_bfd): Likewise.
+
+2018-05-04  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
+
+       * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Fix the order
+       of arguments when warning about different long double types.
+
+2018-05-03  Simon Atanasyan  <simon@atanasyan.com>
+
+       * elf32-mips.c: (elf32_mips_fixup_symbol): New function.
+       (elf_backend_fixup_symbol): New macro.
+       * elfxx-mips.c: (mips_elf_output_extsym): Discard _gp_disp
+       handling.
+       (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
+
+2018-04-30  Francois H. Theron <francois.theron@netronome.com>
+
+       * Makefile.am: Added NFP files to build.
+       * archures.c: Added bfd_arch_nfp
+       * config.bfd: Added NFP support.
+       * configure.ac: Added NFP support.
+       * cpu-nfp.c: New, for NFP support.
+       * elf-bfd.h: Added elf_section_info()
+       * elf64-nfp.c: New, for NFP support.
+       * po/SRC-POTFILES.in: Added NFP source files.
+       * targets.c: Added nfp_elf64_vec
+       * bfd-in2.h: Regenerate.
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+
+2018-04-27  Alan Modra  <amodra@gmail.com>
+
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2018-04-27  Alan Modra  <amodra@gmail.com>
+
+       PR 23123
+       PR 22374
+       * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't drop plt
+       relocs for ifuncs.
+       * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Comment fixes.
+
+2018-04-26  Pedro Alves  <palves@redhat.com>
+
+       * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't consider
+       ifunc and non-ifunc symbols duplicates.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (elf32_arm_fdpic_thumb_plt_entry): New.
+       (elf32_arm_plt_needs_thumb_stub_p): Handle thumb-only case.
+       (elf32_arm_populate_plt_entry): Likewise.
+       (elf32_arm_output_plt_map_1): Likewise.
+       (elf32_arm_output_arch_local_syms): Likewise.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Handle
+       _GLOBAL_OFFSET_TABLE_ in FDPIC mode.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (bfd_elf32_arm_set_target_params): Handle FDPIC case
+       for R_ARM_TARGET2.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (DEFAULT_STACK_SIZE): New.
+       (elf32_arm_always_size_sections): Create stack segment.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * bfd-in2.h (BFD_RELOC_ARM_TLS_GD32_FDPIC)
+       (BFD_RELOC_ARM_TLS_LDM32_FDPIC, BFD_RELOC_ARM_TLS_IE32_FDPIC): New
+       relocations.
+       * elf32-arm.c (elf32_arm_howto_table_2): Add R_ARM_TLS_GD32_FDPIC,
+       R_ARM_TLS_LDM32_FDPIC, R_ARM_TLS_IE32_FDPIC relocations.
+       (elf32_arm_reloc_map): Add R_ARM_TLS_GD32_FDPIC,
+       R_ARM_TLS_LDM32_FDPIC, R_ARM_TLS_IE32_FDPIC.
+       (struct elf32_arm_link_hash_table): Update comment.
+       (elf32_arm_final_link_relocate): Handle TLS FDPIC relocations.
+       (IS_ARM_TLS_RELOC): Likewise.
+       (elf32_arm_check_relocs): Likewise.
+       (allocate_dynrelocs_for_symbol): Likewise.
+       (elf32_arm_size_dynamic_sections): Update comment.
+       * reloc.c: Add BFD_RELOC_ARM_TLS_GD32_FDPIC,
+       BFD_RELOC_ARM_TLS_LDM32_FDPIC, BFD_RELOC_ARM_TLS_IE32_FDPIC.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (elf32_arm_fdpic_plt_entry): New.
+       (elf32_arm_create_dynamic_sections): Handle FDPIC.
+       (elf32_arm_allocate_plt_entry): Likewise.
+       (elf32_arm_populate_plt_entry): Likewise.
+       (elf32_arm_output_plt_map_1): Likewise.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (struct fdpic_local): New.
+       (elf_arm_obj_tdata): Add local_fdpic_cnts field.
+       (elf32_arm_local_fdpic_cnts): New.
+       (struct fdpic_global): New.
+       (elf32_arm_link_hash_entry): Add fdpic_cnts field.
+       (elf32_arm_link_hash_table): Add srofixup field.
+       (arm_elf_add_rofixup): New.
+       (arm_elf_fill_funcdesc): New.
+       (elf32_arm_link_hash_newfunc): Handle fdpic_cnts.
+       (elf32_arm_allocate_local_sym_info): Likewise.
+       (create_got_section): Create .rofixup section.
+       (elf32_arm_copy_indirect_symbol): Handle fdpic_cnts.
+       (bfd_elf32_arm_set_target_params): Handle FDPIC.
+       (elf32_arm_final_link_relocate): Likewise.
+       (elf32_arm_check_relocs): Likewise.
+       (allocate_dynrelocs_for_symbol): Likewise.
+       (elf32_arm_size_dynamic_sections): Likewise.
+       (elf32_arm_finish_dynamic_sections): Likewise.
+       (elf32_arm_output_arch_local_syms): Likewise.
+       (elf32_arm_fdpic_omit_section_dynsym): New.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * bfd-in2.c (BFD_RELOC_ARM_GOTFUNCDESC)
+       (BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC)
+       (BFD_RELOC_ARM_FUNCDESC_VALUE): New.
+       * elf32-arm.c (elf32_arm_howto_table_2): Add R_ARM_GOTFUNCDESC,
+       R_ARM_GOTOFFFUNCDESC, R_ARM_FUNCDESC, R_ARM_FUNCDESC_VALUE.
+       (elf32_arm_howto_from_type): Take new members of
+       elf32_arm_howto_table_2 into account.
+       (elf32_arm_reloc_map): Add BFD_RELOC_ARM_GOTFUNCDESC,
+       BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC,
+       BFD_RELOC_ARM_FUNCDESC_VALUE.
+       * reloc.c: Add BFD_RELOC_ARM_GOTFUNCDESC,
+       BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC,
+       BFD_RELOC_ARM_FUNCDESC_VALUE.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * elf32-arm.c (elf32_arm_print_private_bfd_data): Support
+       EF_ARM_PIC and ELFOSABI_ARM_FDPIC.
+       (elf32_arm_post_process_headers): Support ELFOSABI_ARM_FDPIC.
+       (ELF_OSABI): Define to ELFOSABI_ARM_FDPIC.
+
+2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * config.bfd (arm*-*-linux-*): Add arm_elf32_fdpic_be_vec and
+       arm_elf32_fdpic_le_vec to targ_selvecs. Accept
+       arm*-*-uclinuxfdpiceabi.
+       * configure.ac: Add support for arm_elf32_fdpic_be_vec and
+       arm_elf32_fdpic_le_vec.
+       * configure: Regenerate.
+       * elf32-arm.c (struct elf32_arm_link_hash_table): Add fdpic_p.
+       (elf32_arm_link_hash_table_create): Initialize fdpic_p.
+       (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, TARGET_BIG_SYM)
+       (TARGET_BIG_NAME, elf_match_priority): Define for FDPIC targets.
+       (elf32_arm_fdpic_link_hash_table_create): New.
+       * targets.c (_bfd_target_vector): Add arm_elf32_fdpic_be_vec and
+       arm_elf32_fdpic_le_vec.
+
 2018-04-25  Alan Modra  <amodra@gmail.com>
 
        * elf-linux-core.h: Disable gcc-8 string truncation warning.