Add support for m32r-linux target, including a RELA ABI and PIC.
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 562126fc4d95178696f3149d3d577c711d8d4491..9665466689574113a526faa46f07be4e21750f31 100644 (file)
@@ -1,3 +1,342 @@
+2003-12-19  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       Adfd m32r-linux and PIC support.  Add new ABI that uses RELA.
+       * config.bfd (m32r*-*-linux*, m32r*le-*-linux*, m32r*le-*-*): Added.
+       * configure.in (bfd_elf32_m32rlin_vec, bfd_elf32_m32rlelin_vec,
+       bfd_elf32_m32rle_vec): Added
+       * configure: Regenerated.
+       * elf32-m32r.c (m32r_info_to_howto, m32r_elf_adjust_dynamic_symbol,
+       m32r_elf_size_dynamic_sections, m32r_elf_create_dynamic_sections,
+       m32r_elf_finish_dynamic_sections, m32r_elf_finish_dynamic_symbol,
+       allocate_dynrelocs, readonly_dynrelocs, m32r_elf_reloc_type_class,
+       m32r_elf_fake_sections): Added.
+       (m32r_elf_howto_table): Added
+       R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
+       R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA,
+       R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA,
+       R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA,
+       R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT,
+       R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24,
+       R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT,
+       R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF,
+       R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO,
+       R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO,
+       R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO,
+       R_M32R_GOTPC_LO.
+       (m32r_elf_relocate_section, m32r_elf_check_relocs): Changed for
+       New ABI.
+       * reloc.c: Add BFD_RELOC_M32R_GOT24, BFD_RELOC_M32R_26_PLTREL,
+       BFD_RELOC_M32R_COPY, BFD_RELOC_M32R_GLOB_DAT,
+       BFD_RELOC_M32R_JMP_SLOT, BFD_RELOC_M32R_RELATIVE,
+       BFD_RELOC_M32R_GOTOFF, BFD_RELOC_M32R_GOTPC24,
+       BFD_RELOC_M32R_GOT16_HI_ULO, BFD_RELOC_M32R_GOT16_HI_SLO,
+       BFD_RELOC_M32R_GOT16_LO, BFD_RELOC_M32R_GOTPC_HI_ULO,
+       BFD_RELOC_M32R_GOTPC_HI_SLO, BFD_RELOC_M32R_GOTPC_LO.
+       * targets.c (bfd_elf32_m32rlin_vec, bfd_elf32_m32rlelin_vec,
+       bfd_elf32_m32rle_vec): Added.
+       * bfd-in2.h: Regenerated.
+       * libbfd.h: Regenerated.
+
+2003-12-19  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * coffcode.h (styp_to_sec_flags): Don't treat .reloc section
+       as SEC_DEBUGGING.
+
+2003-12-18  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elf32-mips.c (elf_mips_howto_table_rel): Replace all uses of
+       mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
+       _bfd_mips_elf_hi16_reloc for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16,
+       _bfd_mips_elf_lo16_reloc for R_MIPS_LO16 and R_MIPS_GNU_REL_LO16,
+       and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.  Change rightshift
+       to 16 for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16.
+       (mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
+       (mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
+       (_bfd_mips_elf32_gprel16_reloc): Remove special case.
+       (mips_elf_gprel32_reloc, mips32_64bit_reloc): Likewise.
+
+       * elf64-mips.c (mips_elf64_howto_table_rel): Replace all uses of
+       mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
+       _bfd_mips_elf_hi16_reloc for R_MIPS_HI16, _bfd_mips_elf_lo16_reloc
+       for R_MIPS_LO16 and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.
+       Change R_MIPS_HI16's rightshift to 16.
+       (mips_elf64_howto_table_rela): Replace all uses of
+       mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.
+       Use _bfd_mips_elf_generic_reloc for R_MIPS_GOT16 as well.
+       (mips_elf64_hi16_reloc, mips_elf64_got16_reloc): Delete.
+       (mips_elf64_shift6_reloc): Remove special case.  Use
+       _bfd_mips_elf_generic_reloc instead of returning bfd_reloc_continue.
+
+       * elfn32-mips.c (prev_reloc_section): Delete.
+       (prev_reloc_address, prev_reloc_addend): Delete.
+       (elf_mips_howto_table_rel, elf_mips_howto_table_rela): As for
+       elf64-mips.c
+       (GET_RELOC_ADDEND, SET_RELOC_ADDEND): Delete.
+       (mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
+       (mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
+       (mips_elf_gprel16_reloc): Delete use of GET_RELOC_ADDEND.
+       (mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
+       (mips16_jump_reloc, mips16_gprel_reloc): Likewise.
+       (mips_elf_shift6_reloc): Likewise.  Delete use of SET_RELOC_ADDEND.
+
+       * elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Use
+       _bfd_relocate_contents to install an in-place addend.
+       (mips_hi16): New structure.
+       (mips_hi16_list): Moved from elf32-mips.c.
+       (_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_got16_reloc): New functions.
+       (_bfd_mips_elf_lo16_reloc, _bfd_mips_elf_generic_reloc): New functions.
+       (mips_elf_calculate_relocation): Assume addend is unshifted.
+       (_bfd_mips_elf_relocate_section): Don't apply the howto rightshift
+       on top of the usual high-part shift.  Don't shift the addend right
+       before calling mips_elf_calculate_relocation.
+
+       * elfxx-mips.h (_bfd_mips_elf_hi16_reloc): Declare.
+       (_bfd_mips_elf_got16_reloc, _bfd_mips_elf_lo16_reloc): Declare.
+       (_bfd_mips_elf_generic_reloc): Declare.
+
+2003-12-16  Eric Youngdale  <eric@mkssoftware.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       * peicode.h (pe_ILF_build_a_bfd): Only skip one instance of each
+       prefix character, if they are present.
+
+2003-12-15  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+           Nick Clifton  <nickc@redhat.com>
+
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Ensure that correct flags
+       are set on known section types.
+       
+2003-12-12  Nick Clifton  <nickc@redhat.com>
+
+       * po/ro.po: Updated translation.
+
+2003-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Check for
+       NULL dyn_h.
+
+2003-12-11  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (INCLUDE_SECTION_IN_SEGMENT): Skip PT_GNU_STACK segments.
+
+2003-12-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elfxx-mips.h, elfxx-mips.c, cpu-mips.c: Convert prototypes.
+       Remove casts that were only needed for K&R compatibility.
+
+2003-12-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct elf_backend_data): Remove "bfd *" and add
+       "elflink_hash_entry *" param to elf_backend_link_output_symbol_hook.
+       Add "elflink_hash_entry *" param to elf_backend_output_arch_syms.
+       * elflink.h (elf_link_output_sym): Add "elflink_hash_entry *" param,
+       and pass to output_symbol_hook.
+       (elf_bfd_final_link): Adjust elf_link_output_sym calls.
+       (elf_link_output_extsym): Likewise.
+       (elf_link_input_bfd): Likewise.
+       * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Adjust.
+       * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
+       * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
+       * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
+       * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
+       * elf64-sparc.c (sparc64_elf_output_arch_syms): Likewise.
+       * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
+       Validate dynh->h against h.
+       * elf64-ppc.c (struct ppc_link_hash_entry): Add adjust_done bitfield.
+       (link_hash_newfunc): Init it.
+       (adjust_opd_syms): New function.
+       (ppc64_elf_edit_opd): Set adjust_done when global .opd sym adjusted.
+       Set opd.adjust for all .opd relocs.  Call adjust_opd_syms.
+       (ppc64_elf_tls_optimize): Adjust possible .opd sym values here.
+       (ppc64_elf_relocate_section): Also adjust syms not a multiple of 24.
+       (ppc64_elf_output_symbol_hook): New function.
+       (elf_backend_link_output_symbol_hook): Define.
+
+2003-12-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elf32-mips.c, elfn32-mips.c, elf64-mips.c: Convert prototypes.
+       Remove casts that were only needed for K&R compatibility.
+
+2003-12-05  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+
+       * coff-arm.c (aoutarm_std_reloc_howto [ARM_WINCE]): Set
+       partial_inplace for these relocs to FALSE for comptability with
+       the MS linker.
+       Remap ARM_26D relocation from 5 to 0. This fixes "bad fixup" error
+       generated by MS linker, and brings the relocation in line the MS
+       PE documentation.
+
+2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-ppc.c (ppc_elf_relax_section): Don't check relax_finalizing.
+
+2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Use the
+       need_relax_finalize field in link_info instead of
+       relax_finalizing to check if the relax finalize pass is being
+       done.
+
+2003-12-04  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+
+       * coff-arm.c (coff_arm_relocate_section, bfd_arm_process_before_allocation):
+       Change ARM26* to ARM_26* in comments to match definitions.
+       (coff_arm_adjust_symndx): Replace hard-coded constants with
+       appropriate definitions (ARM_26*).
+
+2003-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-i860.c (coff_i860_reloc_nyi): Return bfd_reloc_not_supported.
+       * elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Warning fixes.
+       (mn10300_elf_relax_section): Likewise.
+       * nlm32-alpha.c (ONES): Define.
+       (nlm32_alpha_howto_table): Use it to avoid warnings.
+
+2003-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-i386.c (elf_i386_object_p): Delete.
+       (elf_backend_object_p): Don't define.
+       * elf32-s390.c (elf_s390_object_p): No need to alloc tdata here.
+       * elf32-sh.c (sh_elf_object_p): Likewise.
+       * elf32-sparc.c (elf32_sparc_object_p): Likewise.
+       * elf64-alpha.c (elf64_alpha_object_p): Likewise.
+       * elf64-s390.c (elf_s390_object_p): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_elf_object_p): Likewise.
+
+2003-12-03  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * archures.c (bfd_mach_m32r2): Add new machine type.
+       * bfd-in2.h: Regenerate.
+       * cpu-m32r.c : Add new machine type.
+       * elf32-m32r.c (m32r_elf_object_p, m32r_elf_final_write_processing,
+        m32r_elf_merge_private_bfd_data): Add support for new machine
+       type.
+
+2003-12-03  Dave Airlie  <airlied@linux.ie>
+
+       * config.bfd: Add vax-linux-gnu target.
+       * configure.in: Likewise.
+       * configure: Regenerate.
+
+2003-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * ecoff.c (ecoff_link_add_archive_symbols): Update for renamed
+       bfd_link_hash_entry field "next" -> "und_next".
+       * linker.c (_bfd_link_hash_newfunc): Likewise.
+       (bfd_link_add_undef): Likewise.
+       (_bfd_generic_link_add_archive_symbols): Likewise.
+       (_bfd_generic_link_add_one_symbol): Likewise.
+       * xcofflink.c (xcoff_link_add_symbols): Likewise.
+
+2003-12-02  Nick Clifton  <nickc@redhat.com>
+
+       * configure.in (ALL_LINGUAS): Add ro.
+       * po/ro.po: New Romanian translation.
+
+2003-12-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2003-12-01  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>
+
+       * coffcode.h (coff_compute_section_file_positions): Set page_size
+       to 1 instead of 0 in the case file alignment value is zero.
+
+2003-12-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-rs6000.c: Remove ARGSUSED and VARARGS.
+       * coff64-rs6000.c: Likewise.
+       * coffcode.h: Likewise.
+       * elf32-vax.c: Likewise.
+       * hash.c: Likewise.
+       * hppabsd-core.c: Likewise.
+       * hpux-core.c: Likewise.
+       * ihex.c: Likewise.
+       * netbsd-core.c: Likewise.
+       * osf-core.c: Likewise.
+       * pdp11.c: Likewise.
+       * ptrace-core.c: Likewise.
+       * sco5-core.c: Likewise.
+       * section.c: Likewise.
+       * sunos.c: Likewise.
+       * trad-core.c: Likewise.
+
+2003-12-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (is_elf_hash_table): Take hash tab rather than info arg.
+       * elf.c (_bfd_elf_merge_sections): Adjust to suit.
+       (_bfd_elf_link_just_syms): Likewise.
+       (bfd_elf_get_needed_list): Likewise.
+       (bfd_elf_get_runpath_list): Likewise.
+       (_bfd_elf_link_hash_copy_indirect): Remove unneeded parens.
+       * elf32-hppa.c (elf32_hppa_setup_section_lists): Don't check hash tab
+       creator flavour.
+       (elf32_hppa_set_gp): Look up output sections rather than using htab.
+       * elf32-i960.c: Comment fix.  Formatting.
+       * elf32-m32r.c (m32r_elf_add_symbol_hook): Use is_elf_hash_table
+       rather than testing creator flavour.
+       * elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
+       * elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
+       * elflink.c (_bfd_elf_link_create_dynamic_sections): Adjust for
+       is_elf_hash_table change.  Remove redundant test.
+       (bfd_elf_record_link_assignment): Use is_elf_hash_table rather than
+       testing creator flavour.
+       (elf_link_record_local_dynamic_symbol): Adjust for is_elf_hash_table.
+       (_bfd_elf_fix_symbol_flags): Likewise.
+       (_bfd_elf_adjust_dynamic_symbol): Likewise.
+       * elflink.h (elf_link_add_object_symbols): Likewise.  Remove redundant
+       checks.  Use is_elf_hash_table rather than testing creator flavour.
+       Use hash_table throughout in place of info->hash.
+       (elf_add_dynamic_entry): Adjust for is_elf_hash_table change.
+       (NAME(bfd_elf,size_dynamic_sections)): Likewise.  Remove redundant
+       check.
+       (elf_bfd_final_link): Adjust for is_elf_hash_table change.
+       (elf_link_check_versioned_symbol): Use is_elf_hash_table rather than
+       testing creator flavour.
+       (elf_gc_sections): Add is_elf_hash_table check.
+       (elf_gc_common_finalize_got_offsets): Likewise.
+       (elf_bfd_discard_info): Adjust for is_elf_hash_table change.  Remove
+       redundant check.
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Use is_elf_hash_table
+       rather than testing creator flavour.
+
+2003-11-28  Christian Groessler  <chris@groessler.org>
+
+       * cpu-z8k.c: Convert to ISO C90.
+       * coff-z8k.c: Likewise.
+
+2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):
+       Add link info argument.
+       * elf32-i370.c (elf_backend_modify_segment_map): Likewise.
+       * elf32-ppc.c (ppc_elf_modify_segment_map): Likewise.
+       * elf32-xtensa.c (elf_xtensa_modify_segment_map): Likewise.
+       * elf64-hppa.c (elf64_hppa_modify_segment_map): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
+       * elfxx-mips.h (_bfd_mips_elf_modify_segment_map): Likewise.
+       * elf.c (assign_file_positions_except_relocs,
+       assign_file_positions_for_segments): Likewise.  Adjust calls.
+
+2003-11-27  Mark Kettenis  <kettenis@gnu.org>
+
+       * elf.c (elfcore_grok_netbsd_procinfo): Make a pseudosection out
+       of the note.
+
+2003-11-26  Daniel Jacobowitz  <drow@mvista.com>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * elfxx-mips.c (mips_elf_set_global_got_offset): Don't set no_fn_stub.
+       (mips_elf_set_no_stub): New function.
+       (mips_elf_multi_got): Call it.
+       (_bfd_mips_elf_finish_dynamic_symbol): If a relocation is needed for
+       a secondary GOT entry, create an R_MIPS_32 or R_MIPS_64 relocation and
+       use mips_elf_create_dynamic_relocation to deal with any compatibility
+       issues.  Store the adjusted addend in the GOT slot.
+
 2003-11-25  Mattias EngdegĂ„rd  <mattias@virtutech.se>
 
        * stabs.c (_bfd_link_section_stabs): Skip N_EXCL stabs when
 
 2003-05-04  H.J. Lu <hjl@gnu.org>
 
-       * elflink.h (elf_merge_symbol): Correctly handle weak definiton.
+       * elflink.h (elf_merge_symbol): Correctly handle weak definition.
 
 2003-05-04  H.J. Lu <hjl@gnu.org>
 
        * config.bfd: Added DLX configuraton.
        * Makefile.am: Added DLX configuraton.
        * configure.in: Added DLX configuraton.
-       * archures.c: Add DLX architecure.
+       * archures.c: Add DLX architecture.
        * reloc.c: Add DLX relocs.
        * targets.c: Added DLX target vector.
        * configure: Regenerate.
This page took 0.028938 seconds and 4 git commands to generate.