1999-09-11 Donn Terry <donn@interix.com>
[binutils-gdb.git] / bfd / ChangeLog
index 6adc1a18d4f147339dd2c3672937bbe8cdd212a1..94d87cc89c8f5658cacfbf97875d20a243058bdf 100644 (file)
@@ -1,3 +1,296 @@
+1999-09-11  Ian Lance Taylor  <ian@zembu.com>
+
+       * coff-ppc.c (COFF_SECTION_ALIGNMENT_ENTRIES): Define.
+
+       * elfcode.h (write_relocs): Handle an absolute symbol in REL
+       relocs as we do for RELA relocs.
+
+1999-09-11  Donn Terry  <donn@interix.com>
+
+       * libpei.h: New file, broken out of peicode.h.
+       * peigen.c: New file, broken out of peicode.h.
+       * peicode.h: A bunch of code moved out to libpei.h and peigen.c.
+       * configure.in: Add peigen.lo to list of files required for each
+       PE target.
+       * Makefile.am: Rebuild dependencies.
+       (BFD32_BACKENDS): Add peigen.lo.
+       (BFD32_BACKENDS_CFILES): Add peigen.c.
+       (SOURCE_HFILES): Add libpei.h.
+       * configure, Makefile.in: Rebuild.
+
+       * peicode.h (coff_swap_scnhdr_in): Don't check for a special
+       section name of _BSS; check IMAGE_SCN_CNT_UNINITIALIZED_DATA
+       instead.  Don't clear the s_paddr field for an uninitialized data
+       section.
+
+       * coffcode.h (coff_mkobject_hook): Set timestamp field in
+       coff_data_type to f_timdat.
+       * peicode.h (pe_mkobject_hook): Likewise.
+
+       * peicode.h (coff_swap_filehdr_in): Check the NT executable magic
+       number if COFF_IMAGE_WITH_PE.
+
+       * coffcode.h (coff_mkobject_hook): If COFF_WITH_PE, set HAS_DEBUG
+       to the reverse of IMAGE_FILE_DEBUG_STRIPPED.
+       (coff_write_object_contents): Set IMAGE_FILE_DEBUG_STRIPPED if
+       there is no SEC_DEBUGGING section.
+       * peicode.h (pe_mkobject_hook): Set HAS_DEBUG to the reverse of
+       IMAGE_FILE_DEBUG_STRIPPED.
+
+       * pe-i386.c (COFF_LONG_FILENAMES): Define.
+       (COFF_SECTION_ALIGNMENT_ENTRIES): Define.
+       * pei-i386.c (COFF_LONG_FILENAMES): Define.
+       (COFF_SECTION_ALIGNMENT_ENTRIES): Define.
+
+       * coffswap.h (IMAGE_BASE): Don't define.
+       * pei-arm.c (IMAGE_BASE): Don't define.
+       * pei-i386.c (IMAGE_BASE): Don't define.
+       * pei-mcore.c (IMAGE_BASE): Don't define.
+       * pei-ppc.c (IMAGE_BASE): Don't define.
+
+       * cofflink.c (_bfd_coff_link_input_bfd): When writing out a
+       symbol, switch on the class when determining whether to modify the
+       value.  For PE, don't modify the value of a C_FCN symbol not named
+       .bf.
+
+       * libbfd-in.h (_bfd_abort): Declare.
+       (abort): Define.
+       * bfd.c (_bfd_abort): New function.
+       * libbfd.h: Rebuild.
+
+       * coffcode.h (coff_set_alignment_hook): Delete POWERPC_LE_PE
+       special handling.
+
+       * cofflink.c (_bfd_coff_link_input_bfd): If a symbol is stripped,
+       don't write out the associated line numbers.
+
+       * cofflink.c (_bfd_coff_write_global_sym): Handle section symbol
+       aux entries.
+
+       * cofflink.c (coff_link_add_symbols): Don't warn about symbol type
+       changes when the base type is unknown.
+
+       * coffgen.c (coff_print_symbol): Fix printing of aux record for
+       function symbols.
+
+       * syms.c (BSF_DEBUGGING_RELOC): Define.
+       * coffcode.h (coff_slurp_symbol_table): If PE, set BSF_DEBUGGING
+       for C_FCN/C_EFCN symbols, and set BSF_DEBUGGING_RELOC for such
+       symbols named .bf.
+       * coffgen.c (fixup_symbol_value): Relocate a symbol which has
+       BSF_DEBUGGING_RELOC set.
+       * bfd-in2.h: Rebuild.
+
+1999-09-10  Ian Lance Taylor  <ian@zembu.com>
+
+       * ecoff.c (bfd_debug_section): Update initialization for new
+       comdat_info field.
+       (_bfd_ecoff_styp_to_sec_flags): Add section parameter.
+       * libecoff.h (_bfd_ecoff_styp_to_sec_flags): Update declaration.
+
+1999-09-10  H.J. Lu  <hjl@gnu.org>
+
+       * coff-alpha.c (alpha_ecoff_backend_data): Initialize the new
+       _bfd_filnmlen field.
+       * coff-mips.c (mips_ecoff_backend_data): Likewise.
+
+Fri Sep 10 00:35:14 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Create .opd entries
+       for FPTR relocs involving local symbols.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Get the right
+       value for the stub address in a call through a stub.
+       Install the value for a local symbol directly into the DLT
+       instead of generating a reloc.  Correctly handle FPTR64 relocs.
+
+       * elf-hppa.h (elf_hppa_unmark_useless_dynamic_symbols): New function.
+       (elf_hppa_remark_useless_dynamic_symbols): Similarly.
+       (elf_hppa_final_link): Call them.
+
+1999-09-10  Ian Lance Taylor  <ian@zembu.com>
+
+       * elflink.h (elf_fix_symbol_flags): Move weakdef handling here...
+       (elf_adjust_dynamic_symbol): ...from here.
+
+Wed Sep  8 17:56:11 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_howto_table); There is no DIR64WR, DIR64DR
+       relocation, remove them.  SECREL64->LTOFF16WF.
+       (elf_hppa_final_link_relocate): Handle LTOFF* relocations.  Handle
+       DIR* relocations.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle PLTOFF* relocs.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle DPREL* and
+       GPREL* relocations.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_link_final_relocate): Fix typos.
+       Handle LTOFF_TP* relocs.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle PCREL* relocs.
+       Consistently deal with addends.  Handle DLTIND14F and DLTREL14F.
+       (elf_hppa_relocate_insn): Handle PCREL* relocs.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle LT_OFF_FPTR*,
+       DIR32, DIR64 and FPTR64 relocations.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link): Set the value of __gp to the        
+       address of the .PARISC.global section.
+       (elf_hppa_relocate_section): Lookup and pass the PA64 hash
+       table entry elf_hppa_final_link_relocate.  Do not give a warning
+       for a reloc against an external symbol if it has a PA64 hash
+       table entry.
+       (elf_hppa_final_link_relocate): Significantly rework.  Handle   
+       DLTIND relocations.  Compute the final value of the relocation
+       before passing the value of elf_hppa_relocate_insn.
+       (elf_hppa_relocate_insn): Revamp to handle just bit tiwiddling
+       relocation support.  Handle DLTIND relocation requests just like
+       DLTREL relocation requests.  Simplify branch handling.
+
+1999-09-08  Ulrich Drepper  <drepper@cygnus.com>
+
+       * elf-hppa.h (elf_hppa_relocate_section): Catch problems with
+       non-allocated section as done in i386 version.
+       (elf_hppa_final_link_relocate): Uncomment R_PARISC_14F in switch
+       statement since this is no know relocation.
+
+Tue Sep  7 17:25:12 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle DLTREL14F
+       relocs.
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle DLTREL14WR and
+       DLTREL14WD relocs.  
+       (elf_hppa_relocate_insn): Similarly.
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle DLTREL14R and
+       DLTREL21L relocs.  Pass the output bfd to elf_hppa_relocate_insn.
+       Pass the relocate type rather than the insn format to
+       elf_hppa_relocate_insn.
+       (elf_hppa_relocate_insn): Make switch dependent on relocation type
+       rather than the opcode.  Handle DLTREL21L and DLTREL14R relocs.
+
+1999-09-07  Ian Lance Taylor  <ian@zembu.com>
+
+       * coffcode.h (bfd_coff_backend_data): Add _bfd_filnmlen field.
+       (bfd_coff_filnmlen): Define.
+       (bfd_coff_std_swap_table): Initialize new field.
+       * coffgen.c (coff_fix_symbol_name): Use bfd_coff_filnmlen rather
+       than FILNMLEN.
+       (coff_write_symbols): Likewise.
+       (coff_get_normalized_symtab): Likewise.
+       * coff-sh.c (bfd_coff_small_swap_table): Initialize new field.
+       * libcoff.h: Rebuild.
+
+1999-09-06  Donn Terry  <donn@interix.com>
+
+       * coffcode.h (sort_by_secaddr): New static function if
+       COFF_IMAGE_WITH_PE.
+       (coff_compute_section_file_positions): If COFF_IMAGE_WITH_PE, sort
+       sections by VMA when assigning target_index values.  Always set
+       virt_size.
+
+       * libcoff-in.h (struct pei_section_tdata): Add pe_flags field.
+       * coffcode.h (coff_set_alignment_hook) [COFF_WITH_PE version]: Set
+       pe_flags field.
+       * libcoff.h: Rebuild.
+
+       * coffcode.h (coff_set_custom_section_alignment): Add const to
+       declaration to match definition.
+       (coff_write_object_contents): Don't set F_AR32W(R)? if
+       COFF_WITH_PE.
+
+       * coff-i386.c (in_reloc_p): Add declaration.
+       (i386coff_vec): Simplify initialization of
+       application_section_flags.
+
+       * coffcode.h (sec_to_styp_flags): Write separate COFF_WITH_PE
+       version.  Move COFF_WITH_PE specific code to new version.
+       (stype_to_sec_flags): Likewise.  Add section parameter.
+       * coffgen.c (make_a_section_from_file): Set target_index before
+       calling styp_to_sec_flags.  Pass section to styp_to_sec_flags.
+       * libcoff.h: Rebuild.
+
+       * syms.c (stt): Add some PE/PEI section names.
+       (bfd_decode_symclass): Return 'w', not 'U', for a weak undefined
+       symbol.
+       (bfd_symbol_info): Check for 'w'.
+
+       * section.c (struct bfd_comdat_info): Define.
+       (asection): Add comdat field.
+       (STD_SECTION): Initialize comdat field.
+       (bfd_make_section_anyway): Likewise.
+       * bfd-in2.h: Rebuild.
+
+1999-09-06  Andreas Schwab  <schwab@suse.de>
+
+       * elflink.h (elf_link_add_object_symbols): Copy NON_GOT_REF flag
+       to version symbols.
+
+1999-09-06  Nick Clifton  <nickc@cygnus.com>
+
+       * elflink.h (elf_gc_record_vtentry): Use bfd_zmalloc and
+       bfd_realloc instead of calloc and realloc.
+
+1999-09-04  Steve Chamberlain  <sac@pobox.com>
+
+       * cpu-pj.c: New file.
+       * elf32-pj.c: New file.
+       * config.bfd (pj*): New cpu.
+       (pj-*-*, pjl-*-*): New targets.
+       * configure.in (bfd_elf32_pj_vec): New target vector.
+       (bfd_elf32_pjl_vec): New target vector.
+       * archures.c (bfd_arch_pj): Define.
+       * elf.c (prep_headers): Handle bfd_arch_pj.
+       * reloc.c: Define BFD_RELOC_PJ_* relocations.
+       * targets.c (bfd_elf32_pj_vec, bfd_elf32_pjl_vec): Declare and add
+       to target vector list.
+       * Makefile.am: Rebuild dependencies.
+       (ALL_MACHINES): Add cpu-pj.lo.
+       (ALL_MACHINES_CFILES): Add cpu-pj.c.
+       (BFD32_BACKENDS): Add elf32-pj.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-pj.c.
+       * configure, Makefile.in, bfd-in2.h, libbfd.h: Rebuild.
+
+1999-09-04  Ian Lance Taylor  <ian@zembu.com>
+
+       * elf-bfd.h (ELF_LINK_NON_GOT_REF): Define.
+       * elflink.h (elf_adjust_dynamic_symbol): Copy REF_REGULAR_NONWEAK
+       and NON_GOT_REF from weak defined symbol to real symbol.
+       * elf32-i386.c (elf_i386_check_relocs): Set NON_GOT_REF.
+       (elf_i386_adjust_dynamic_symbol): If NON_GOT_REF is not set, don't
+       create a COPY reloc.
+       * elf32-sparc.c (elf32_sparc_check_relocs): Set NON_GOT_REF.
+       (elf32_sparc_adjust_dynamic_symbol): If NON_GOT_REF is not set,
+       don't create a COPY reloc.
+
+1999-09-03  Ian Lance Taylor  <ian@zembu.com>
+
+       * elflink.h (elf_bfd_final_link): When counting relocations, don't
+       count those in sections we are not including in the link.
+
+Thu Sep  2 17:41:20 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elflink.h (elf_link_add_object_symbols): Work around bogus SH_LINK
+       field in hpux11 shared libraries.
+
+1999-09-02  Nick Clifton  <nickc@cygnus.com>
+
+       * elflink.h (elf_gc_record_vtentry): Fix memory leak.
+
+Wed Sep  1 13:34:29 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_add_symbol_hook): New function.
+       (elf_hppa_final_link, elf_hppa_relocate_section): Likewise.
+       (elf_hppa_final_link_relocate, elf_hppa_relocate_insn): Likewise.
+
 1999-08-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * elflink.h (record_link_assignment): When possible, keep the