* elf-bfd.h (ELF_LINK_NON_ELF): Define.
[external/binutils.git] / bfd / ChangeLog
index 558c7ad..00466ea 100644 (file)
@@ -1,3 +1,802 @@
+Thu Feb  1 16:04:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf-bfd.h (ELF_LINK_NON_ELF): Define.
+       * elf.c (_bfd_elf_link_hash_newfunc): Set elf_link_hash_flags to
+       ELF_LINK_NON_ELF.
+       * elflink.h (elf_link_add_object_symbols): Reset ELF_LINK_NON_ELF
+       flag for a newly defined symbol.
+       (NAME(bfd_elf,record_link_assignment)): Likewise.
+       (elf_adjust_dynamic_symbol): If ELF_LINK_NON_ELF is set, try to
+       set the DEF or REF_REGULAR flags correctly.
+
+       * Makefile.in (bfd-in2.h): Make bfd.h, not protos, in docdir.
+       (libbfd.h, libcoff.h): Corresponding change.
+
+       * elf32-i386.c (elf_i386_check_relocs): Don't record a symbol with
+       a PLT32 reloc as dynamic.
+       (elf_i386_adjust_dynamic_symbol): If a symbol with a PLT32 reloc
+       is not referenced by a dynamic object, and we are not making a
+       shared object, then don't make a PLT entry.  If we do make a PLT
+       entry, make sure the symbol has been recorded as dynamic.
+
+Wed Jan 31 17:23:32 1996  Steve Chamberlain  <sac@slash.cygnus.com>
+
+       * coff-i386.c (coff_i386_reloc_type_lookup): Add BFD_RELOC_32_PCREL.
+       * config.bfd (i[345]86-*-win32): Becomes i[345]86-*-cygwin32.
+       (powerpcle-*-cygwin32): New.
+       * peicode.h (add_data_entry): Get address from vma.
+
+Wed Jan 31 16:23:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elflink.c (_bfd_elf_create_linker_section): If the symbol
+       attached to the section has already been created as an undefined
+       symbol, treat it as if it hasn't been created yet.
+
+Wed Jan 31 16:16:53 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_bfd_final_link): Don't output initial dummy
+       symbol or section symbols if stripping all symbols and this is not
+       a relocateable link.  Don't output the symbol string table if
+       there are no symbols.
+       (elf_link_flush_output_syms): Don't do anything if there are no
+       symbols to flush.
+
+Wed Jan 31 12:55:49 1996  Richard Henderson  <rth@tamu.edu>
+
+       * coff-aux.c: New file.
+       * hosts/m68kaux.h: New file.
+       * config.bfd (m68*-apple-aux*): New target.
+       * configure.in (m68*-apple-aux*): New native host.
+       (m68kaux_coff_vec): New vector.
+       * configure: Rebuild.
+       * targets.c (m68kaux_coff_vec): Declare.
+       * coffcode.h (bfd_coff_backend_data): Add field
+       _bfd_coff_link_add_one_symbol.
+       (bfd_coff_link_add_one_symbol): Define.
+       (compare_arelent_ptr): New static function if TARG_AUX.
+       (coff_write_relocs): If TARG_AUX, sort the relocs.
+       (coff_write_object_contents): Set A/UX aouthdr magic number.
+       (coff_link_add_one_symbol): Define if not defined.
+       (bfd_coff_std_swap_table): Initialize new field.
+       * libcoff.h: Rebuild.
+       * cofflink.c (coff_link_add_symbols): Call
+       bfd_coff_link_add_one_symbol rather than
+       _bfd_generic_link_add_one_symbol.
+       * coff-m68k.c (COFF_PAGE_SIZE): Don't define if already defined.
+       * coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
+       * coff-mips.c (mips_ecoff_backend_data): Likewise.
+       * Makefile.in: Rebuild dependencies.
+       (BFD32_BACKENDS): Add coff-aux.o.
+       (BFD32_BACKENDS_CFILES): Add coff-aux.c.
+
+Wed Jan 31 11:37:46 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * elf32-m68k.c (elf_m68k_relocate_section): Fix R_68K_GOT*
+       relocation; ignore addend with R_68K_{GOT,PLT}*O relocation.
+
+Tue Jan 30 12:09:04 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * Makefile.in (do_maintainer_clean): Remove $(srcdir)/bfd-in2.h,
+       $(srcdir)/libbfd.h and $(srcdir)/libcoff.h.
+       (maintainer-clean): Warn about deleting special files.
+       (bfd-in2.h, libbfd.h, libcoff.h): New targets.
+
+       * elf32-hppa.c (elf32_hppa_relocate_section): Handle indirect and
+       warning symbols correctly.
+       * elf32-i386.c (elf_i386_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mips.c (mips_elf_relocate_section): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+       * syms.c (_bfd_stab_section_find_nearest_line): Add casts to avoid
+       warnings.
+
+Mon Jan 29 14:27:24 1996  Kim Knuttila  <krk@cygnus.com>
+
+       * libcoff-in.h: aligned newly exported names with bfd naming 
+       conventions. Removed an erroneous define of POWERPC_LE_PE.
+       * libcoff.h: Rebuild.
+       * cofflink.c, coff-ppc.c: the above function name changes
+
+Mon Jan 29 13:06:28 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       From Basim Kadhim <kadhim@spock.cs.colorado.edu>:
+       * ecoff.c (struct extsym_info): Define.
+       (_bfd_ecoff_bfd_final_link): Pass a pointer to struct extsym_info
+       to ecoff_link_write_external.
+       (ecoff_link_write_external): Accept a struct extsym_info pointer.
+       Strip symbols when appropriate.
+
+       Based on patches from Ronald F. Guilmette <rfg@monkeys.com>:
+       * syms.c (BSF_OBJECT): Define.
+       (bfd_print_symbol_vandf): Print 'O' for BSF_OBJECT.
+       * bfd-in2.h: Rebuild.
+       * elfcode.h (elf_slurp_symbol_table): Set BSF_OBJECT for an
+       STT_OBJECT symbol.
+       * elf.c (swap_out_syms): Only set type to STT_OBJECT if BSF_OBJECT
+       is set.
+
+       * elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, when
+       copying relocs into a shared object, treat a defined global symbol
+       as a local symbol.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mips.c (mips_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+
+       * elflink.h (elf_link_add_object_symbols): Only set weakdef to a
+       real defined symbol, not to a weak defined symbol.
+
+Mon Jan 29 11:34:36 1996  Kim Knuttila  <krk@cygnus.com>
+
+       * cofflink.c: removed the POWERPC_LE_PE hack, promoted some types
+       and made a few static functions externs.
+
+       * coff-ppc.c (ppc_bfd_coff_final_link): new function, replaces the
+       POWERPC_LE_PE hack in cofflink.
+
+       * libcoff-in.h: promoted the following from cofflink.c to allow
+       _bfd_coff_final_link to be overridden -  STRING_SIZE_SIZE,
+       coff_debug_merge_element, struct coff_debug_merge_type, 
+       coff_debug_merge_hash_entry, coff_debug_merge_hash_table,
+       coff_debug_merge_hash_table_init,  coff_debug_merge_hash_table_free,
+       coff_debug_merge_hash_lookup, coff_link_section_info, 
+       coff_final_link_info, coff_debug_merge_hash_newfunc,
+       coff_write_global_sym, coff_link_input_bfd, coff_reloc_link_order.
+
+       * libcoff.h: re-gen'd
+
+Fri Jan 26 18:33:35 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * syms.c: Include "bfdlink.h".
+       (struct stab_find_info): Define.
+       (_bfd_stab_section_find_nearest_line): New function.
+       * libbfd-in.h (_bfd_stab_section_find_nearest_line): Declare.
+       * libbfd.h: Rebuild.
+       * elf-bfd.h (struct elf_obj_tdata): Add line_info field.
+       * elf.c (_bfd_elf_find_nearest_line): Try calling
+       _bfd_stab_section_find_nearest_line before searching the ELF
+       symbol table.  Find the closest STT_FUNC symbol, not the last one.
+       * libcoff-in.h (coff_data_type): Add line_info field.
+       * libcoff.h: Rebuild.
+       * coffgen.c (coff_find_nearest_line): Try calling
+       _bfd_stab_section_find_nearest_line before searching the COFF
+       symbol table.
+       * Makefile.in: Rebuild dependencies.
+
+Fri Jan 26 16:11:19 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (R_PPC_EMB_SDA21 relocations): Make relocation size
+       4 bytes, so we get the correct value when updating the register
+       field in little endian mode.
+
+Thu Jan 25 12:14:16 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * libcoff-in.h (struct xcoff_tdata): Remove toc_section and
+       entry_section fields.  Add sntoc and snentry fields.
+       * libcoff.h: Rebuild.
+       * coffcode.h (coff_mkobject_hook): Initialize sntoc and snentry,
+       not toc_section and entry_section (the COFF file does not have any
+       sections at this point).
+       (coff_write_object_contents): Set o_snentry and o_sntoc from
+       snentry and sntoc rather than entry_section and toc_section.
+       * coff-rs6000.c (xcoff_copy_private_bfd_data): Copy sntoc and
+       snentry, not toc_section and entry_section.
+       * xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't set
+       entry_section from hentry.
+       (xcoff_link_input_bfd): If a defined symbol has XCOFF_ENTRY set,
+       set snentyr.
+       (xcoff_link_input_bfd): Set sntoc, not toc_section.
+       (xcoff_write_global_symbol): Get toc_section from sntoc, rather
+       than using toc_section directly.
+
+       * archures.c: Add missing `.' in enum bfd_architecture.
+       * bfd-in2.h: Rebuild.
+
+       * config.bfd (i[345]86-*-sco*elf*): Use bfd_elf32_i386_vec.  From
+       Robert Lipe <robertl@arnet.com>.
+
+Thu Jan 25 12:08:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_size_dynamic_sections): Add .rela.sdata{,2}
+       to sections we allocate.  Use bfd_zalloc to allocate initialial
+       sections, not bfd_alloc.
+       (ppc_elf_check_relocs): Remove BFD_ASSERTs for !shared from
+       SDA{,2}I16 relocations.
+       (ppc_elf_add_symbol_hook): Use the value of -G nn to determine
+       whether to put something in .sbss or not.
+       (ppc_elf_relocate_section): Add support for more relocations.  Add
+       in sec->output_offset where appropriate.  Make error messages
+       include the symbol name.
+
+       * elflink.c (_bfd_elf_create_linker_section): Lookup symbol before
+       trying to add it to the symbol table, so _GLOBAL_OFFSET_TABLE_
+       doesn't get redefined messages if -shared.
+
+       * elflink.h (elf_create_pointer_linker_section) Only bump RELA
+       section if the rel_section field has been set up.
+
+Wed Jan 24 20:40:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Fix typo in eabi
+       relocations.
+
+Wed Jan 24 10:38:34 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+       * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Delete checking
+       of flags, only flags used are controlled by mach number.  Bump up
+       output file mach number to highest of input file mach numbers.
+       (elf32_sparc_object_p): Watch for EF_SPARC_SUN_US1.
+       (elf32_sparc_final_write_processing): Set EF_SPARC_SUN_US1 if v8plusa.
+
+       * config.bfd (sparc64-*-{sysv4*,solaris2*}): Comment out
+       bfd_elf64_sparc_vec support.
+
+Tue Jan 23 14:33:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_copy_private_bfd_data): Don't complain if
+       the embedded bit is set on some objects and not on others.  Just
+       or it together.
+       (ppc_elf_relocate_section): Implement R_PPC_EMB_{SDA21,RELSDA}
+       relocations.
+
+Tue Jan 23 14:22:45 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffcode.h (coff_new_section_hook): Don't try to align the
+       .stabstr section.
+
+       * coffcode.h (coff_set_section_contents): Fix the handling of the
+       .lib section to work even if the entire section contents are
+       written at once.  From Gvran Uddeborg <gvran@uddeborg.pp.se> and
+       Robert Lipe <robertl@arnet.com>.
+
+Mon Jan 22 18:45:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elflink.h (elf_finish_pointer_linker_section): Don't allocate
+       memory here for contents.
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Bump up _SDA_BASE_ and
+       _SDA2_BASE_ by 32768.
+       (ppc_elf_size_dynamic_sections): #if out PLT code which we haven't
+       started using.  Allocate contents for .sdata and .sdata2 sections
+       also.
+       (ppc_elf_check_relocs): Use bfd_get_section_name in debug message,
+       rather than _name.
+       (ppc_elf_finish_dynamic_symbol): Remove code that attempted to
+       size _SDA{,2}_BASE_.
+       (ppc_elf_relocate_section): Change how sdata{,2} relocations are
+       done.
+
+Mon Jan 22 08:52:04 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+       * elflink.h (elf_finish_pointer_linker_section): Fix typo.
+
+       * archures.c (bfd_mach_sparc_v9): Renamed from bfd_mach_sparc64.
+       (bfd_mach_sparc_{v8plus,v8plusa}): Define.
+       (bfd_mach_sparc_v9a): Define.
+       (bfd_mach_sparc_v9_p): Define.
+       * bfd-in2.h: Regenerated.
+       * aoutx.h (aout,machine_type): bfd_mach_sparc64 renamed to
+       bfd_mach_sparc_v9.
+       * elf64-sparc.c (sparc64_elf_object_p): Likewise.
+       * config.bfd (sparc64-*-sysv4*,sparc64-*-solaris2*): Set targ_defvec
+       to bfd_elf32_sparc_vec.
+       * cpu-sparc.c (arch_info_struct): Renamed from sparc_arch_info.
+       Add v8plus{,a} support.
+       Add v9a support.
+       (sparc_compatible): New function.
+       * elf32-sparc.h: #include "elf/sparc.h".
+       (elf32_sparc_merge_private_bfd_data, elf32_sparc_object_p,
+       elf32_sparc_final_write_processing): New functions.
+       (bfd_elf32_bfd_merge_private_bfd_data, elf_backend_object_p,
+       elf_backend_final_write_processing): Define.
+
+Mon Jan 22 11:21:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf-bfd.h (struct elf_link_hash_entry): Add
+       linker_section_pointer field.
+       (enum elf_linker_section_enum): Enumeration for new way of
+       creating linker dynamic sections and symbols.
+       (elf_linker_section{,_pointers}): New structures for creating
+       dynamic sections and symbols.
+       (elf_obj_tdata): Add linker_section_pointers and linker_section
+       fields.
+       (elf_local_ptr_offsets,elf_linker_section): New accessor macros.
+       (_bfd_elf_create_linker_section): New declarations.
+       (_bfd_elf_find_pointer_linker_section): Ditto.
+       (bfd_elf{32,64}_{create,finish}_pointer_linker_section): Ditto.
+       (_bfd_elf_make_linker_section_rela): Ditto.
+
+       * elf.c (_bfd_elf_link_hash_newfunc): Initialize new fields.
+
+       * elf32-ppc.c (ppc_elf_create_dynamic_sections): Delete.
+       (ppc_elf_create_linker_section): New function to create the
+       sections .got, .sdata, and .sdata2.
+       (ppc_elf_size_dynamic_sections): Zap .rela.{sdata,sdata2} if
+       needed.
+       (ppc_elf_check_relocs): Support more of the eabi relocations.
+       (ppc_elf_relocate_section): Ditto.
+       (ppc_elf_finish_dynamic_symbols): Adjust _SDA{,2}_BASE_ by 32768
+       if the .sdata{,2} + .sbss{,2} section size is > 32k.
+
+       * elflink.h (elf_create_pointer_linker_section): New function to
+       create initialized pointers in dynamic linker sections.
+       (elf_finish_pointer_linker_section): Actually intialize the
+       pointers created above.
+
+       * elfcode.h (bfd_elf{32,64}_create_pointer_linker_section): New
+       macros to provide both 32 and 64 bit versions of
+       elf_create_pointer_linker_section.
+       (bfd_elf{32,64}_finish_pointer_linker_section): New macros to
+       provide both 32 and 64 bit versions of
+       elf_finish_pointer_linker_section.
+
+       * elflink.c (_bfd_elf_create_linker_section): New function to
+       create a linker section.
+       (_bfd_elf_find_pointer_linker_section): Find a unique pointer to a
+       given address in the linker pointer offsets created for a given
+       symbol.
+       (_bfd_elf_make_linker_section_rela): Make a RELA section
+       corresponding to the generated linker section.
+
+Sat Jan 20 08:36:10 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+       * elf32-sparc.c (ELF_MACHINE_ALT1): Define.
+
+Thu Jan 18 18:25:34 1996  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (coff_ppc_relocate_section): changed TOCDEFN relocs.
+       (coff_ppc_relocate_section): Handle special values for gcc built dlls.
+       (dump_toc): fix diagnosing code to identify out-of-toc-bounds entries.
+       Also begin the toc at 4 as an eye catcher ('31313131' marks the first
+       toc entry in an objdump) for now.
+       (ppc_do_last, ppc_get_last): New function - needed to save processing 
+       the toc owner to the end.
+       (ppc_coff_swap_sym_in_hook): Removed an incorrect hack for doing the 
+       toc owner last.
+
+       * cofflink.c (_bfd_coff_final_link): Added a new hack to keep the 
+       toc owner from being done till last. Must define POWERPC_LE_PC 
+       to enable it.
+
+       * coffcode.h (coff_set_alignment_hook): alignment setting for .stab
+
+       * peicode.h (coff_swap_scnhdr_out): set section flags for stab/str
+       to INFO.
+       (coff_swap_aouthdr_out): Removed a non-working hack for computing the
+       SizeOfImage for PowerPC. Ignore the size of the .junk section.
+
+Thu Jan 18 17:42:12 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elfcore.h: Include <signal.h> before <sys/procfs.h>.
+
+Wed Jan 17 12:40:14 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * cpu-powerpc.c (arch_info_struct): Change last entry to not point
+       back to first.
+       (bfd_powerpc_arch): Point at first entry in arch_info_struct.
+
+Tue Jan 16 15:10:49 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf.c (assign_file_positions_for_segments): Don't increment file
+       offset for a segment which contains no loadable sections.
+
+Mon Jan 15 17:46:27 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * reloc.c: Add new PowerPC relocations.
+       * {bfd-in2,libbfd}.h: Regenerate.
+
+       * elf32-ppc.c (ppc_elf_howto_raw): Add more PPC relocations.
+       (ppc_elf_reloc_type_lookup): Lookup new relocations.
+
+Mon Jan 15 14:29:44 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * aoutx.h (howto_table_ext): Fix RELOC_BASE10 and RELOC_BASE22
+       entries.
+
+       * sunos.c (sunos_scan_ext_relocs): Don't fail assert if
+        info->shared.
+
+       * coffgen.c (coff_find_nearest_line): Don't try to cache
+       information in sections that are not owned by a BFD.  From Richard
+       Henderson <richard@atheist.tamu.edu>.
+
+       * elf32-mips.c: Numerous changes to dynamic linking code, mostly
+       from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
+       * elflink.h (elf_link_output_extsym): Remove special check for
+       _rld_new_interface.
+
+       * ecoffswap.h: Add prototypes for static functions.
+
+Sun Jan 14 21:36:08 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_{unsupported,std}_reloc): Remove functions.
+       (ppc_elf_howto_raw): Remove ppc_elf_{unsupported,std}_reloc
+       references.
+       (ppc_elf_relocate_section):  No longer allow .sdata/.sbss sections
+       to satisfy a TOC16 relocation.  Rewrite unsupported relocation
+       support.  Begin support for R_PPC_SDA{2,}REL.
+
+Sat Jan 13 09:36:52 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_create_dynamic_sections): New function to
+       create the .got and .got.neg sections.
+       (ppc_elf_size_dynamic_sections): Call it.
+       (ppc_elf_check_relocs): Call it.
+       (ppc_elf_size_dynamic_sections): Support .got.neg, just like .got.
+       (ppc_elf_check_relocs): Add error messages for relocations we
+       don't yet support.  Do not include R_PPC_SDAREL16 like a GOT
+       relocation.
+
+Fri Jan 12 15:27:59 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_fake_sections): Define, and handle the new
+       section flags for V.4 and eabi.
+
+Fri Jan 12 13:59:16 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf.c (assign_file_positions_for_segments): If a segment
+       contains no sections, don't mark it as readable.
+
+       * elf-bfd.h (_bfd_elf_section_from_bfd_section): Declare.
+       * elfcode.h (_bfd_elf_section_from_bfd_section): Don't declare.
+
+       * elf.c (_bfd_elf_print_private_bfd_data): Dump contents of
+       dynamic section, if there is one.
+       * elf-bfd.h (struct elf_size_info): Add swap_dyn_in field.
+       (bfd_elf32_swap_dyn_in): Change type of second parameter to PTR.
+       (bfd_elf64_swap_dyn_in): Likewise.
+       * elfcode.h (elf_swap_dyn_in): Change type of second parameter to
+       PTR.
+       (NAME(_bfd_elf,size_info)): Initialize swap_dyn_in field.
+
+       * elf32-i386.c (elf_i386_size_dynamic_sections): Don't create a
+       DT_TEXTREL entry because of .rel.plt.  From Martin Pirker
+       <pirker@eiunix.tuwien.ac.at>.
+
+Thu Jan 11 17:06:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * section.c (SEC_{EXCLUDE,SORT_ENTRIES}): New section flags for
+       PowerPC V.4 and eabi.
+       * bfd-in2.h: Regenerate.
+       * libfd.h: Regenerate.
+
+       * elfxx-target.h (TARGET_{BIG,LITTLE}_SYM): Add new flags.
+
+       * elf32-ppc.c (ppc_elf_section_from_shdr): Support SHT_ORDERED
+       section type and SHF_EXCLUDE section flag, turning them into the
+       appropriate bfd section flag.
+
+Thu Jan 11 11:23:30 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * xcofflink.c (xcoff_link_add_symbols): Create the special
+       sections if we see a DYNAMIC object, in case that is the only
+       XCOFF input object we see.
+       
+       * elf32-mips.c: Extensive changes for a start at dynamic linking
+       support, from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
+
+       * elf-bfd.h (struct elf_backend_data): Add type_change_ok field.
+       (struct elf_backend_data): Remove
+       elf_backend_create_program_headers field.  Add
+       elf_backend_additional_program_headers and
+       elf_backend_modify_segment_map fields.
+       * elfxx-target.h (elf_backend_type_change_ok): Define if not
+       defined.
+       (elf_backend_additional_program_headers): Likewise.
+       (elf_backend_modify_segment_map): Likewise.
+       (elf_backend_create_program_headers): Don't define.
+       (elfNN_bed): Change to account for field changes.
+       * elf.c (assign_file_positions_for_segments): Call new
+       modify_segment_map backend function.  Don't call old
+       create_program_headers backend function.
+       (get_program_header_size): Call additional_program_headers rather
+       than create_program_headers.
+       * elflink.h (elf_link_add_object_symbols): Initialize
+       type_change_ok from new backend field.
+       (elf_link_output_extsym): Don't warn if _rld_new_interface is
+       defined.
+       (elf_reloc_link_order): Treat a reloc against a defined symbol as
+       a reloc against the appropriate section.
+
+       * elf-bfd.h (struct bfd_elf_section_data): Add tdata field.
+       (struct elf_obj_tdata): Rename ppc_flags_init field to flags_init.
+       (elf_flags_init): Rename from elf_ppc_flags_init.
+       * elf32-ppc.c (ppc_elf_set_private_flags): Use elf_flags_init, not
+       elf_ppc_flags_init.
+       (ppc_elf_copy_private_bfd_data): Likewise.
+       (ppc_elf_merge_private_bfd_data): Likewise.
+
+       * elf32-m68k.c (howto_table): Change src_mask to 0 for all
+       relocation entries.
+
+Tue Jan  9 15:22:53 1996  David Mosberger-Tang  <davidm@azstarnet.com>
+
+       * coff-alpha.c (alpha_relocate_section): During final link, allow
+       output .lita section to be bigger than 64k by adjusting gp value
+       on a per-input section basis.
+       * libecoff.h (struct ecoff_tdata): Add issued_multiple_gp_warning
+       field.
+       (struct ecoff_section_tdata): Add gp field.
+
+Tue Jan  9 12:00:36 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       Handle Alpha ECOFF changes in OSF/1 3.2.
+       * libecoff.h (struct ecoff_backend_data): Add get_elt_at_filepos
+       field.
+       * coff-alpha.c: Include "aout/ar.h".
+       (alpha_ecoff_get_relocated_section_contents): Don't require an
+       ALPHA_R_IGNORE reloc after an ALPHA_R_GPDISP reloc, since OSF/1
+       3.2 doesn't generate one.
+       (alpha_relocate_section): Likewise.
+       (alpha_ecoff_slurp_armap): Define.
+       (alpha_ecoff_slurp_extended_name_table): Define.
+       (alpha_ecoff_construct_extended_name_table): Define.
+       (alpha_ecoff_truncate_arname): Define.
+       (alpha_ecoff_write_armap): Define.
+       (alpha_ecoff_generic_stat_arch_elt): Define.
+       (alpha_ecoff_update_armap_timestamp): Define.
+       (ARFZMAG): Define.
+       (alpha_ecoff_read_ar_hdr): New static function.
+       (alpha_ecoff_get_elt_at_filepos): New static function.
+       (alpha_ecoff_openr_next_archived_file): New static function.
+       (alpha_ecoff_get_elt_at_index): New static function.
+       (alpha_ecoff_backend_data): Initialize get_elt_at_filepos field.
+       (ecoffalpha_little_vec): Change BFD_JUMP_TABLE_ARCHIVE from
+       _bfd_ecoff to alpha_ecoff.
+       * ecoff.c (ecoff_link_add_archive_symbols): Use get_elt_at_filepos
+       field from backend structure, rather than always calling
+       _bfd_get_elt_at_filepos.
+       * coff-mips.c (mips_ecoff_backend_data): Initialize
+       get_elt_at_filepos field.
+       * archive.c (_bfd_generic_read_ar_hdr_mag): New function, copied
+       from _bfd_generic_read_ar_hdr with minor changes.
+       (_bfd_generic_read_ar_hdr): Use _bfd_generic_read_ar_hdr_mag.
+       * libbfd-in.h (_bfd_generic_read_ar_hdr_mag): Declare.
+       * libbfd.h: Rebuild.
+
+       * bfd-in.h (BFD_IN_MEMORY): Define.
+       * libbfd-in.h (struct bfd_in_memory): Define.
+       * libbfd.c (bfd_read): Handle BFD_IN_MEMORY flag.
+       (bfd_get_file_window): Don't try to map a BFD_IN_MEMORY file.
+       (bfd_write, bfd_stat): Abort if BFD_IN_MEMORY is set.
+       (bfd_tell, bfd_flush, bfd_seek): Handle BFD_IN_MEMORY flag.
+       * bfd.c (struct _bfd): Change iostream field from char * to PTR.
+       (bfd_get_size): Handle BFD_IN_MEMORY flag.
+       * cache.c (bfd_cache_close): Ignore BFD_IN_MEMORY files.
+       (bfd_open_file): Cast to PTR, not char *, when setting iostream.
+       (bfd_cache_lookup_worker): Abort if BFD_IN_MEMORY is set.
+       * opncls.c (bfd_fdopenr): Cast to PTR, not char *, when setting
+       iostream.
+       (bfd_openstreamr): Likewise.
+       * aoutx.h (NAME(aout,some_aout_object_p)): Only fstat iostream if
+       BFD_IN_MEMORY is not set.
+       * riscix.c (riscix_some_aout_object_p): Likewise.
+       * bfd-in2.h, libbfd.h: Rebuild.
+
+       * targets.c (bfd_target): Add _bfd_get_elt_at_index field.
+       (BFD_JUMP_TABLE_ARCHIVE): Add _get_elt_at_index.
+       (bfd_get_elt_at_index): Define.
+       * archive.c (_bfd_generic_get_elt_at_index): Rename from
+       bfd_get_elt_at_index.  Change index parameter from int to
+       symindex.
+       * libbfd-in.h (_bfd_generic_get_elt_at_index): Declare.
+       (_bfd_noarchive_get_elt_at_index): Define.
+       (_bfd_archive_bsd_get_elt_at_index): Define.
+       (_bfd_archive_coff_get_elt_at_index): Define.
+       * bfd-in2.h, libbfd.h: Rebuild.
+       * aout-target.h (MY_get_elt_at_index): Define if not defined.
+       * coff-rs6000.c (xcoff_get_elt_at_index): Define.
+       * ieee.c (ieee_get_elt_at_index): Define.
+       * libecoff.h (_bfd_ecoff_get_elt_at_index): Define.
+       * oasys.c (oasys_get_elt_at_index): Define.
+       * som.c (som_get_elt_at_index): Define.
+
+       * ecoff.c (_bfd_ecoff_find_nearest_line): Don't restrict line
+       numbers to the .text section.
+
+Mon Jan  8 17:00:57 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c (ieee_write_debug_part): Change return type to boolean.
+       If there is a SEC_DEBUGGING section, get the contents of the debug
+       information part from it.
+       (ieee_set_section_contents): Store the contents of a SEC_DEBUGGING
+       section in memory.
+       (ieee_write_object_contents): Check ieee_write_debug_part return.
+
+Thu Jan  4 17:12:37 1996  Fred Fish  <fnf@cygnus.com>
+
+       * config.bfd (i[345]86-*-freebsd*): Add target.
+       * configure.in (i386freebsd_vec): Add vec.
+       * configure: Regenerate.
+       * Makefile.in (BFD32_BACKENDS): Add i386freebsd.o.
+       (BFD32_BACKENDS_CFILES): Add i386freebsd.c.
+       Rebuild dependencies..
+       * freebsd.h: New file.
+       * i386freebsd.c: New file.
+       * targets.c (i386freebsd_vec): Declare.
+       (bfd_target_vector): Add i386freebsd_vec.
+       * i386linux.c (SEGMENT_SIZE): Define as TARGET_PAGE_SIZE
+       * i386netbsd.c (SEGMENT_SIZE):  Define as TARGET_PAGE_SIZE
+       
+Thu Jan  4 16:27:46 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c (ieee_slurp_debug): New static function.
+       (ieee_object_p): Call it.
+       (ieee_slurp_section_data): Skip debugging sections.
+       (ieee_get_reloc_upper_bound): Likewise.
+       (ieee_get_section_contents): Likewise.
+       (ieee_canonicalize_reloc): Likewise.
+       (ieee_write_section_part): Likewise.
+       (ieee_write_debug_part): Likewise.
+       (ieee_write_data_part): Likewise.
+       (init_for_output): Likewise.
+
+Wed Jan  3 19:42:47 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Make @GOT relocations
+       work.
+       (ppc_elf_howto_raw): Just use bfd_elf_generic_reloc for all howto
+       relocs, since ppc_elf_relocate_section handles the linker case.
+       (ppc_elf_{addr16_ha,got16,toc16,brtaken}_reloc): Delete, no longer
+       used.
+       (ppc_elf_{addr16_ha,got16,toc16,brtaken}_inner): Merge these into
+       ppc_elf_relocate_section since that is now the only caller.
+       (ppc_elf_relocate_section): Ditto.
+
+Wed Jan  3 15:11:30 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffcode.h (coff_write_object_contents): If we don't know the
+       section of the entry point for an XCOFF executable, always set the
+       entry address to -1.
+
+Tue Jan  2 14:17:15 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf.c (bfd_section_from_shdr): Add support for note sections.
+
+Tue Jan  2 13:10:25 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * bfd-in.h (struct _symbol_info): Add stab_type field.
+       * bfd-in2.h: Rebuild.
+       * aoutx.h (NAME(aout,get_symbol_info)): Set stab_type.
+
+       * elf32-ppc.c: Remove trailing newline from calls to
+        _bfd_error_handler.
+       (ppc_elf_merge_private_bfd_data): Only warn about endianness
+       difference if target endianness is known.
+
+Thu Dec 21 12:43:49 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * elf32-ppc.c (ppc_elf_howto_raw): Add a phony reloc to handle the
+       old style TOC16 references without using R_PPC_GOT.
+       (ppc_reloc_type): Ditto.
+       (ppc_elf_reloc_type_lookup): Add support for TOC16.
+       (ppc_elf_toc16_inner): Renamed from ppc_elf_got16_inner.
+       (ppc_elf_toc16_reloc): Renamed from ppc_elf_toc16_reloc.
+       (ppc_elf_got16_{inner,reloc}): Stubs for real GOT support.
+       (ppc_elf_check_relocs): New function for GOT/PLT support that is
+       work in progress.
+       (ppc_elf_adjust_dynamic_symbol): Ditto.
+       (ppc_elf_adjust_dynindx): Ditto.
+       (ppc_elf_size_dynamic_sections): Ditto.
+       (ppc_elf_finish_dynamic_symbol): Ditto.
+       (ppc_elf_finish_dynamic_sections): Ditto.
+       (ELF_DYNAMIC_INTERPRETER): Define.
+
+Wed Dec 20 19:14:18 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * elf.c (copy_private_bfd_data): When attaching sections to
+       segments ignore sections that won't be allocated.  Patch from
+       Andreas Schwab.
+
+Tue Dec 19 20:01:43 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * config.bfd: Match on m68k-cbm-* only if OS doesn't match
+       anything else.
+
+Tue Dec 19 16:38:59 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coff-i960.c (CALC_ADDEND): Define.
+       (coff_i960_relocate_section): Add the input section VMA to the
+       addend for PC relative relocs.
+
+Sun Dec 17 20:11:55 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * peicode.h (pe_print_pdata): Must test the entire entry for zero
+       to correctly terminate.
+
+Fri Dec 15 12:05:57 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * targets.c (enum bfd_endian): Define.
+       (bfd_target): Rename byteorder_big_p to byteorder, and change it
+       from boolean to enum bfd_endian.  Change header_byteorder_big_p
+       correspondingly.
+       * bfd-in.h (bfd_big_endian, bfd_little_endian): New macros.
+       (bfd_header_big_endian, bfd_header_little_endian): New macros.
+       * bfd-in2.h: Rebuild.
+       * All targets: Change initialization of byteorder and
+       header_byteorder to use enum bfd_endian values rather than
+       booleans.
+       * All files: Change all references to byteorder_big_p and
+       header_byteorder_big_p to use new bfd_*_endian macros.
+
+       * coffgen.c (make_a_section_from_file): Set lma to s_paddr, not
+       s_vaddr.
+       * coffcode.h (coff_write_object_contents): Set s_paddr to lma, not
+       vma.
+       * ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
+
+Fri Dec 15 07:32:09 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+       * pe[i]-i386.c (TARGET_UNDERSCORE): Define to '_'.
+
+Thu Dec 14 13:45:37 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c: Lots of minor cleanups.  Make many functions return
+       errors rather than calling abort.  Also:
+       (ieee_write_twobyte): Remove; change callers to call existing
+       ieee_write_2bytes function.
+       (ieee_write_expression): Don't output the section twice when
+       outputting a local symbol.  Don't emit an extraneous zero if there
+       is only one term.
+       (ieee_slurp_sections): Set the lma as well as the vma.
+       (ieee_archive_p): Use bfd_alloc_grow rather than an obstack.
+
+       * ihex.c (ihex_set_arch_mach): Don't accept any architecture, just
+       a recognized one or bfd_arch_unknown.
+       (ihex_get_symtab_upper_bound): Define as bfd_0l, to permit objcopy
+       to succeed.
+       (ihex_get_symtab): Likewise.
+
+Wed Dec 13 15:44:06 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * aoutx.h: Include <ctype.h>.
+       (struct aout_link_includes_table): Define.
+       (struct aout_link_includes_totals): Define.
+       (struct aout_link_includes_entry): Define.
+       (aout_link_includes_lookup): Define macro.
+       (struct aout_final_link_info): Add includes field.
+       (aout_link_includes_newfunc): New static function.
+       (NAME(aout,final_link)): Initialize includes hash table.
+       (aout_link_write_symbols): Eliminate duplicate N_BINCL entries.
+
+Wed Dec 13 10:52:14 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * mpw-config.in: Match on mips-*-* instead of mips-idt-ecoff.
+
+Wed Dec 13 11:07:45 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (coff_ppc_relocate_section): removed debugging code.
+
+Tue Dec 12 17:42:06 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * peicode.h (pe_print_reloc): New function to dump the .reloc section.
+       (pe_print_private_bfd_data): call pe_print_reloc.
+       * coffcode.h (coff_set_alignment_hook): .reloc section alignment.
+       * coff-ppc.c (in_reloc_p): Added missing non-eligible relocs. Spiffed
+       up some debugging as well.
+
+Tue Dec 12 11:34:23 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * config.bfd: Handle sparc-*-elf*.  From Ronald F. Guilmette
+       <rfg@monkeys.com>.
+
+Fri Dec  8 17:47:07 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_link_add_object_symbols): Set section_count to 0
+       when setting sections to NULL.
+
+Wed Dec  6 17:05:37 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * xcofflink.c (struct xcoff_loader_info): Add export_defineds
+       field.
+       (bfd_xcoff_size_dynamic_sections): Add export_defineds parameter.
+       (xcoff_build_ldsyms): If export_defineds is set, set XCOFF_EXPORT
+       for all symbols.
+       * bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
+       * bfd-in2.h: Rebuild.
+
 Mon Dec  4 16:40:47 1995  Kim Knuttila  <krk@cygnus.com>
 
        * coffcode.h (coff_set_alignment_hook): Removed some debugging printf's