Contribute sh64-elf.
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index d73483232a7fe223d29e0b2deb9701013bd7c2a2..0d713d61c6a96f2a444a5745459efd4e4c20e3b3 100644 (file)
@@ -1,3 +1,340 @@
+2002-02-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       Contribute sh64-elf.
+       2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
+       * reloc.c (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
+       R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
+       R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
+       R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
+       R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
+       R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
+       R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
+       R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8, R_SH_GOTPLT10BY8,
+       R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64, R_SH_RELATIVE64):
+       New relocs.
+       * libbfd.h, bfd-in2.h: Rebuilt.
+       * elf32-sh.c (sh_elf_howto_table): Define new relocs.
+       (sh_reloc_map): Map them.
+       (PLT_ENTRY_SIZE, elf_sh_plt0_entry_be, elf_sh_plt0_entry_le,
+       elf_sh_plt_entry_be, elf_sh_plt_entry_le, elf_sh_pic_plt_entry_be,
+       elf_sh_pic_plt_entry_le, elf_sh_plt0_entry, elf_sh_plt_entry,
+       elf_sh_pic_plt_entry, elf_sh_sizeof_plt, elf_sh_plt_plt0_offset,
+       elf_sh_plt0_gotplt_offset, elf_sh_plt_temp_offset,
+       elf_sh_plt_symbol_offset, elf_sh_plt_reloc_offset,
+       movi_shori_putval) [INCLUDE_SHMEDIA]: New.
+       (elf_sh_link_hash_entry) [INCLUDE_SHMEDIA]: Add
+       datalabel_got_offset.
+       (sh_elf_link_hash_newfunc): Initialize it.
+       (sh_elf_relocate_section): Augment the scope of
+       seen_stt_datalabel.  Introduce GOTPLT support.  Extend GOTPC, PLT,
+       GOT and GOTOFF handling to new SHmedia relocation types.  Support
+       GOT_BIAS.
+       (sh_elf_check_relocs): Likewise.
+       (sh_elf_finish_dynamic_symbol) [TARGET_SHMEDIA]: Set up values in
+       PLT entries using movi_shori_putval.  Support GOT_BIAS.
+       (sh_elf_finish_dynamic_sections): Likewise.
+       * elf32-sh64.c (shmedia_prepare_reloc): Do not add addend to
+       relocation, it's now done by the caller.
+       (GOT_BIAS): New.
+       * elf64-sh64.c (GOT_BIAS, PLT_ENTRY_SIZE, elf_sh64_sizeof_plt,
+       elf_sh64_plt_plt0_offset, elf_sh64_plt0_gotplt_offset,
+       elf_sh64_plt_temp_offset, elf_sh64_plt_symbol_offset,
+       elf_sh64_plt_reloc_offset, ELF_DYNAMIC_INTERPRETER,
+       elf_sh64_pcrel_relocs_copied, elf_sh64_link_hash_entry,
+       elf_sh64_link_hash_table, sh64_elf64_link_hash_traverse,
+       sh64_elf64_hash_table): New.
+       (sh_elf64_howto_table): Introduce new relocs.
+       (sh_elf64_info_to_howto): Accept new PIC relocs.
+       (sh_elf64_relocate_section): Augment the scope of
+       seen_stt_datalabel.  Support new PIC relocs.
+       (sh_elf64_check_relocs): Support new PIC relocs.
+       (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le,
+       elf_sh64_plt_entry_be, elf_sh64_plt_entry_le,
+       elf_sh64_pic_plt_entry_be, elf_sh64_pic_plt_entry_le,
+       elf_sh64_plt0_entry, elf_sh64_plt_entry, elf_sh64_pic_plt_entry,
+       sh64_elf64_link_hash_newfunc, sh64_elf64_link_hash_table_create,
+       movi_shori_putval, movi_3shori_putval,
+       sh64_elf64_create_dynamic_sections,
+       sh64_elf64_adjust_dynamic_symbol, sh64_elf64_discard_copies,
+       sh64_elf64_size_dynamic_sections,
+       sh64_elf64_finish_dynamic_symbol,
+       sh64_elf64_finish_dynamic_sections): New.
+       (elf_backend_create_dynamic-sections,
+       bfd_elf64_bfd_link_hash_table_create,
+       elf_backend_adjust_dynamic_symbol,
+       elf_backend_size_dynamic_sections,
+       elf_backend_finish_dynamic_symbol,
+       elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
+       elf_backend_plt_readonly, elf_backend_want_plt_sym,
+       elf_backend_got_header_size, elf_backend_plt_header_size):
+       Define.
+       2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
+       * elf32-sh.c: Renumbered and renamed some SH5 relocations to
+       match official numbers and names; moved unmaching ones to the
+       range 0xf2-0xff.
+       * elf32-sh64.c, elf64-sh64.c: Likewise.
+       2001-03-12  DJ Delorie  <dj@redhat.com>
+       * elf32-sh.c (sh_elf_relax_section): Don't relax SHmedia
+       sections.
+       2001-03-12  DJ Delorie  <dj@redhat.com>
+       * elf32-sh64.c (shmedia_prepare_reloc): Validate relocs that must
+       be aligned.
+       * elf64-sh64.c (sh_elf64_relocate_section): Ditto.
+       2001-01-14  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh64.c (bfd_elf32_bfd_copy_private_section_data): Define.
+       (sh64_elf_fake_sections): Set type to SHT_SH5_CR_SORTED for a
+       .cranges section with SEC_SORT_ENTRIES set.
+       (sh64_backend_section_from_shdr): Set SEC_SORT_ENTRIES on an
+       incoming sorted .cranges section.
+       (sh64_bfd_elf_copy_private_section_data): New.
+       (sh64_elf_final_write_processing): Only sort .cranges and modify
+       start address if called by linker.
+       2001-01-08  Ben Elliston  <bje@redhat.com>
+       * elf32-sh64.c (sh64_elf_final_write_processing): Activate
+       Hans-Peter Nilsson's set bit 0 patch from       2001-01-06.
+       * elf64-sh64.c (sh64_elf64_final_write_processing): Ditto.
+       2001-01-06  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf64-sh64.c (sh_elf64_howto_table): No open brace at start of
+       line.  Add comments before all entries.
+       <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct and clarify describing
+       comment.
+       (sh_elf64_reloc): Correct head comment.
+       (sh_elf64_relocate_section): Correct spacing.
+       <relocating for a local symbol>: Do not honour STO_SH5_ISA32;
+       instead call reloc_dangerous callback.
+       <case R_SH_SHMEDIA_CODE>: New case.
+       (sh_elf64_gc_mark_hook): Correct spacing.
+       (sh_elf64_check_relocs): Ditto.
+       * elf32-sh64.c (shmedia_prepare_reloc) <case R_SH_SHMEDIA_CODE>:
+       New case.
+       * elf32-sh.c: Correct #endif comments for #ifndef-wrapped
+       functions.
+       (sh_elf_howto_table) <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct,
+       clarify describing comment.  Add comments before all entries.
+       (sh_elf_relocate_section) <relocating for a local symbol>: Do not
+       honour STO_SH5_ISA32; instead call reloc_dangerous callback.
+       2001-01-06  Hans-Peter Nilsson  <hpn@cygnus.com>
+       Sort .cranges section in final link.  Prepare to set bit 0 on
+       entry address.
+       * elf32-sh64.c (struct sh64_find_section_vma_data): New.
+       (sh64_elf_link_output_symbol_hook): Fix typo in prototype.
+       (sh64_elf_set_mach_from_flags): Set SEC_DEBUGGING on incoming
+       .cranges section.
+       (sh64_backend_section_from_shdr): New, to recognize
+       SHT_SH5_CR_SORTED on incoming .cranges section.
+       (elf_backend_section_from_shdr): Define.
+       (sh64_elf_final_write_processing): Sort outgoing .cranges
+       section.  (New, temporarily disabled:) Set bit 0 on entry address
+       according to ISA type.
+       (sh64_find_section_for_address): New.
+       (crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb,
+       crange_bsearch_cmpl): Move here from opcodes/sh64-dis.c.
+       (sh64_address_in_cranges): Move here from opcodes/sh64-dis.c.  Use
+       bfd_malloc, not xmalloc.
+       (sh64_get_contents_type): Move here from opcodes/sh64-dis.c.  Make
+       global.
+       * elf32-sh64.c (sh64_elf64_final_write_processing): New, (but
+       temporarily disabled) setting bit 0 on entry address.
+       (elf_backend_final_write_processing): Define.
+       2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh.c (sh_elf_howto_table) <R_SH_PT_16>: Adjust fields to
+       be a proper relocation for PTA and PTB rather than a marker.
+       <R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
+       R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
+       R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
+       R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
+       R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL>:
+       Zero src_mask.
+       * elf64-sh64.c: Ditto.
+       (sh_elf64_relocate_section) <case R_SH_PT_16>: New case.
+       * elf32-sh64.c: Include opcodes/sh64-opc.h
+       (shmedia_prepare_reloc): Take a bfd_link_info pointer as first
+       argument.  Drop const qualifiers from "bfd *" and "bfd_byte *"
+       parameters.  No unused parameters.  Caller changed.
+       <case R_SH_PT_16>: New case.
+       * Makefile.am (elf32-sh64.lo): Add dependency on sh64-opc.h.
+       * Makefile.in: Regenerate.
+       2000-12-30  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf64-sh64.c (sh64_elf64_fake_sections): Set SHF_SH5_ISA32 for
+       all code sections.
+       (sh_elf64_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
+       (sh64_elf_merge_private_data): Ditto.
+       * elf32-sh64.c (sh64_elf_fake_sections): Use sh64_elf_section_data
+       to access stored section flags.
+       (sh64_elf_final_write_processing): Return immediately unless
+       called by linker.  Use sh64_elf_section_data (cranges) to get size
+       of linker-generated cranges entries.
+       (sh64_elf_copy_private_data): Add missing "return true".
+       (sh64_elf_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
+       (sh_elf64_merge_private_data): Ditto.
+       2000-12-19  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf64-sh64.c (sh64_elf64_fake_sections): New, copy of
+       elf64-sh64.c:sh64_elf_fake_sections.
+       (elf_backend_fake_sections): Define as sh64_elf64_fake_sections.
+       2000-12-18  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh64.c (sh64_elf_copy_private_data_internal): Delete.
+       (sh64_elf_final_write_processing): New.
+       (elf_backend_final_write_processing): Define.
+       (sh64_elf_fake_sections): Get header flags from tdata field.
+       (sh64_elf_copy_private_data): Do not call
+       sh64_elf_copy_private_data_internal, just copy e_flags field.
+       (sh64_elf_merge_private_data): Do not call
+       sh64_elf_copy_private_data_internal.
+       2000-12-12  Hans-Peter Nilsson  <hpn@cygnus.com>
+       Remove EF_SH64_ABI64, let ELF size make difference.
+       Remove SH64-specific BFD section flag.
+       * elf32-sh64.c (sh64_elf_fake_sections): Recognize section as
+       containing SHmedia through elf_section_data (asect)->tdata
+       non-zero, not using a BFD section flag.
+       (sh64_elf_set_mach_from_flags): Don't recognize EF_SH64_ABI64.
+       (sh64_elf_merge_private_data): Similar.
+       (elf_backend_section_flags): Don't define.
+       (sh64_elf_backend_section_flags): Delete.
+       * elf64-sh64.c (sh_elf64_set_mach_from_flags): Recognize EF_SH64,
+       not EF_SH64_ABI64.
+       (sh_elf64_merge_private_data): Similar.
+       * section.c (Section flags definitions): Don't define
+       SEC_SH_ISA_SHMEDIA.
+       (bfd-in2.h): Regenerate.
+       2000-12-09  Hans-Peter Nilsson  <hpn@cygnus.com>
+       Make DataLabel references work with partial linking.
+       * elf32-sh64.c: Fix formatting.
+       (sh64_elf_link_output_symbol_hook): New.
+       (elf_backend_link_output_symbol_hook): Define to
+       sh64_elf_link_output_symbol_hook.
+       (sh64_elf_add_symbol_hook): Make DataLabel symbol just global
+       undefined if partial linking.  Adjust sanity check.
+       * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): New.
+       (elf_backend_link_output_symbol_hook): Define to
+       sh64_elf64_link_output_symbol_hook.
+       (sh64_elf64_add_symbol_hook): Make DataLabel symbol just global
+       undefined if partial linking.  Adjust sanity check.
+       2000-12-07  Hans-Peter Nilsson  <hpn@cygnus.com>
+       Implement semantics for inter-file DataLabel references.
+       * elf64-sh64.c (DATALABEL_SUFFIX): Define.
+       (sh64_elf64_add_symbol_hook): New.
+       (sh_elf64_relocate_section): If passing an indirect symbol with
+       st_type STT_DATALABEL on the way to a symbol with st_other
+       STO_SH5_ISA32, do not bitor 1 to the relocation.
+       (elf_backend_add_symbol_hook): Define to
+       sh64_elf64_add_symbol_hook.
+       * elf64-sh32.c: Tweak comments.
+       (DATALABEL_SUFFIX): Define.
+       (sh64_elf_add_symbol_hook): New.
+       (elf_backend_add_symbol_hook): Define to sh64_elf_add_symbol_hook.
+       * elf32-sh.c (sh_elf_relocate_section): If passing an indirect
+       symbol with st_type STT_DATALABEL on the way to a symbol with
+       st_other STO_SH5_ISA32, do not bitor 1 to the relocation.
+       2000-12-05  Hans-Peter Nilsson  <hpn@cygnus.com>
+       Pass through STT_DATALABEL.
+       * elf32-sh64.c (sh64_elf_get_symbol_type): New.
+       (elf_backend_get_symbol_type): Define.
+       * elf64-sh64.c (sh64_elf64_get_symbol_type): New.
+       (elf_backend_get_symbol_type): Define.
+       2000-11-30  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh64.c: Tweak comments.
+       (sh64_elf_copy_private_data_internal): Add prototype.
+       (bfd_elf32_bfd_set_private_flags): Define.
+       (sh64_elf_copy_private_data_internal): Compare machine name, not
+       textual BFD target name, to check whether to copy section flag
+       SHF_SH5_ISA32.
+       (sh64_elf_merge_private_data): Validize bfd_get_arch_size.
+       Tweak section-contents-type-mismatch message.
+       (shmedia_prepare_reloc): Add ATTRIBUTE_UNUSED markers.
+       Validize reloc-types.
+       * elf64-sh64.c: New file.
+       * targets.c (bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec): Declare.
+       * Makefile.am (BFD64_BACKENDS): Add elf64-sh64.lo.
+       (BFD64_BACKENDS_CFILES): Add elf64-sh64.c.
+       Regenerate dependencies.
+       * Makefile.in: Regenerate.
+       * config.bfd (sh64-*-elf*): Add bfd_elf64_sh64_vec and
+       bfd_elf64_sh64l_vec.
+       * configure.in: Handle bfd_elf64_sh64_vec and
+       bfd_elf64_sh64l_vec.
+       * configure: Regenerate.
+       * po/POTFILES.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+       2000-11-29  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh64.c (sh64_elf_set_mach_from_flags): Do not recognize
+       anything else but EF_SH64 and EF_SH64_ABI64.
+       (sh64_elf_merge_private_data): Emit error for anything else but
+       EF_SH64 and EF_SH64_ABI64.
+       * config.bfd: Remove bfd_elf32_shblin_vec and bfd_elf32_shlin_vec
+       from targ_selvecs.
+       * configure.in: Add cofflink.lo to bfd_elf32_sh64_vec and
+       bfd_elf32_sh64l_vec as a temporary measure.
+       * configure: Regenerate.
+       2000-11-27  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * cpu-sh.c (arch_info_struct): Include sh5 item
+       unconditionalized.
+       * config.bfd (sh64-*-elf*): Do not set targ_cflags.
+       Add targ_selvecs bfd_elf32_sh_vec, bfd_elf32_shl_vec,
+       bfd_elf32_shblin_vec and bfd_elf32_shlin_vec.
+       * elf32-sh64.c: Tweak comments.
+       (sh64_elf_set_mach_from_flags): Recognize all machine flags that
+       are proper subsets of SH64 as bfd_mach_sh5.  Add EF_SH64_ABI64.
+       (sh64_elf_copy_private_data_internal): Wrap long line.
+       (sh64_elf_merge_private_data): Rewrite to allow objects from
+       SH64 subsets to be linked together.
+       (INCLUDE_SHMEDIA): Define.
+       * elf32-sh.c (sh_elf_relocate_section) <local symbol>:
+       Parenthesize plus-expression inside or-expression.
+       <global symbol>: Ditto.
+       (sh_elf_set_mach_from_flags): Remove code refusing
+       deleted EF_SH64_32BIT_ABI flag.
+       2000-11-26  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * elf32-sh.c (sh_elf_howto_table) <R_SH_IMM_LOW16_PCREL,
+       R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16_PCREL,
+       R_SH_IMM_HI16_PCREL, R_SH_64_PCREL>: Set pcrel_offset to true.
+       (sh_elf_relocate_section) <local symbol>: Or 1 in
+       calculation of relocation if sym->st_other & STO_SH5_ISA32.
+       <global symbol>: Ditto if h->other & STO_SH5_ISA32.
+       * elf32-sh64.c (shmedia_prepare_reloc): Add rel->r_addend to
+       relocation.
+       2000-11-24  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * Makefile.am (BFD32_BACKENDS): Add elf32-sh64.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-sh64.c.
+       Regenerate dependencies.
+       * Makefile.in: Regenerate.
+       * archures.c: Add bfd_mach_sh5.
+       * config.bfd: Map targ_cpu sh* to bfd_sh_arch.
+       Handle sh64-*-elf*.  Set targ_cflags to -DINCLUDE_SHMEDIA.
+       * configure.in: Handle bfd_elf32_sh64_vec and bfd_elf32_sh64l_vec.
+       * configure: Regenerate.
+       * reloc.c (BFD_RELOC_SH_SHMEDIA_CODE, BFD_RELOC_SH_IMMU5,
+       BFD_RELOC_SH_IMMS6, BFD_RELOC_SH_IMMS6BY32, BFD_RELOC_SH_IMMU6,
+       BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2,
+       BFD_RELOC_SH_IMMS10BY4, BFD_RELOC_SH_IMMS10BY8,
+       BFD_RELOC_SH_IMMS16, BFD_RELOC_SH_IMMU16, BFD_RELOC_SH_IMM_LOW16,
+       BFD_RELOC_SH_IMM_LOW16_PCREL, BFD_RELOC_SH_IMM_MEDLOW16,
+       BFD_RELOC_SH_IMM_MEDLOW16_PCREL, BFD_RELOC_SH_IMM_MEDHI16,
+       BFD_RELOC_SH_IMM_MEDHI16_PCREL, BFD_RELOC_SH_IMM_HI16,
+       BFD_RELOC_SH_IMM_HI16_PCREL, BFD_RELOC_SH_PT_16): New relocations.
+       * cpu-sh.c [INCLUDE_SHMEDIA] (arch_info_struct): Define and link
+       in item for SH5.
+       * elf32-sh.c [INCLUDE_SHMEDIA] (sh_elf_howto_table): Add howto items
+       for SHmedia relocs.
+       [INCLUDE_SHMEDIA] (sh_rel): Add mappings for SHmedia relocs.
+       [INCLUDE_SHMEDIA] (sh_elf_relocate_section) [default]: Call
+       shmedia_prepare_reloc, goto final_link_relocate if it returns
+       non-zero, else fail as before.
+       (sh_elf_set_mach_from_flags): Provide function only if not defined
+       as macro.  Do not recognize objects with EF_SH64_32BIT_ABI set.
+       (sh_elf_set_private_flags): Provide function only if not defined
+       as a macro.
+       (sh_elf_copy_private_data): Similar.
+       (sh_elf_merge_private_data): Similar.
+       * section.c (SEC_SH_ISA_SHMEDIA): New.
+       * targets.c (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec): Declare.
+       * elf32-sh64.c: New file.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * po/POTFILES.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
 2002-02-07  Daniel Jacobowitz  <drow@mvista.com>
 
        * bfd-in.h: Update <stdbool.h> check to only see if <stdbool.h> has
This page took 0.02973 seconds and 4 git commands to generate.