* emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 140e7e5b246ab818c3cc8f662a150111d91e2642..95c0254d34fb317df11c73c12bad80b8a9e4e758 100644 (file)
@@ -1,3 +1,458 @@
+Thu Sep 16 11:21:13 1999  Catherine Moore  <clm@cygnus.com>
+
+       * elf32-m68k.c (elf_cpu32_plt0_entry): Use a1 instead of a0.
+       (elf_cpu32_plt_entry): Likewise.
+
+Thu Sep 16 10:48:17 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_final_link): If unable to find __gp in the
+       symbol table, then just compute a suitable value (but do not
+       create a __gp symbol).
+
+       * elf-hppa.h (elf_hppa_relocate_section): Allow undefined
+       symbols when building shared libraries.
+       (elf_hppa_final_link_relocate): Correct handling of PCREL
+       relocations against undefined symbols.
+
+1999-09-16  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-arm.h (bfd_elf32_arm_get_bfd_for_interworking): Mark
+       interworking sections as linker created so that they will not
+       be removed by garbage collection.
+
+Wed Sep 15 02:31:57 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_final_link): Revamp __gp handling.
+       (elf_hppa_final_link_relocate): Consistently create an absolute
+       address, then subtract out the value of __gp.
+
+1999-09-14  Michael Meissner  <meissner@cygnus.com>
+
+       * configure.in (Canonicalization of target names): Remove adding
+       ${CONFIG_SHELL} in front of $ac_config_sub, since autoconfig 2.14
+       generates $ac_config_sub with a ${CONFIG_SHELL} already.
+       * configure: Regenerate.
+
+1999-09-14  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-m32r.c (ELF_MAXPAGESIZE): Change to 0x1 (at request of
+       Mitsubishi). 
+
+Mon Sep 13 20:01:47 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_record_segment_addrs): New function.
+       (elf_hppa_final_link): Initialize text_segment_base and
+       data_segment_base.
+       (elf_hppa_final_link_relocate): Handle SEGREL relocations.
+
+       * elf-hppa.h (elf_hppa_final_link): Remove unused variables.
+       (elf_hppa_final_link_relocate): Likewise.
+       (elf_hppa_relocate_insn): Likewise.
+       (elf_hppa_relocate_section): Initialize HOWTO.
+
+1999-09-13  Donn Terry  <donn@interix.com>
+
+       * coffcode.h (styp_to_sec_flags): Further refinement of COMDAT
+       handling to support both GNU and MS objects.
+
+       * coffcode.h (coff_write_object_contents): Don't check reloc_count
+       when determining whether to set F_RELFLG.
+
+1999-09-13  Philip Blundell  <pb@nexus.co.uk>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Don't range-check
+       PC24 relocs if the target is an undefined weak symbol.
+       (arm_add_to_rel): Fix compiler warning.
+       (elf32_arm_plt0_entry): Correct comments.
+       
+1999-09-13  Alan Modra  <alan@spri.levels.unisa.edu.au>
+
+       * elfcode.h (write_relocs): Check for the_bfd NULL when handling
+       an absolute symbol in REL relocs.
+
+Sun Sep 12 23:47:58 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (elf_hppa_final_link_relocate): Handle SECREL32.
+       Stub SEGREL32.  Return an error for any relocation not handled.
+
+1999-09-12  Ian Lance Taylor  <ian@zembu.com>
+
+       * cofflink.c (coff_link_add_symbols): Look for special MSVC string
+       constant symbols, and avoid multiple definition errors on them.
+
+1999-09-12  Donn Terry  <donn@interix.com>
+
+       * libbfd.c (bfd_log2): Rewrite to avoid infinite loop if most
+       significant bit is set.
+
+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 (_bfd_pei_final_link_postscript): Declare.
+       (coff_final_link_postscript): Define.
+       * peigen.c (_bfd_pei_swap_aouthdr_out): Don't set value for data
+       directory entries here.
+       (_bfd_pei_final_link_postscript): New function.
+
+       * peigen.c (_bfd_pei_swap_scnhdr_out): Remove code which sets
+       section flags based on the section name.
+
+       * peicode.h (coff_swap_scnhdr_in): If COFF_IMAGE_WITH_PE, the
+       get the overflow of the s_nlnno field from the s_nreloc field.
+       * peigen.c (_bfd_pei_swap_scnhdr_out): If doing a final link, swap
+       the s_nlnno overflow of the .text section into the s_nreloc
+       field.
+
+       * peigen.c (add_data_entry): Declare.
+       (pei_swap_aouthdr_out): Get image size right.  Set linker version
+       more intuitively.
+       (pei_swap_scnhdr_out): Test for UNINIT section, not .bss.
+       (pe_print_idata): Code cleanup, print more info, get rid of (now)
+       extraneous ImageBase.
+       (pe_print_edata): Likewise.
+       (pe_print_pdata): Likewise.  Print exception entries.
+       (pe_print_reloc): Likewise.  Print MIPS_JMPADDR.
+       (tbl): Make const, add "UNKNOWN".
+       (_bfd_pe_print_private_bfd_data_common): Print timestamp.
+       (_bfd_pe_bfd_copy_private_bfd_data_common): Don't copy deleted
+       section data directory.
+       (_bfd_pe_bfd_copy_private_section_data): Copy pe_flags.
+
+       * libpei.h (_bfd_pe_bfd_get_symbol_info): Declare.
+       * peigen.c (_bfd_pe_bfd_get_symbol_info): New function.
+       * peicode.h (coff_get_symbol_info): Define.
+
+       * config.bfd (i[3456]86-*-interix*): Set targ_cflags to
+       -DSTRICT_PE_FORMAT.
+       * coffcode.h (styp_to_sec_flags): Check STRICT_PE_FORMAT rather
+       than __INTERIX.
+       (coff_classify_symbol): Re-revert 1999-08-08 patch if
+       STRICT_PE_FORMAT.
+
+       * 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
+       original type of the symbol.
+
+Mon Aug 30 15:26:48 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Allow both
+       R_PARISC_DIR32 and R_PARISC_DIR64 regardless of how the
+       tools were configured.
+       * elf32-hppa.h (_bfd_elf32_hppa_gen_reloc_type): Declare.
+
+1999-08-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf32-mips.c (_bfd_mips_elf_check_relocs): Don't allocate local
+       GOT entries for GOT16 relocations; they're not required.
+
+1999-08-24  Nick Clifton  <nickc@cygnus.com>
+
+       From a patch submitted by Roland McGrath  <roland@baalperazim.frob.com>
+
+       * config.bfd (arm-*-netbsd*): New target.
+       * configure.in (armnetbsd_vec): New target vector.
+       * configure: Regenerate
+       * targets.c (bfd_target_vector): Add &armnetbsd_vec.
+
+       * Makefile.am (BFD32_BACKENDS): Add armnetbsd.lo.
+       (ALL_MACHINES_CFILES): Add armnetbsd.c.
+       (armnetbsd.lo): New rule with deps.
+       * Makefile.in: Regenerate.
+       
+       * armnetbsd.c: New file:  Definitions specific to arm-netbsd
+       target. 
+
 Tue Aug 24 00:25:58 1999  Jeffrey A Law  (law@cygnus.com)
 
        * som.c (som_slurp_symbol_table): Fix typo in comment.
This page took 0.027839 seconds and 4 git commands to generate.