Add assembler, disassembler and linker support for power9.
[external/binutils.git] / bfd / ChangeLog
index a2e3034..bde7118 100644 (file)
@@ -1,3 +1,295 @@
+2015-11-11  Alan Modra  <amodra@gmail.com>
+            Peter Bergner <bergner@vnet.ibm.com>
+
+       * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_REL16DX_HA.
+       (ppc_elf_reloc_type_lookup): Handle R_PPC_REL16DX_HA.
+       (ppc_elf_addr16_ha_reloc): Likewise.
+       (ppc_elf_check_relocs): Likewise.
+       (ppc_elf_relocate_section): Likewise.
+       (is_insn_dq_form): Handle lxv and stxv instructions.
+       * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_REL16DX_HA.
+       (ppc64_elf_reloc_type_lookup): Handle R_PPC64_REL16DX_HA.
+       (ppc64_elf_ha_reloc): Likewise.
+       (ppc64_elf_check_relocs): Likewise.
+       (ppc64_elf_relocate_section): Likewise.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Likewise.
+       * reloc.c (BFD_RELOC_PPC_REL16DX_HA): New.
+
+2015-11-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Handle VTINHERIT
+       and VTENTRY relocations when deleting relocations.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2015-11-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Properly move
+       kept relocations when deleting relocations.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2015-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Use read and write
+       pointers to reloc array, rather than memmove when deleting a
+       reloc.  Don't use RELOC_AGAINST_DISCARDED_SECTION.  Adjust
+       reloc counts at end of loop.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2015-11-10  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_relocate_section): Use read and write
+       pointers to reloc array, rather than memmove when deleting a
+       reloc.  Don't use RELOC_AGAINST_DISCARDED_SECTION.  Adjust
+       reloc counts at end of loop.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+
+2015-11-09  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+
+       * elf64-ppc.c (ppc64_elf_size_stubs, ppc64_elf_build_stubs): Fix left
+       shift of negative value.
+       * libbfd.c (safe_read_leb128): Likewise.
+       * dwarf2.c (place_sections): Likewise.
+       * bfd-in.h (align_power): Likewise.
+       * bfd-in2.h (align_power): Likewise.
+
+2015-10-30  Nick Clifton  <nickc@redhat.com>
+
+       * po/zh_CN.po: Updated (simplified) Chinese translation.
+
+2015-10-29  Catherine Moore  <clm@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_check_mips16_stubs): Set a stub's output
+       section to bfd_abs_section_ptr if the stub is discarded.
+
+2015-10-29  Ed Schouten  <ed@nuxi.nl>
+
+       * config.bfd (targ_defvec): Add support for CloudABI on aarch64.
+       For this target we have to make sure we use ELFOSABI_CLOUDABI
+       instead of ELFOSABI_NONE.
+       * configure.ac (tb): Likewise.
+       * elfnn-aarch64.c: Likewise.
+       * targets.c (_bfd_target_vector): Likewise.
+       * configure: Regenerate.
+
+2015-10-29  Pedro Alves  <palves@redhat.com>
+
+       * libhppa.h (bfd_hppa_insn2fmt): Add cast.
+
+2015-10-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Fix a typo in
+       comment.
+
+2015-10-28  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arm.c (create_instruction_branch_absolute): Replace
+       pointer parameters with a simple integer parameter.
+       (stm32l4xx_create_replacing_stub_ldmia): Update calls to
+       create_instruction_branch_absolute.
+       (stm32l4xx_create_replacing_stub_ldmdb): Likewise.
+       (stm32l4xx_create_replacing_stub_vldm): Likewise.
+       (elf32_arm_write_section): Use pointer type for veneer addresses.
+
+2015-10-28  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * reloc.c (BFD_RELOC_ARC_32_PCREL): New entry.
+       * elf32-arc.c (arc_elf_howto_ini): Update formula.
+       (get_middle_endian_relocation): New function.
+       (PDATA): Define.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Likewise.
+
+2015-10-28  Alan Modra  <amodra@gmail.com>
+
+       PR ld/19162
+       * elflink.c (_bfd_elf_gc_mark_reloc): Move code iterating over
+       linker input bfds..
+       * section.c (bfd_get_next_section_by_name): ..to here.  Add ibfd param.
+       (bfd_get_linker_section): Adjust bfd_get_next_section_by_name call.
+       * tekhex.c (first_phase): Likewise.
+       * elflink.c (bfd_elf_gc_sections): Likewise.
+       * bfd-in2.h: Regenerate.
+
+2015-10-27  Laurent Alfonsi <laurent.alfonsi@st.com>
+            Christophe Monat <christophe.monat@st.com>
+
+       * bfd-in2.h: Regenerate.
+       * bfd-in.h (bfd_arm_stm32l4xx_fix): New enum. Specify how
+       STM32L4XX instruction scanning should be done.
+       (bfd_elf32_arm_set_stm32l4xx_fix)
+       (bfd_elf32_arm_stm32l4xx_erratum_scan)
+       (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): Add prototypes.
+       (bfd_elf32_arm_set_target_relocs): Add stm32l4xx fix type argument
+       to prototype.
+       * elf32-arm.c (STM32L4XX_ERRATUM_VENEER_SECTION_NAME)
+       (STM32L4XX_ERRATUM_VENEER_ENTRY_NAME): Define macros.
+       (elf32_stm32l4xx_erratum_type): New enum.
+       (elf32_stm32l4xx_erratum_list): New struct. List of veneers or
+       jumps to veneers.
+       (_arm_elf_section_data): Add stm32l4xx_erratumcount,
+       stm32l4xx_erratumlist.
+       (elf32_arm_link_hash_table): Add stm32l4xx_erratum_glue_size,
+       stm32l4xx_fix and num_stm32l4xx_fixes fields.
+       (ctz): New function.
+       (popcount): New function.
+       (elf32_arm_link_hash_table_create): Initialize stm32l4xx_fix.
+       (put_thumb2_insn): New function.
+       (STM32L4XX_ERRATUM_LDM_VENEER_SIZE): Define. Size of a veneer for
+       LDM instructions.
+       (STM32L4XX_ERRATUM_VLDM_VENEER_SIZE): Define. Size of a veneer for
+       VLDM instructions.
+       (bfd_elf32_arm_allocate_interworking_sections): Initialise erratum
+       glue section.
+       (record_stm32l4xx_erratum_veneer) : New function. Create a single
+       veneer, and its associated symbols.
+       (bfd_elf32_arm_add_glue_sections_to_bfd): Add STM32L4XX erratum glue.
+       (bfd_elf32_arm_set_stm32l4xx_fix): New function. Set the type of
+       erratum workaround required.
+       (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): New function. Find
+       out where veneers and branches to veneers have been placed in
+       virtual memory after layout.
+       (is_thumb2_ldmia): New function.
+       (is_thumb2_ldmdb): Likewise.
+       (is_thumb2_vldm ): Likewise.
+       (stm32l4xx_need_create_replacing_stub): New function. Decide if a
+       veneer must be emitted.
+       (bfd_elf32_arm_stm32l4xx_erratum_scan): Scan the sections of an
+       input BFD for potential erratum-triggering insns. Record results.
+       (bfd_elf32_arm_set_target_relocs): Set stm32l4xx_fix field in
+       global hash table.
+       (elf32_arm_size_dynamic_sections): Collect glue information.
+       (create_instruction_branch_absolute): New function.
+       (create_instruction_ldmia): Likewise.
+       (create_instruction_ldmdb): Likewise.
+       (create_instruction_mov): Likewise.
+       (create_instruction_sub): Likewise.
+       (create_instruction_vldmia): Likewise.
+       (create_instruction_vldmdb): Likewise.
+       (create_instruction_udf_w): Likewise.
+       (create_instruction_udf): Likewise.
+       (push_thumb2_insn32): Likewise.
+       (push_thumb2_insn16): Likewise.
+       (stm32l4xx_fill_stub_udf): Likewise.
+       (stm32l4xx_create_replacing_stub_ldmia): New function. Expands the
+       replacing stub for ldmia instructions.
+       (stm32l4xx_create_replacing_stub_ldmdb): Likewise for ldmdb.
+       (stm32l4xx_create_replacing_stub_vldm): Likewise for vldm.
+       (stm32l4xx_create_replacing_stub): New function. Dispatches the
+       stub emission to the appropriate functions.
+       (elf32_arm_write_section): Output veneers, and branches to veneers.
+
+2015-10-27  Sangamesh Mallayya  <nickc@redhat.com>sangamesh.swamy@in.ibm.com>
+
+       * configure.ac (powerpc64-*-aix[5-9].*): Match powerpc64 running
+       aix for core file support.
+       * configure: Regenerate.
+       * rs6000-core.c: Check for __ld_info64 if compiling 64-bit gdb.
+       Added BFD64 check if we are using old core file format for 32-bit gdb.
+       Set sizeof CORE_COMMONSZ appropriately in case of either new or
+       old core file format.
+       (read_hdr): Added BFD64 check for 64-bit support.
+       (rs6000coff_core_p): Likewise.
+       (rs6000coff_core_file_matches_executable_p): Likewise.
+       (rs6000coff_core_file_failing_command): Likewise.
+       (rs6000coff_core_file_failing_signal): Likewise.
+       Add support for debugging core files generated by binaries in
+       Large Memory model.
+       (rs6000coff_core_p): If Large Memory Model is used, then the .data
+       segment should start from BDATAORG which has been defined in the
+       system header files.
+
+2015-10-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/19175
+       * elf32-i386.c (elf_i386_convert_load): Check bfd_link_hash_new
+       instead of calling bfd_link_get_defined_symbol.
+       * elf64-x86-64.c (elf_x86_64_convert_load): Likewise.  Skip
+       relocation overflow for bfd_link_hash_new.
+       * linker.c (bfd_link_get_defined_symbol): Removed.
+       * bfd-in2.h: Regenerated.
+
+2015-10-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/19171
+       * elf32-i386.c (elf_i386_convert_load): Call
+       bfd_link_get_defined_symbol to check if a symbol is defined.
+       * elf64-x86-64.c (elf_x86_64_convert_load): Call
+       bfd_link_get_defined_symbol to get defined symbol section and
+       value.
+       * linker.c (bfd_link_get_defined_symbol): New function.
+       * bfd-in2.h: Regenerated.
+
+2015-10-23  Alan Modra  <amodra@gmail.com>
+
+       PR ld/11133
+       PR ld/19161
+       PR ld/19167
+       * elflink.c (_bfd_elf_gc_mark_hook): Delete code handling __start_*
+       and __stop_* symbol refs.
+       (_bfd_elf_gc_mark_rsec): Add start_stop parameter.  Handle __start_*
+       and __stop_* symbol refs here..
+       (_bfd_elf_gc_mark_reloc): ..and here.
+       * elf-bfd.h (_bfd_elf_gc_mark_hook): Update prototype.
+       * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Update
+       _bfd_elf_gc_mark_rsec call.
+
+2015-10-23  Alan Modra  <amodra@gmail.com>
+
+       PR ld/11133
+       PR ld/19161
+       * elflink.c (elf_gc_sweep): Revert last patch.
+       (_bfd_elf_gc_mark_hook): Don't set SEC_KEEP here.
+
+2015-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/19161
+       * elflink.c (elf_gc_sweep): Always keep sections marked with
+       SEC_KEEP.
+
+2015-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * mmo.c (struct mmo_data_struct): New members
+       symbol_consistency_override_calculated and ignore_symbol_consistency.
+       (mmo_section_has_contents, mmo_ignore_symbol_consistency): New
+       functions.
+       (mmo_create_symbol): Check with mmo_ignore_symbol_consistency if to
+       report an error for unexpected value of Main.
+       (mmo_write_symbols_and_terminator): Similar.
+
+2015-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_convert_load): Use call_nop_byte and
+       check call_nop_as_suffix for 1-byte NOP padding to pad call.
+       * elf64-x86-64.c (elf_x86_64_convert_load): Likewise.
+
+2015-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c: Include opcode/i386.h.
+       (x86_64_elf_howto_table): Add R_X86_64_GOTPCRELX and
+       R_X86_64_REX_GOTPCRELX.
+       (R_X86_64_standard): Replace R_X86_64_PLT32_BND with
+       R_X86_64_REX_GOTPCRELX.
+       (x86_64_reloc_map): Add BFD_RELOC_X86_64_GOTPCRELX and
+       BFD_RELOC_X86_64_REX_GOTPCRELX.
+       (need_convert_mov_to_lea): Renamed to ...
+       (need_convert_load): This.
+       (elf_x86_64_check_relocs): Handle R_X86_64_GOTPCRELX and
+       R_X86_64_REX_GOTPCRELX.  Replace need_convert_mov_to_lea with
+       need_convert_load.
+       (elf_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPCRELX and
+       R_X86_64_REX_GOTPCRELX.
+       (elf_x86_64_size_dynamic_sections): Likewise.
+       (elf_x86_64_relocate_section): Likewise.
+       (elf_x86_64_convert_mov_to_lea): Renamed to ...
+       (elf_x86_64_convert_load): This.  Replace need_convert_mov_to_lea
+       with need_convert_load.  Support R_X86_64_GOTPCRELX and
+       R_X86_64_REX_GOTPCRELX transformations.
+       * reloc.c (BFD_RELOC_X86_64_GOTPCRELX): New.
+       (BFD_RELOC_X86_64_REX_GOTPCRELX): Likewise.
+       * bfd-in2.h: Regenerated.
+       * libbfd.h: Likewise.
+
 2015-10-22  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf32-i386.c: Include opcode/i386.h.