* section.c (STD_SECTION): Account for recently added gc_mark
[binutils-gdb.git] / bfd / ChangeLog
index efb6c42b9750176d86c96b10a629eb596a22a3e1..8a6033df1e65a65c145139f4068cf3c3841d03c6 100644 (file)
@@ -1,3 +1,296 @@
+Tue Jun 30 09:55:03 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * section.c (STD_SECTION): Account for recently added gc_mark
+       field in struct asection.
+
+       * elf-m10300.c (bfd_mn10300_elf_merge_private_bfd_data): New function.
+       (bfd_elf32_bfd_merge_private_bfd_data): Define.
+
+Thu Jun 25 18:31:41 1998  Richard Henderson  <rth@cygnus.com>
+
+       ELF Section-level Garbage Collection:
+       * bfd.c (bfd_gc_sections): New.
+       * aout-adobe.c: Hook to default implementation.
+       * aout-target.h, aout-tic30.c, binary.c, bout.c: Likewise.
+       * coff-alpha.c, coff-mips.c, coff-rs6000.c, coffcode.h: Likewise.
+       * evax-alpha.c, i386msdos.c, i386os9k.c, ieee.c: Likewise.
+       * ihex.c, nlm-target.h, oasys.c, ppcboot.c, srec.c: Likewise.
+       * tekhex.c, versados.c: Likewise.
+       * libbfd-in.h (_bfd_nolink_bfd_gc_sections): New.
+       * targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_gc_sections.
+
+       * reloc.c (BFD_RELOC_VTABLE_INHERIT, BFD_RELOC_VTABLE_ENTRY): New.
+       (bfd_generic_gc_sections): New.
+       * section.c (SEC_KEEP): New.
+       (asection): Add gc_mark member.
+
+       * elfcode.h (elf_gc*): New name remappings.
+       * elflink.h (elf_link_input_bfd): Don't set contents on stabs
+       sections to be excluded.
+       (elf_gc_mark, elf_gc_sweep, elf_gc_sweep_symbol): New.
+       (elf_gc_propogate_vtable_entries_used): New.
+       (elf_gc_smash_unused_vtentry_relocs): New.
+       (elf_gc_sections, elf_gc_record_vtinherit, elf_gc_record_vtentry): New.
+       (elf_gc_common_finalize_got_offsets): New.
+       (elf_gc_allocate_got_offsets, elf_gc_common_final_link): New.
+       * elfxx-target.h: Add and default gc hooks.
+
+       * elf-bfd.h (struct elf_link_hash_entry): Swap got_offset/plt_offset
+       for unions. 
+       (struct elf_obj_tdata): Likewise for local_got_offsets.
+       * elf.c, elf-i386.c, elf32-m68k.c, elf32-mips.c: Update all uses.
+       * elf32-ppc.c, elf32-sparc.c, elf64-alpha.c: Likewise.
+       * elf64-sparc.c, elflink.h: Likewise.
+
+       * elf-bfd.h (struct elf_link_hash_entry): Add vtable members.
+       (ELF_LINK_HASH_MARK): Define.
+       (struct elf_backend_data): Add GC hooks.
+       * elf.c (_bfd_elf_link_hash_newfunc): Zero vtable members.
+
+       * elf-m10300.c (mn10300_elf_check_relocs): New.
+       (mn10300_elf_gc_mark_hook): New.
+       (R_MN10300_GNU_VTINHERIT, R_MN10300_GNU_VTENTRY): New.
+       (elf_mn10300_howto, mn10300_reloc_map): Handle them.
+       (mn10300_elf_final_link_relocate): Likewise.
+       (mn10300_elf_relocate_section): Likewise.
+       (elf_backend_can_gc_sections): Define.
+       * elf32-mips.c (R_MIPS_GNU_VTINHERIT, R_MIPS_GNU_VTENTRY): New.
+       (elf_mips_gnu_vtinherit_howto, elf_mips_gnu_vtentry_howto): New.
+       (bfd_elf32_bfd_reloc_type_lookup): Handle them.
+       (mips_info_to_howto_rel): Likewise.
+       (mips_elf_relocate_section): Likewise.
+       (mips_elf_check_relocs): Likewise.
+       (mips_elf_gc_mark_hook, mips_elf_gc_sweep_hook): New.
+       (elf_backend_can_gc_sections): Define.
+       * elf32-ppc.c (R_PPC_GNU_VTINHERIT, R_PPC_GNU_VTENTRY): New.
+       (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.
+       Handle new vtable relocs.
+       (ppc_elf_adjust_dynamic_symbol): Recognize unused .plt entries.
+       (ppc_elf_gc_mark_hook, ppc_elf_gc_sweep_hook): New.
+       (elf_backend_can_gc_sections): Define.
+
+Fri Jun 26 10:48:23 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * archures.c (bfd_mach_mn10300): Define.
+       * elf-m10300.c: Include elf/mn10300.h
+       (elf_mn10300_mach): New function.
+       (_bfd_mn10300_elf_final_write_processing): Likewise.
+       (_bfd_mn10300_elf_object_p): Likewise.
+       (elf_backendfinal_write_processing): Define.
+       (elf_backend_object_p): Likewise.
+start-sanitize-am33
+       * archures.c (bfd_mach_am33): Define.
+       * cpu-m10300.c (bfd_am33_arch): New arch info structure.  Link it
+       into the NEXT field of bfd_mn10300_arch.
+end-sanitize-am33
+
+Thu Jun 25 18:31:08 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-v850.c (v850_elf_perform_relocation): Fix HI16_S
+       relocation. 
+
+Wed Jun 24 17:17:57 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_bfd_final_link): Loop over input_bfds using the
+       link_next field, not the next field.
+
+Sun Jun 21 19:38:39 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf.c (map_sections_to_segments): Check the section address
+       against the phdr size both with and without a modulo of
+       maxpagesize.
+
+Fri Jun 19 17:08:18 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf32-mips.c (mips_elf_size_dynamic_sections): Only strip a
+       linker created empty input section if the output section has the
+       same name.
+
+       * elflink.h (elf_link_output_extsym): Print an error message if
+       _bfd_elf_section_from_bfd_section fails.
+
+       * elf.c (_bfd_elf_section_from_bfd_section): Call bfd_set_error on
+       failure.
+
+Tue Jun 16 11:55:55 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf.c (copy_private_bfd_data): Improve handling of Solaris
+       native linker output.  Avoid putting an empty section in more than
+       one segment.
+
+Fri Jun 12 13:30:17 1998  Tom Tromey  <tromey@cygnus.com>
+
+       * po/Make-in (all-yes): If maintainer mode, depend on .pot file.
+       ($(PACKAGE).pot): Unconditionally depend on POTFILES.
+
+Fri Jun 12 13:34:02 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+       * elf.c (swap_out_syms): New arg relocatable_p.
+       Don't add section VMA to symbols for relocatable output.
+       (_bfd_elf_compute_section_file_positions): Update call to
+       swap_out_syms.
+
+Mon Jun  8 15:20:57 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-v850.c (v850_elf_perform_relocation): Make comparisons
+       against 'addend' be signed rather than unsigned.
+
+Sat Jun  6 00:31:21 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-m32r.c: Add prototyps for static functions.
+
+       * coff-arm.c: Add prototypes for static functions. 
+
+Fri Jun  5 17:21:51 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf.c (elf_sort_sections): Sort by LMA first then VMA, since the
+       LMA is used to order sections in a segment.
+
+       * elf32-v850.c: Add prototypes for static functions.
+       Change type of addend parameter to bfd_vma in various functions.
+
+Fri Jun  5 18:09:58 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * aoutx.h (howto_table_ext): Change RELOC_BASE13 to use
+       complain_overflow_signed instead of complain_overflow_bitfield.
+
+Fri Jun  5 15:11:11 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * elf.c (elf_map_symbols): Don't add section VMA to symbol value
+       when comparing against 0.
+
+Wed Jun  3 17:52:49 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * Makefile.am (config.status): New target.
+       * Makefile.in: Rebuild.
+
+start-sanitize-sky
+Wed Jun  3 11:39:57 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+       * elf32-mips.c (_bfd_mips_elf_fake_sections): Update to use
+       Elf32_Dvp_External_Overlay instead of 64 bit version.
+
+end-sanitize-sky
+Wed Jun  3 12:18:24 1998  Stan Cox  <scox@equinox.cygnus.com>
+
+       * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Give an
+       error if previous object endianness doesn't match current object.
+
+Tue Jun  2 17:50:59 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-v850.c (v850_elf_print_private_bfd_data): Call
+       _bfd_elf_print_private)bfd_data ().
+
+Tue Jun  2 15:29:35 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_merge_symbol): Don't always set type_change_ok
+       and size_change_ok.
+       (elf_link_add_object_symbols): Set type_change_ok and
+       size_change_ok before calling elf_merge_symbol.
+
+       * elf32-mips.c (mips_elf_relocate_section): If we issue an
+       undefined symbol error, don't also issue an overflow error.
+
+Tue Jun  2 13:51:00 1998  Geoff Keating  <geoffk@ozemail.com.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): The target of an
+       R_PPC_LOCAL24PC relocation should be local; if not, print an error
+       message instead of crashing.
+
+Mon Jun  1 18:23:12 1998  Yuli Barcohen  <yuli.barcohen@telrad.co.il>
+
+       * archures.c (bfd_mach_cpu32): Define.
+       (bfd_default_scan): Add case for 68060.  Fix 68332 case to use
+       bfd_mach_cpu32.
+       * cpu-m68k.c (arch_info_struct): Add m68k:cpu32.
+       * ieee.c: Include <ctype.h>.
+       (ieee_object_p): Parse out process ID string to make it more
+       likely to be acceptable for bfd_scan_arch.
+       * bfd-in2.h: Rebuild.
+
+Mon Jun  1 11:12:02 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-m32r.c (m32r_elf_print_private_bfd_data): Also call
+       _bfd_elf_print_private_bfd_data() so that the program header will
+       be displayed.
+
+Mon Jun  1 12:14:28 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * peicode.h (coff_swap_sym_in): Check for C_SECTION rather than
+       0x68.  Reindent.  Add some comments.
+
+start-sanitize-sky
+Sun May 31 16:11:22 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+       * elf32-mips.c (_bfd_mips_elf_final_write_processing): Set sh_link
+       field of .DVP.ovlytab to .DVP.ovlystrtab's section index.
+       (_bfd_mips_elf_section_from_shdr): Recognize SHT_DVP_OVERLAY_TABLE
+       and SHT_DVP_OVERLAY.
+       (_bfd_mips_elf_fake_sections): Ditto.
+
+end-sanitize-sky
+Fri May 29 09:58:08 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * elf.c (copy_private_bfd_data): Adjust physical address of
+       segment in output BFD to contain LMAs of its sections.
+
+Tue May 26 19:37:47 1998  Stan Cox  <scox@equinox.cygnus.com>
+
+       * elf32-sparc.c (_bfd_sparc_elf_howto_table, sparc_reloc_map,
+       elf32_sparc_relocate_section): Added R_SPARC_32LE for little
+       endian data 32 bit relocations.
+       (elf32_sparc_merge_private_bfd_data): Check if linking little
+       endian objects with big endian objects.
+       (elf32_sparc_object_p): Set bfd_mach_sparc_sparclite_le.
+       (elf32_sparc_final_write_processing): Set EF_SPARC_LEDATA in e_flags.
+       * libbfd.h (bfd_reloc_code_real_names): Added BFD_RELOC_SPARC_32LE.
+       * reloc.c: Same.
+       * cpu-sparc.c (arch_info_struct): Added sparc:sparclite_le
+       * archures.c (bfd_mach_sparc_sparclite_le): New.
+       * bfd-in2.h (BFD_RELOC_SPARC_32LE, bfd_mach_sparc_sparclite_le): New.
+
+Thu May 21 16:59:28 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * peicode.h (add_data_entry): Fix precedence of operators in if ()
+       statement. 
+
+Tue May 19 18:41:19 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+       * bfd-in.h: Move over patch to bfd-in2.h.
+
+       * reloc.c (bfd_check_overflow): Add casts before shifts which may
+       not fit in 32 bits.
+       (_bfd_relocate_contents): Likewise.
+
+Mon May 18 14:44:15 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * peicode.h (add_data_entry): If the section has no private data
+       then do not create a Data Dictionary entry for it.
+
+Mon May 18 00:09:28 1998  Richard Henderson  <rth@cygnus.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_section): Set again on changes.
+       (elf64_alpha_can_merge_gots, elf64_alpha_merge_gots,
+       elf64_alpha_size_got_sections): Rewrite, handling multiple got
+       subsections during relaxation more correctly.
+
+Thu May 14 14:22:58 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * bfd-in2.h: Add new prototype: bfd_coff_set_symbol_class ().
+       Add extra argument to bfd_arm_process_before_allocation ().
+       * bfd-in.h: Reflect changes made in bfd-in2.h.
+       * coffgen.c (bfd_coff_set_symbol_class): New function.  Set the
+       coff class of a BFD symbol.
+       * coff-arm.c: Add support for interworking between Thumb code and
+       non-interworking aware ARM code.
+
+Sun May 10 22:33:59 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * po/Make-in (install-info): New target.
+
 Thu May  7 17:40:56 1998  Ian Lance Taylor  <ian@cygnus.com>
 
        * filemode.c: Remove; not used.
@@ -466,8 +759,10 @@ Fri Mar 27 16:06:02 1998  Ian Lance Taylor  <ian@cygnus.com>
        * elf-bfd.h (elf_linker_section_t): Make alignment unsigned.
        (struct elf_obj_tdata): Make cverdefs and cverrefs unsigned.
        * elf.c (assign_file_positions_for_segments): Always set adjust.
+start-sanitize-d30v
        * elf32-d30v.c (bfd_elf_d30v_reloc): Initialize tmp_addr.  Fully
        parenthesize expression.
+end-sanitize-d30v
        * elf32-m32r.c (m32r_elf_relocate_section): Always initialize h.
        (m32r_elf_object_p): Return a value.
        (m32r_elf_print_private_bfd_data): Change fprintf format string.