Assorted code cleanup and fixes for hppa. Re-enable elf32-hppa as
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index dfea4b851af51908fe7831e62a27bc2fdbf6fe43..e501a1510fca366ec9b3a14c4c8eb45cbe4b3823 100644 (file)
@@ -1,3 +1,295 @@
+2000-05-02  Alan Modra  <alan@linuxcare.com.au>
+
+       * config.bfd: Re-enable elf32-hppa.  It now compiles, even if it
+       doesn't work very well.
+
+       * elf-hppa.h (elf_hppa_internal_shdr): Define.
+       (elf_hppa_fake_sections): hdr is elf_hppa_internal_shdr.
+       Set hdr->s_type to 1 if ARCH_SIZE == 32.
+       (_bfd_elf_hppa_gen_reloc_type): Add prototype.
+       (elf_hppa_info_to_howto): Likewise.
+       (elf_hppa_info_to_howto_rel): Likewise.
+       (elf_hppa_reloc_type_lookup): Likewise.
+       (elf_hppa_is_local_label_name): Likewise.
+       (elf_hppa_fake_sections): Likewise.
+       (elf_hppa_final_write_processing): Likewise.
+       (elf_hppa_howto_table): Fully initialise all entries.
+       (_bfd_elf_hppa_gen_reloc_type): Add ATTRIBUTE_UNUSED to args.
+       (elf_hppa_info_to_howto): Likewise.
+       (elf_hppa_info_to_howto_rel): Likewise.
+       (elf_hppa_reloc_type_lookup): Likewise.
+       (elf_hppa_final_write_processing, elf_hppa_add_symbol_hook,
+       elf_hppa_unmark_useless_dynamic_symbols,
+       elf_hppa_remark_useless_dynamic_symbols,
+       elf_hppa_record_segment_addrs, elf_hppa_final_link,
+       elf_hppa_relocate_section, elf_hppa_final_link_relocate,
+       elf_hppa_relocate_insn): Compile only if ARCH_SIZE == 64 until
+       elf32-hppa.c mess is cleaned up.
+       (elf_hppa_final_link_relocate): Make insn and r_type unsigned
+       int.  Delete r_field.  In case R_PARISC_PCREL21L, don't set
+       r_field then call hppa_field_adjust inline func with variable
+       r_field arg, instead call hppa_field_adjust with fixed arg.
+       In case R_PARISC_PCREL22F, don't set r_field.
+       (elf_hppa_relocate_insn): Change args and return type to unsigned
+       int.  Call re_assemble_* funcs to do the work.
+
+       * elf32-hppa.c (hppa_elf_relocate_insn): Don't assume 32 bit when
+       sign extending.
+
+       * libhppa.h (HPPA_R_CONSTANT): Don't assume 32 bit when sign
+       extending.
+       (sign_extend): Mask first before sign extending.
+       (low_sign_extend): Rewrite without condition expression.
+       (ones, dis_assemble_3, dis_assemble_12, dis_assemble_16,
+       dis_assemble_17, dis_assemble_21, dis_assemble_22): Delete.
+       (assemble_3, assemble_6, assemble_12, assemble_16, assemble_16a,
+       assemble_17, assemble_21, sign_unext, low_sign_unext): Return
+       result as function return value rather than through pointer arg.
+       Accept unsigned int args, and return unsigned int.
+       (re_assemble_3): New.  Combines function of dis_assemble_3 with
+       re-assembly of opcode and immediate.
+       (re_assemble_12): Likewise.
+       (re_assemble_16): Likewise.
+       (re_assemble_17): Likewise.
+       (re_assemble_21): Likewise.
+       (re_assemble_22): Likewise.
+       (hppa_field_adjust): Rewrite and document, paying attention to
+       size of types and signed/unsigned issues.
+       (get_opcode): Shift before masking.
+       (FDLW): Rename to FLDW.
+       (bfd_hppa_insn2fmt): Change arg to unsigned int.  Delete fmt.
+       (hppa_rebuild_insn): Change args and return value to unsigned
+       int.  Make use of re_assemble_*.  Correct case 11.
+       
+       * dep-in.sed: Handle ../opcodes/.
+       * Makefile.am (SOURCE_HFILES): Add elf-hppa.h, elf32-hppa.h,
+       elf64-hppa.h, hppa_stubs.h, xcoff.h.
+       (BFD32_BACKENDS_CFILES): Restore elf32-hppa.c.
+       Remove elf64-hppa.lo, cpu-ia64.lo, elf64-ia64.lo, elfarm-oabi.lo,
+       elfarm-nabi.lo dependencies outside of auto-dependency area.
+       Regenerate dependencies.
+       * Makefile.in: Regenerate.
+
+       * configure.in (TRAD_HEADER): Test non-null before
+       AC_DEFINE_UNQUOTED.
+       * configure: Regenerate.
+
+       * reloc.c: Fix mis-spelling in comment.
+
+2000-05-01  Alan Modra  <alan@linuxcare.com.au>
+
+       * coff-sh.c (bfd_coff_small_swap_table): Fix Fri Apr 28 change.
+       * vms.c (vms_openr_next_archived_file): Return NULL.
+
+Fri Apr 28 21:34:44 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * coffcode.h Copy changes mistakenly done to libcoff.h in
+       4/24/2000 patch.        
+
+2000-04-29  Andreas Jaeger  <aj@suse.de>
+
+       * libbfd-in.h: Correctly check GCC version.
+       * bfd-in.h: Likewise.
+       * libhppa.h: Likewise.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+Fri Apr 28 14:58:37 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * Makefile.am (BFD64_BACKENDS, BFD64_BACKENDS_CFILES): Add
+       coffdu-rs6000.{lo,c}.
+       (coff-pmac.lo, coff-rs6000.lo, coff64-rs6000.lo): Add dependency
+       on xcoff.h
+       * Makefile.in: Regenerate.
+       * xcoff.h: New file.
+       * coff-pmac.c: Use xcoff.h instead of coff-rs6000.c.
+       * coff-rs6000.c: Move all declarations and defines that are
+       common to the xcoff backends into xcoff.h
+       * coff64-rs6000.c: Ditto,       
+
+Fri Apr 28 08:35:21 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * coff-mips.c (mips_ecoff_backend_data):  Add initialization of
+       _bfd_coff_force_symnames in strings and
+       _bfd_coff_debug_string_prefix_length to their default values.
+       * coff-sh.c: (bfd_coff_small_swap_table): Ditto.
+
+Fri Apr 28 08:05:12 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * coff-alpha.c (alpha_ecoff_backend_data): Add initialization of
+       _bfd_coff_force_symnames in strings and 
+       _bfd_coff_debug_string_prefix_length to their default values.
+
+2000-04-27  Alan Modra  <alan@linuxcare.com.au>
+
+       * elf32-m68k.c (elf_m68k_gc_sweep_hook):  Return if dynobj NULL.
+       Check local_got_refcounts before dereferencing. 
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Check splt != NULL
+       before deciding we don't need R_PPC_PLT32 relocation.
+       (ppc_elf_gc_sweep_hook): Check local_got_refcounts before
+       dereferencing.
+
+       * elflink.h (elf_gc_common_finalize_got_offsets): Fix comment.
+
+       * elf32-i386.c (elf_i386_check_relocs): Reference count .got and
+       .plt entries.
+       (elf_i386_gc_sweep_hook): Garbage collect .got and .plt entries.
+       (elf_i386_adjust_dynamic_symbol): Recognize unused .plt entries.
+       (elf_i386_relocate_section): Allow for .plt to go missing.
+       (elf_i386_finish_dynamic_symbol): Use same test to decide if we
+       can use a relative reloc for got as elf_i386_relocate_section.
+       (bfd_elf32_bfd_final_link): Define to use gc form of final link.
+
+Wed Apr 26 16:31:28 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config.bfd: Remove extraneous bfd_powerpc_64_arch.
+
+Mon Apr 24 15:20:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * Makefile.am (coff64-rs6000.lo): New rule.
+       * Makefile.in: Regenerate.
+       * coff-rs6000.c (xcoff_mkobject, xcoff_copy_private_bfd_data,
+       xcoff_is_local_label_name, xcoff_rtype2howto,
+       xcoff_reloc_type_lookup, xcoff_slurp_armap, xcoff_archive_p,
+       xcoff_read_ar_hdr, xcoff_openr_next_archived_file, xcoff_write_armap,
+       xcoff_write_archive_contents): No longer static, and prefix with _bfd_.
+       (NO_COFF_SYMBOLS): Define.
+       (xcoff64_swap_sym_in, xcoff64_swap_sym_out, xcoff64_swap_aux_in,
+       xcoff64_swap_aux_out): New functions; handle xcoff symbol tables
+       internally.
+       (MINUS_ONE): New macro.
+       (xcoff_howto_tabl, xcoff_reloc_type_lookup): Add 64 bit POS 
+       relocation.
+       (coff_SWAP_sym_in, coff_SWAP_sym_out, coff_SWAP_aux_in, 
+       coff_SWAP_aux_out): Map to the new functions.
+       * coff64-rs6000.c: New file.
+       * libcoff.h (bfd_coff_backend_data): Add new fields 
+       _bfd_coff_force_symnames_in_strings and 
+       _bfd_coff_debug_string_prefix_length.
+       (bfd_coff_force_symnames_in_strings, 
+       bfd_coff_debug_string_prefix_length): New macros for above fields.
+       * coffcode.h (coff_set_arch_mach_hook): Handle XCOFF64 magic.
+       Set machine to 620 for XCOFF64.  Use bfd_coff_swap_sym_in instead 
+       of using coff_swap_sym_in directly.
+       (FORCE_SYMNAMES_IN_STRINGS): New macro, defined for XCOFF64.
+       (coff_set_flags) Set magic for XCOFF64. 
+       (coff_compute_section_file_positions): Add symbol name length to
+       string section length if bfd_coff_debug_string_prefix_length is
+       true.
+       (coff_write_object_contents): Don't do reloc overflow for XCOFF64.
+       (coff_slurp_line_table): Use bfd_coff_swap_lineno_in instead of
+       using coff_swap_lineno_in directly.
+       (bfd_coff_backend_data): Add _bfd_coff_force_symnames_in_strings
+       and _bfd_coff_debug_string_prefix_length fields.
+       * coffgen.c (coff_fix_symbol_name, coff_write_symbols): Force 
+       symbol names into strings table when 
+       bfd_coff_force_symnames_in_strings is true.
+       * coffswap.h (MAX_SCNHDR_NRELOC, MAX_SCNHDR_NLNNO, GET_RELOC_VADDR,
+       SET_RELOC_VADDR): New macros.
+       (coff_swap_reloc_in, coff_swap_reloc_out): Use above macros.    
+       (coff_swap_aux_in, coff_swap_aux_out): Remove RS6000COFF_C
+       code.
+       (coff_swap_aouthdr_in, coff_swap_aouthdr_out): Handle XCOFF64
+       changes within RS6000COFF_C specific code.
+       (coff_swap_scnhdr_out): Use PUT_SCNHDR_NLNNO, PUT_SCNHDR_NRELOC, 
+       MAX_SCNHDR_NRELOC, and MAX_SCNHDR_NLNNO.
+       * reloc.c (bfd_perform_relocation, bfd_install_relocation):
+       Extend existing hack on target name.
+       * xcofflink.c (XCOFF_XVECP): Extend existing hack on
+       target name.
+       * coff-tic54x.c (ticof): Keep up to date with new fields
+       in bfd_coff_backend_data.
+       * config.bfd: Add bfd_powerpc_64_arch to targ_arch and define
+       targ_selvecs to include rs6000coff64_vec for rs6000.
+       * configure.in: Add rs6000coff64_vec case.
+       * cpu-powerpc.c: New bfd_arch_info_type.
+
+Mon Apr 24 02:17:31 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * config.bfd: Only disable elf32-hppa vectors, not all of the
+       BSD and OSF configuration support.  Provide (disabled) clauses
+       for PA64 support.
+       * configure.in: Add clause for PA64 support.
+       * configure: Rebuilt.
+
+       * targets.c (bfd_target_vector): Add bfd_elf64_hppa_vec.
+       (bfd_elf64_hppa_vec): Declare.
+
+       * Makefile.am (BFD64_BACKENDS): Add elf64-hppa.lo
+       (BFD64_BACKENDS_CFILES): Add elf64-hppa.c
+       (elf64-hppa.lo): Add dependencies.
+       * Makefile.in: Rebuilt.
+
+       * elf64-hppa.c, elf64-hppa.h: New files with PA64 support.
+
+Mon Apr 24 02:14:29 2000  Jason Eckhardt  <jle@cygnus.com>
+
+       * libhppa.h (dis_assemble_16): New function.
+       (pa_arch): Added pa20w element.
+
+Mon Apr 24 01:49:03 2000  Ulrich Drepper  <drepper@cygnus.com>
+
+       * elf-bfd.h: Add prototypes for bfd_elf32_write_relocs,
+       bfd_elf32_slurp_reloc_table, bfd_elf64_write_relocs, and
+       bfd_elf64_slurp_reloc_table.
+
+       * elfcode.h (elf_write_relocs, elf_slurp_reloc_table): New
+       definitions to get external names.
+       (elf_write_relocs): Renamed from write_relocs and make global.
+       (elf_slurp_reloc_table): Make global.
+       (_bfd_elf,size_info): Use elf_write_relocs instead of write_relocs.
+
+       * archive.c (hpux_uid_gid_encode): New function.
+       (bfd_ar_hdr_from_filesystem): Use it if HPUX_LARGE_AR_IDS is
+       defined and the ID is greater than 99999.
+       (bfd_generic_stat_arch_elt): If HPUX_LARGE_AR_IDS is defined decode
+       special uid/gid fields into 32 bit values.
+
+2000-04-21  Matthew Green  <mrg@cygnus.com>
+
+       * config.bfd: Add NetBSD/sparc64 support.
+
+Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
+                         David Mosberger  <davidm@hpl.hp.com>
+                         Timothy Wall <twall@cygnus.com>
+                         Jim Wilson  <wilson@cygnus.com>
+       
+       * Makefile.am (ALL_MACHINES): Add cpu-ia64.lo.
+       (ALL_MACHINES_CFILES): Add cpu-ia64.c.
+       (BFD64_BACKENDS): Add elf64-ia64.lo.
+       (BFD64_BACKENDS_CFILES): Add elf64-ia64.c.
+       (cpu-ia64.lo, elf64-ia64.lo): New rules.
+       * Makefile.in: Rebuild.
+       * archures.c (enum bfd_architecture): Add bfd_arch_ia64.
+       (bfd_ia64_arch): Declare.
+       (bfd_archures_list): Add bfd_ia64_arch.
+       * bfd-in2.h: Rebuild.
+       * config.bfd: (ia64*-*-linux-gnu*, ia64*-*-elf*): New targets.
+       * configure: Rebuild.
+       * configure.host: (ia64-*-linux*): New host.
+       * configure.in (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_big_vec,
+       bfd_efi_app_ia64_vec, bfd_efi_app_ia64_vec): New vectors.
+       * elf.c (prep_headers): Add bfd_arch_ia64.
+       * libbfd.h: Rebuild.
+       * reloc.c: Add IA-64 relocations.
+       * targets.c (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_big_vec):
+       Declare.
+       (bfd_target_vect): Add bfd_elf64_ia64_little_vec.
+       * cpu-ia64-opc.c, cpu-ia64.c, elf64-ia64.c: New files.
+       
+2000-04-21  Richard Henderson  <rth@cygnus.com>
+
+       * elf32-d30v.c (bfd_elf_d30v_reloc): Don't modify section
+       contents when performing a partial link.
+       (bfd_elf_d30v_reloc_21): Likewise.
+
+2000-04-20  H.J. Lu  <hjl@gnu.org>
+
+       * elf32-i386.c (elf_i386_relocate_section): Restrict 1998-12-10
+       patch to symbols defined by a shared object.
+       * elf32-ppc.c (ppc_elf_relocate_section): Similarly.
+
 2000-04-19  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
 
        K&R compiler fixes.
@@ -5348,7 +5640,7 @@ Thu Jun 25 18:31:41 1998  Richard Henderson  <rth@cygnus.com>
        (ppc_elf_howto_raw): Handle them.
        (ppc_elf_reloc_type_lookup): Likewise.
        (ppc_elf_relocate_section): Likewise.
-       (ppc_elf_check_relocs): Reference count .got and .plt entires.
+       (ppc_elf_check_relocs): Reference count .got and .plt entries.
        Handle new vtable relocs.
        (ppc_elf_adjust_dynamic_symbol): Recognize unused .plt entries.
        (ppc_elf_gc_mark_hook, ppc_elf_gc_sweep_hook): New.
This page took 0.027341 seconds and 4 git commands to generate.