Support for Toshiba MeP and for complex relocations.
[external/binutils.git] / bfd / ChangeLog
index 3f41881..032ae91 100644 (file)
@@ -1,3 +1,374 @@
+2007-02-05  Dave Brolley  <brolley@redhat.com>
+
+       * elflink.c (evaluate_complex_relocation_symbols): Check for
+       STT_SRELC for global symbols.
+       (perform_complex_relocations): Renamed to
+       perform_complex_relocation and now examines only one relocation.
+       (elf_link_input_bfd): Don't call perform_complex_relocations.
+       * elf-bfd.h (bfd_elf_perform_complex_relocation_: New prototype.: 
+       * elf32-mep.c (mep_elf_howto_table): Add R_RELC.
+       (OD,OS,OU): #undefs corrected to N, S and U repectively.
+       (mep_reloc_type_lookup): Handle BFD_RELOC_RELC.
+       (complex_reloc_installation_howto): Removed.
+       (mep_info_to_howto_rela): Remove special case for r_type==0xff.
+       (mep_elf_relocate_section): Call bfd_elf_perform_complex_relocation.
+
+2007-02-05  Dave Brolley  <brolley@redhat.com>
+
+       * Contribute the following changes:
+       2006-12-19  Dave Brolley  <brolley@redhat.com>
+
+       * elf32-mep.c: Fix problems with DEBUG printfs.
+       * elflink.h (elf_link_input_bfd): Always setup finfo->internal_syms.
+
+       2006-10-17  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-mep.c (mep_elf_print_private_bfd_data): Remove redundant
+       check against 0.
+
+       2006-09-25  Dave Brolley  <brolley@redhat.com>
+
+       * elf32-mep.c (mep_elf_print_private_bfd_data): Check that
+       (long)partial_flags is non-negative before using it as an
+       array index.
+
+       2004-06-24  Dave Brolley  <brolley@redhat.com>
+
+       * elf32-mep.c: Regenerated by MeP-Integrator.
+
+       2005-04-22  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elf32-mep.c (mep_elf_merge_private_bfd_data): Allow two objects
+       to be linked together if one of them uses the EF_MEP_LIBRARY flag.
+       Give priority to flag sets in which EF_MEP_LIBRARY is not set.
+
+       2005-04-05  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elf32-mep.c (config_names): Reduce divergence from MeP-Integrator
+       output.
+
+       2004-08-03  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Fix overflow check for
+       R_MEP_PCABS24A2.
+
+       2004-06-24  Dave Brolley  <brolley@redhat.com>
+
+       * archures.c (bfd_mach_mep_h1): #define as 0x6831.
+       * bfd-in2.h: Regenerated.
+
+       2004-06-21  Dave Brolley  <brolley@redhat.com>
+
+       * elf32-mep.c (mep_elf_copy_private_bfd_data): Remove assertion about
+       flags being identical.
+       (mep_elf_merge_private_bfd_data): Handle existence of multiple CGEN
+       MACHs.
+       (mep_elf_print_private_bfd_data): Ditto.
+       (config_names): Give the machine at index 0 the name "basic".
+       (core_names): New table.
+       (elf32_mep_machine): New function.
+       (mep_elf_object_p): Call bfd_default_set_arch_mach.
+       * cpu-mep.c (bfd_h1_arch): Define it and link it into the chain.
+       * archures.c (bfd_mach_mep_h1): Define it.
+       * bfd-in2.h: Regenerated.
+
+       2003-07-19  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-mep.c: Convert to ISO C.
+
+       2002-04-09  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Allow impossible
+       relocations to undefined weak functions.
+
+       2002-02-08  Frank Ch. Eigler  <fche@redhat.com>
+
+        * cpu-mep.c (mep_compatible): Remove: only one bfd_mach used now.
+        * elf32-mep.c (elf32_mep_machine): Ditto.
+
+       2001-12-12  Ben Elliston  <bje@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Do not adjust the pc
+       prior to applying a pc-relative relocation.
+
+       2001-10-02  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf32-mep.c: Add missing prototypes.
+
+       2001-10-01  Frank Ch. Eigler  <fche@redhat.com>
+
+       * elf32-mep.c (mep_elf_merge_private_bfd_data): Enforce endianness
+       compatibility.
+
+       2001-09-28  Richard Henderson  <rth@redhat.com>
+
+       * elf32-mep.c (mep_elf_section_flags): New.
+       (mep_elf_fake_sections): New.
+       (elf_backend_section_flags): New.
+       (elf_backend_fake_sections): New.
+
+       2001-09-27  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf32-mep.c: Add missing function prototypes.
+       Fix compile time warnings.  Improve formatting.
+       * mep_relocs.pl: Improve formatting in generated code.
+
+       2001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * cpu-mep.c: Add missing function prototype.
+
+       2001-07-25  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Adjust calculation of PC
+       to be endian-sensitive.
+
+       2001-07-17  Richard Henderson  <rth@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate) [R_MEP_HI16S]: Correctly
+       compensate for high bit set in R_MEP_LOW16.
+
+       2001-07-12  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Don't do overflow
+       checking on VT relocs.
+       (mep_elf_merge_private_bfd_data): Return true if we chose not to
+       merge the data.
+       
+       2001-07-09  DJ Delorie  <dj@redhat.com>
+
+       * cpu-mep.c (mep_compatible): New, base compatibility on
+       conflicting configurations.
+       (bfd_mep_arch): Use a macro and wrap with comments for the config
+       tool.
+       * elf32-mep.c (elf32_mep_machine): Take bfd_mach directly from
+       flags.
+       (mep_elf_merge_private_bfd_data): Merge configurations sanely.
+       (config_names): New.
+       (mep_elf_print_private_bfd_data): Print config name if possible.
+
+       2001-06-25  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_reloc_type_lookup): Add vtable special cases,
+       regenerate others.
+       * reloc.c: Regenerate with new elf/mep.h relocs.
+       * libbfd.h: Likewise.
+       * bfd-in2.h: Likewise.
+       
+       2001-06-25  Ben Elliston  <bje@redhat.com>
+
+       * elf32-mep.c (mep_reloc): Mark unused parameters as such.
+       (mep_final_link_relocate): Remove unused local variables.
+
+       2001-06-06  DJ Delorie  <dj@redhat.com>
+
+       * config.bfd (mep-*-elf): Add bfd_elf32_mep_little_vec.
+       * configure.in: Ditto.
+       * configure: Ditto.
+       * mep-relocs.pl: Support both endians.
+       * elf32-mep.c: Regenerate; add little endian targets.
+
+       2001-05-31  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_elf_relocate_section): Fix error message.
+
+       2001-05-21  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate): Fix pcrel logic.
+
+       2001-05-10  DJ Delorie  <dj@redhat.com>
+
+       * mep-relocs.pl: Detect no-overflow relocs better.
+       * elf32-mep.c: Regenerate.  HI16U, HI16S have correct shifts and
+       those and LOW16 are no-overflow now.
+
+       2001-05-03  DJ Delorie  <dj@redhat.com>
+
+       * mep-relocs.pl: New, generates reloc-handling code for
+       elf32-mep.c.
+       * elf32-mep.c: Regenerate.
+
+       2001-05-02  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c (mep_elf_howto_table): Fix size fields.
+       (mep_lookup_global, mep_tpoff_base, mep_sdaoff_base): New,
+       support %tpoff() and %sdaoff() relocs.
+       (mep_final_link_reloc): Add support for MeP relocs.
+       (mep_elf_relocate_section): Support %tpoff() and %sdaoff().
+
+       2001-05-01  DJ Delorie  <dj@redhat.com>
+
+       * elf32-mep.c: Use RELA only.
+       (mep_elf_howto_table): Add MeP-specific relocs.
+       (mep_reloc_type_lookup): Map relocs.
+       * reloc.c: Add MeP-specific relocs.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+       2001-04-03  Ben Elliston  <bje@redhat.com>
+
+       * Makefile.am (ALL_MACHINES): Add cpu-mep.lo.
+       (ALL_MACHINES_CFILES): Add cpu-mep.c.
+       (BFD32_BACKENDS): Add elf32-mep.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-mep.c.
+       (cpu-mep.lo): New target.
+       * Makefile.in: Regenerate.
+       * config.bfd: Handle mep-*-elf.
+       * archures.c (bfd_architecture): Add bfd_{arch,mach}_mep.
+       (bfd_archures_list): Add bfd_mep_arch.
+       * configure.in: Handle bfd_elf32_mep_vec.
+       * configure: Regenerate.
+       * targets.c (bfd_elf32_mep_vec): Declare.
+       (bfd_target_vector): Add bfd_elf32_mep_vec.
+       * elf.c (prep_headers): Set e_machine to EM_CYGNUS_MEP.
+       * cpu-mep.c: New file.
+       * elf32-mep.c: Likewise.
+       * bfd-in2.h: Regenerate.
+       * po/POTFILES.in: Likewise.
+       
+2007-02-05  Dave Brolley  <brolley@redhat.com>
+
+       * Contribute the following changes:
+       2004-07-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elflink.c (perform_complex_relocation): Detect relocations against
+       undefined symbols.
+
+       2002-04-02  DJ Delorie  <dj@redhat.com>
+
+       * elflink.h (resolve_symbol): Handle weak symbols.
+
+       2002-03-07  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h (perform_complex_relocations): Minor debug message
+       touchup.
+
+       2002-01-23  Graydon Hoare  <graydon@redhat.com>
+
+       * bfd-in2.h: Add signed RELC (SRELC) symbols.
+       * elf.c (swap_out_syms): Likewise.
+       * elfcode.h (elf_slurp_symbol_table): Likewise.
+       (elf_symbol_flags): Likewise.
+       * syms.c: Likewise.
+       * elflink.h (eval_symbol): Introduce signed RELC evaluation.
+       (evaluate_complex_relocation_symbols): Likewise.
+       (perform_complex_relocations): Remove sign-extension logic,
+       which was broken anyways.
+
+       2002-01-15  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h (decode_complex_addend): Add oplen, signed_p, trunc_p
+       params.
+       (perform_complex_relocations): Call decode with new args,
+       Sign extend leftmost signed fields, delegate overflow check to
+       bfd_check_overflow in reloc.c, enhance overflow error messages.
+
+       2002-01-08  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h (resolve_symbol): Fix symbol -> section relationship.
+       (resolve_symbol): Remove unused parameter.
+       (eval_symbol): Remove unused arg from resolve_symbol call.
+
+       2002-01-01  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h (perform_complex_relocations): Add overflow
+       checking for RELC fragments.
+
+       2001-12-15  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elflink.h (evaluate_complex_relocation_symbols): Formatting
+       tidy ups.  Process all symbols, even if an error is
+       encountered.
+
+       2001-12-10  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h (evaluate_complex_relocation_symbols): Resolve
+       global RELC symbols using separate logic from local symbols.
+
+       2001-12-10  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       Various formatting tidy ups and compile time warning removals,
+       plus:
+       
+       * elflink.h (eval_symbol): Set bfd_error for failure returns.
+       (evaluate_complex_relocation_symbols): Only evaluate local
+       symbols.
+
+       2001-11-24  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h.c (resolve_symbol): Skip non-local syms in 
+       local lookup loop; get section offset from section 
+       symbol occurs in (rather than reloc section); handle 
+       common symbols.
+
+       2001-11-24  Graydon Hoare  <graydon@redhat.com>
+
+       * elflink.h.c (resolve_symbol): Use
+       bfd_elf_string_from_elf_section to look up local symbols in
+       current bfd.
+       (eval_symbol): Add input_bfd parameter for resolve_symbol's
+       use.
+       (evaluate_complex_relocation_symbols): Pass parameter.
+       (resolve_section) Fix silly typo.
+
+       2001-10-16  Jeff Holcomb  <jeffh@redhat.com>
+
+       * elflink.h (eval_symbol): Buffer size needs to be an integer for
+       Solaris cc.
+
+       2001-11-15  graydon hoare  <graydon@redhat.com>
+
+       * elf32-mep.c (mep_info_to_howto_rela): Add complex reloc
+       howto.
+       * elflink.h (resolve_section): Add support for pseudo-sections
+       in complex symbols.
+       (evaluate_complex_relocation_symbols): Permit evaluating RELC
+       symbols on non-RELC relocs. They are distinct issues.
+
+       2001-10-15  graydon hoare  <graydon@redhat.com>
+
+       * reloc.c (bfd_reloc_code_type): Define BFD_RELOC_RELC,
+       in the _correct_ place.
+
+       2001-10-11  graydon hoare  <graydon@redhat.com>
+
+       * elflink.h (eval_symbol): Fix strtol calls with undefined
+       behavior.
+
+       2001-10-03  graydon hoare  <graydon@redhat.com>
+
+       * elflink.h (set_symbol_value): New function for relc.
+       (resolve_symbol): Likewise.
+       (resolve_section): Likewise.
+       (undefined_reference): Likewise.
+       (eval_symbol): Likewise.
+       (evaluate_complex_relocation_symbols): Likewise.
+       (put_value): Likewise.
+       (get_value): Likewise.
+       (decode_complex_addend): Likewise.
+       (perform_complex_relocations): Likewise.
+       (elf_link_input_bfd): Insert hook into
+       evaluate_complex_relocation_symbols.
+       (elf_link_input_bfd): Insert hook into
+       perform_complex_relocations.
+
+       * bfd-in2.h: Define BFD_RELOC_RELC, BSF_RELC.
+
+       * elf.c (swap_out_syms): Add BSF_RELC / STT_RELC support.
+
+       * elfcode.h (elf_slurp_symbol_table): Likewise.
+       (elf_symbol_flags): Likewise.
+
+       * libbfd.h: Add "BFD_RELOC_RELC" to bfd_reloc_code_real_names
+       table.
+
+       2001-06-20  Frank Ch. Eigler  <fche@redhat.com>
+
+       * syms.c (BSF_RELC): New symbol flag.
+       * elf.c (swap_out_syms): Map BSF_RELC -> STT_RELC.
+       * elfcode.h (elf_slurp_symbol_table): Map STT_RELC -> BSF_RELC.
+       (elf_symbol_flags): Display BSF_RELC as "relc".
+       * bfd-in2.h: Regenerated.
+
 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
        
        * elf32-xtensa.c (elf_xtensa_make_sym_local): Delete.