* som.c (som_object_setup): Handle exec_entry and exec_flags being
[platform/upstream/binutils.git] / bfd / ChangeLog
index fbb0852..4f1234e 100644 (file)
+Tue Sep 13 17:57:00 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_object_setup): Handle exec_entry and exec_flags being
+       switched in executables created by the OSF1 linker.
+       (som_write_fixups): Handle R_EXIT just like the R_{F,L,R}SEL
+       fixups.  Support R_ALT_ENTRY (handle just like R_EXIT).
+
+Tue Sep 13 16:04:07 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+       * cofflink.c (coff_link_input_bfd): syment_base is unsigned
+       so can't compare -ve numbers with it.
+
+Mon Sep 12 20:31:17 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+       * configure.in (shcoff_vec): Use cofflink.o now.
+       * coff-sh.c: Rewritten to use new fast coff backend.
+
+Tue Sep 13 16:23:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * aoutx.h (NAME(aout,final_link)): Don't assume that all the input
+        files are a.out.
+
+Tue Sep 13 11:09:39 1994  J.T. Conklin  (jtc@rtl.cygnus.com)
+
+       * configure.host (sparc-*-netbsd): use sparcnbsd.
+         (ns32k-*-netbsd): use ns32knbsd.
+
+       * hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD
+         host support.
+
+       * sparcnetbsd.c: New file, adds support for NetBSD/sparc.
+       * config/sparc-nbsd.mt: Likewise.
+
+       * netbsd.h: New file, definitions common to all netbsd ports.
+       * i386netbsd.c: Use it.
+        * ns32knetbsd.c: Use it.
+
+       * Makefile.in, configure.in, targets.c, config/i386-nbsd.mt,
+         config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to
+         file/variable naming conventions.
+       * i386netbsd.c: New file, renamed from netbsd386.c.
+       * ns32knetbsd.c: New file, renamed from netbsd532.c.
+       
+Mon Sep 12 21:56:20 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_reloc_skip): Correct off-by-one error for 4-byte
+       R_NO_RELOCATION fixups.
+       (bfd_section_from_som_symbol): Return the absolute section if the
+       symbol isn't contained in any section in the output file.
+       (som_slurp_symbol_table): ST_PRI_PROG and ST_SEC_PROG symbols are
+       not function symbols (they are magic code labels which *can* be the
+       targets of cross space branches).  $START$ is not a section symbol.
+
+Mon Sep 12 11:43:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coff-alpha.c (ecoffalpha_little_vec): Add SEC_CODE and SEC_DATA
+       to section_flags.
+       * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
+
+       * elfcode.h (swap_out_syms): Set the type of an undefined symbol
+       to STT_FUNC if the BSF_FUNCTION flag is set.
+
+       * cofflink.c (coff_link_input_bfd): If r_symndx is -1, don't
+       change it.
+       (_bfd_coff_generic_relocate_section): If r_symndx is -1, it is an
+       absolute reloc.  Don't dump core using r_symndx as an array index.
+       * cf-m68klynx.c (coff_bfd_link_add_symbols): Define.
+       (lynx_link_add_symbols): New static function (copy of function in
+       coff-i386.c).
+       (coff_m68k_lynxrtype_to_howto): sym argument may be NULL.
+       * coff-i386.c (coff_i386_rtype_to_howto): Likewise.
+       * coff-a29k.c (coff_a29k_relocate_section): Handle an r_symndx
+       value of -1, meaning an absolute reloc.
+
+       * ctor.c: Remove; obsolete.
+       * Makefile.in: Rebuild dependencies.
+       (BFD_LIBS): Remove ctor.o.
+       (CFILES): Remove ctor.c.
+       * libbfd.h: Rebuild.
+
+Mon Sep 12 01:58:47 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * elf32-hppa.c (elf32_hppa_relocate_section): If there was a link
+       error of some sort (for example, undefined symbols), then do not
+       apply any relocs, just notify the user of the errors.
+       (elf32_hppa_backend_begin_write_processing): Do not build a symbol
+       extension section for an executable (it's useless).
+       (elf32_hppa_link_output_symbol_hook): Do nothing if there was a
+       link error of some sort (for example, undefined symbols).
+       (elf32_hppa_read_symext_info): Kludge.  Turn off SEC_HAS_CONTENTS
+       for all the input symbol extension sections to keep the generic
+       BFD code happy.  Temporarily turn it on to read the contents of
+       the symbol extension section.
+
+Sun Sep 11 21:58:59 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * config/hppaosf.mh (RANLIB): Do not set.
+       * config/hppabsd.mh (RANLIB): Likewise.
+
+Sun Sep 11 22:50:49 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * cf-i386lynx.c: Remove #if 0 code.
+       (i386_lynxos_coff_object_p): Remove unused function.
+       (coff_bfd_link_add_symbols): Define.
+       (lynx_link_add_symbols): New static function.
+       * coffcode.h (coff_bfd_link_hash_table_create): If
+       coff_relocate_section is defined, only define this if not already
+       defined.
+       (coff_bfd_link_add_symbols, coff_bfd_final_link): Likewise.
+
+       * linker.c (_bfd_generic_final_link): Handle
+       bfd_indirect_link_order explicitly, rather than via
+       _bfd_default_link_order.
+       (set_symbol_from_hash): New static function, broken out of
+       _bfd_generic_link_write_global_symbol.
+       (_bfd_generic_link_write_global_symbol): Symbol setting code moved
+       to set_symbol_from_hash; call it.
+       (default_indirect_link_order): Add generic_linker argument.
+       Change all callers.  If false, set the generic symbols based on
+       the hash table entries.
+
+Fri Sep  9 11:51:49 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coffgen.c (coff_get_symtab): Reindented.  Removed commented out
+       call to bfd_constructor_entry.
+
+       Convert m68k COFF to use new COFF backend linker.
+       * coff-m68k.c (coff_relocate_section): Define.
+       * cf-m68klynx.c (coff_rtype_to_howto): Define.
+       (coff_m68k_lynx_rtype_to_howto): New static function.
+       * configure.in (m68kcoff_vec): Build cofflink.o.
+       (m68kcoffun_vec, m68klynx_coff_vec): Likewise.
+
+Thu Sep  8 16:20:38 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+       * coff-h8300.c (h8300_reloc16_extra_cases, case RELBYTE): Flag
+       overflows correctly.
+
+Wed Sep  7 19:01:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * libelf.h (struct elf_backend_data): Change second argument of
+       elf_backend_final_write_processing hook to boolean.
+       (struct elf_obj_tdata): Add linker field.
+       * elfcode.h (NAME(bfd_elf,write_object_contents)): Pass value of
+       tdata linker field to final_write_processing, rather than NULL.
+       (elf_bfd_final_link): Don't call final_write_processing hook.  Set
+       tdata linker field to true.
+       * elf32-mips.c (mips_elf_final_write_processing): Change type of
+       second argument to boolean.
+       * elf32-hppa.c (elf32_hppa_backend_final_write_processing):
+       Likewise.
+
+       * coff-go32.c (RTYPE2HOWTO): Fully parenthesize arguments.
+       * coff-i960.c (RTYPE2HOWTO): Likewise.
+       * coff-m88k.c (RTYPE2HOWTO): Likewise.
+       * coff-we32k.c (RTYPE2HOWTO): Likewise.
+
+       Make i386 COFF use new COFF backend linker.
+       * coff-i386.c (RTYPE2HOWTO): Fully parenthesize arguments.
+       (coff_relocate_section): Define.
+       (coff_i386_rtype_to_howto): New function.
+       * configure.in (i386coff_vec): Use cofflink.o.
+       (i386lynx_coff_vec): Likewise.
+
+       * coffcode.h (bfd_coff_backend_data): Add new field
+       _bfd_coff_rtype_to_howto.
+       (bfd_coff_rtype_to_howto): Define.
+       (coff_rtype_to_howto): Define to use RTYPE2HOWTO, if not already
+       defined.
+       (bfd_coff_std_swap_table): Initialize new field.
+       * cofflink.c (_bfd_coff_final_link): Allocate section_count + 1
+       section_info structures, since the target_index is 1 based.
+       (coff_link_input_bfd): Set *secpp to bfd_com_section_ptr for a
+       common symbol.  Adjust rel_hash by the output reloc count.
+       (_bfd_coff_generic_relocate_section): New function.
+       * libcoff-in.h (_bfd_coff_generic_relocate_section): Declare.
+       * libcoff.h: Rebuild.
+       * coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
+       * coff-mips.c (mips_ecoff_backend_data): Likewise.
+
+Tue Sep  6 23:28:52 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_bfd_derive_misc_symbol_info): Treat undefined code
+       symbols and undefined symbols which no type in the same manner
+       if the associated BFD symbol has BSF_FUNCTION set.  For a defined
+       symbol which no type, select a SOM type based on the flags of the
+       section containing the symbol.
+       (som_slurp_symbol_type): Set BSF_FUNCTION for undefined ST_STUB
+       or ST_CODE symbols (importing a non-function code symbol is
+       meaningless in SOM).
+       (som_set_reloc_info): Don't set "offset" to the section's vma; it
+       should always start at zero.
+
+Tue Sep  6 14:51:11 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       Add new style linker support to COFF backend.  a29k only for now.
+       * cofflink.c: New file.
+       * libcoff-in.h: Include bfdlink.h.
+       (obj_coff_external_syms, obj_coff_strings): Define accessor macro.
+       (obj_coff_sym_hashes): Define accessor macro.
+       (struct coff_tdata): Add fields external_syms, strings, and
+       sym_hashes.
+       (struct coff_link_hash_entry): Define.
+       (struct coff_link_hash_table): Define.
+       (coff_link_hash_lookup, coff_link_hash_traverse): Define.
+       (coff_hash_table): Define.
+       (_bfd_coff_link_hash_table_create): Declare.
+       (_bfd_coff_link_add_symbols, _bfd_coff_final_link): Declare.
+       * coffcode.h (bfd_coff_backend_data): Add fields _bfd_relsz,
+       _bfd_coff_swap_reloc_in, _bfd_coff_sym_is_global,
+       _bfd_coff_compute_section_file_positions,
+       _bfd_coff_relocate_section.
+       (bfd_coff_relsz, bfd_coff_swap_reloc_in): Define.
+       (bfd_coff_sym_is_global): Define.
+       (bfd_coff_compute_section_file_positions): Define.
+       (bfd_coff_relocate_section): Define.
+       (coff_mkobject_hook): Initialize obj_raw_syment_count and
+       obj_conv_table_size.
+       (coff_compute_section_file_positions): Set target_index of all
+       sections.  Set output_has_begun field.
+       (coff_write_object_contents): Don't set target_index; now done by
+       coff_compute_section_file_positions.  Remove obsolete handling of
+       scn_base and data_base.  Don't bother to check that target_index
+       is positive, since it always is.  Remove use of pad, which is
+       always zero.  Check obj_raw_syment_count, not bfd_get_symcount,
+       for the number of symbols, but only write them out if
+       bfd_get_symcount is non-zero.  Don't check obj_raw_syment_count
+       until after coff_write_symbols is called.
+       (coff_slurp_symbol_table): Use obj_raw_syment_count, not
+       bfd_get_symcount for the number of symbols.  Don't set
+       obj_conv_table_size.
+       (coff_sym_is_global): New static function or macro.
+       (coff_slurp_reloc_table): Call coff_swap_reloc_in, not
+       bfd_swap_reloc_in.
+       (coff_bfd_link_hash_table_create): If coff_relocate_section is
+       defined, define as _bfd_coff_link_hash_table_create.
+       (coff_bfd_link_add_symbols): Similar change.
+       (coff_bfd_final_link): Similar change.
+       (coff_relocate_section): Define as NULL if not defined.
+       (bfd_coff_std_swap_table): Initialize new fields.
+       * coffgen.c (coff_real_object_p): Don't set obj_raw_syment_count
+       and obj_conv_table_size here.
+       (coff_count_linenumbers): Reindent.  If bfd_get_symcount is zero,
+       add up the line numbers from the sections.
+       (coff_write_symbols): Set obj_raw_syment_count, not
+       bfd_get_symcount.
+       (coff_pointerize_aux): Don't pointerize a nonpositive x_endndx
+       field.
+       (coff_get_normalized_symtab): Use obj_raw_syment_count, not
+       bfd_get_symcount.
+       (coff_print_symbol): If auxp->fix_end, print x_endndx value.
+       * coffswap.h (coff_swap_reloc_in): Rename from bfd_swap_reloc_in.
+       Reindent.  Change argument type to  PTR.
+       * coff-a29k.c (coff_a29k_relocate_section): New static function.
+       (coff_relocate_section): Define.
+       * configure.in (a29kcoff_big_vec): Compile cofflink.o.
+       * coff-alpha.c (alpha_ecoff_backend_data): Initialize new fields.
+       * coff-mips.c (mips_ecoff_backend_data): Likewise.
+       * libcoff.h: Rebuilt.
+       * Makefile.in: Rebuilt dependencies.
+       (BFD32_BACKENDS): Add cofflink.o.
+       (CFILES): Add cofflink.c.
+
+Tue Sep  6 14:00:45 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * coffgen.c (coff_print_symbol, case bfd_symbol_print_all): Check
+       for section symbol, and print its aux fields with appropriate
+       labels.
+
+       * Makefile.in (ALL_MACHINES): Added cpu-arm.o.
+
+Sun Sep 04 17:58:10 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)
+
+       * aoutx.h (NAME(aout,machine_type)): Recognize the ARM processor.
+       * archures.c, config.bfd, configure.host, libaout.h, reloc.c,
+       targets.c: Add support for the ARM.
+       * cpu-arm.c, riscix.c, config/riscix.mh, config/riscix.mt: New files.
+
+       * aoutx.h (add_to_stringtable): Check that str isn't a NULL pointer.
+
+Fri Sep  2 14:10:30 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * reloc.c (enum bfd_reloc_code_real): Rewrote definition to use
+       new "chew" commands for simultaneous definition of enumerator and
+       enumerator name table.
+       (bfd_get_reloc_code_name): New function, for retrieving a symbolic
+       name associated with an enumerator.
+       * libbfd.h, bfd-in2.h: Regenerated.
+
+Tue Aug 30 21:24:54 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_write_fixups, case R_ENTRY): Handle case where no
+       unwind descriptor information is available.
+
+Tue Aug 30 11:43:30 1994  Eric Youngdale  (ericy@cais.cais.com)
+
+       * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add soname
+       argument, and use it to set DT_SONAME dynamic entry.
+       * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
+       (bfd_elf64_size_dynamic_sections): Update prototype.
+       * bfd-in2.h: Rebuilt.
+
+Fri Aug 26 15:47:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coffgen.c (coff_real_object_p): Set obj_raw_syment_count.
+       (coff_get_normalized_symtab): Verify obj_raw_syment_count, rather
+       than setting it.
+
+Thu Aug 25 10:44:53 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * archive.c (bsd_write_armap): Remove host dependencies.
+
+       * aoutx.h (add_to_stringtab): Check for _bfd_stringtab_add error
+       before adding BYTES_IN_WORD.
+
+       * coffgen.c (coff_find_nearest_line): Look for the best C_FILE,
+       not merely the first.
+
+       * coffgen.c (coff_write_alien_symbol): If we are not using the
+       symbol, clear the name so that it is not put in the string table.
+       From Antti.Miettinen@ntc.nokia.com.
+
+Wed Aug 24 11:49:19 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coffgen.c (coff_print_symbol): Cast pointer different to long
+       and use %ld to print it.
+       * osf-core.c (osf_core_core_file_p): Remove unused variable
+       dseccnt.
+       * ecoffswap.h (ecoff_swap_ext_out): If ECOFF_64, clear remaining
+       bytes in bits2.
+
+       * configure.host, config.bfd: Change i[34]86 to i[345]86.
+       * coffgen.c (coff_real_object_p): Set obj_conv_table_size here,
+       rather than waiting until coff_slurp_symbol_table.
+       (coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
+       From Antti.Miettinen@ntc.nokia.com.
+
+       * section.c (bfd_make_section_anyway): Fix failure check of
+       bfd_make_empty_symbol.  From Antti.Miettinen@ntc.nokia.com.
+
+       * aoutx.h (translate_to_native_sym_flags): Use the output_section
+       (and output_offset) if there is one.
+
+       * aoutx.h (aout_link_check_archive_element): Discard the symbols
+       if the archive element was not needed.
+
+       * aoutx.h (aout_get_external_symbols): Ensure that a zero string
+       index yields an empty string.
+       (aout_link_write_symbols): If info->keep_memory is false, use name
+       from original hash table entry, not from entry in *sym_hash.
+
+       * aoutx.h (struct aout_final_link_info): Add fields contents,
+       relocs, symbol_map and output_syms.
+       (NAME(aout,final_link)): Work out the largest section size, reloc
+       size, and number of symbols.  Use them to preallocate buffers that
+       are large enough for all cases.
+       (aout_link_input_bfd): Use preallocated symbol_map.
+       (aout_link_write_symbols): Remove symbol_map argument; use
+       preallocated symbol_map instead.  Change all callers.  Use
+       preallocated output_syms.
+       (aout_link_input_section): Remove symbol_map argument.  Change all
+       callers.  Use preallocated contents and relocs.
+       (aout_link_input_section_std): Remove symbol_map argument; use
+       preallocated symbol_map instead.  Change all callers.
+       (aout_link_input_section_ext): Likewise.
+
+Tue Aug 23 10:51:09 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * archive.c (_bfd_write_archive_contents): Don't update the
+       symbol map timestamp if there is no symbol map.  From
+       schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
+
+Mon Aug 22 12:26:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add _update_armap_timestamp.
+       (bfd_target): Add field _bfd_update_armap_timestamp.
+       * bfd.c (bfd_update_armap_timestamp): Define.
+       * bfd-in2.h: Rebuilt.
+       * libbfd-in.h (_bfd_noarchive_update_armap_timestamp): Define.
+       (_bfd_archive_bsd_update_armap_timestamp): Declare.
+       (_bfd_archive_coff_update_armap_timestamp): Define.
+       * libbfd.h: Rebuilt.
+       * archive.c (_bfd_write_archive_contents): Call
+       bfd_update_armap_timestamp instead of checking for a BSD archive
+       and calling bsd_update_armap_timestamp.
+       (_bfd_archive_bsd_update_armap_timestamp): Rename from
+       _bsd_update_armap_timestamp.  Don't assume that armap_datepos is
+       already set.
+       * aout-target.h (MY_update_armap_timestamp): Define if not already
+       defined.
+       * coff-rs6000.c (rs6000coff_update_armap_timestamp): Define.
+       * ieee.c (ieee_update_armap_timestamp): Define.
+       * libecoff.h (_bfd_ecoff_update_armap_timestamp): Define.
+       * oasys.c (oasys_update_armap_timestamp): Define.
+       * som.c (som_update_armap_timestamp): Define.
+
+       * hash.c: Copy string hash functions from aoutx.h.
+       * aoutx.h: String hash functions moved to hash.c.  Retain
+       simplified versions of add_to_stringtab and emit_stringtab.
+       Change all callers to use new function and structure names.
+       * libbfd-in.h (_bfd_stringtab_init, _bfd_stringtab_free): Declare.
+       (_bfd_stringtab_size, _bfd_stringtab_add): Declare.
+       (_bfd_stringtab_emit): Declare.
+       * libbfd.h: Rebuilt.
+
+Mon Aug 22 10:49:37 1994  Eric Youngdale  (ericy@cais.cais.com)
+
+       * i386linux.c (linux_add_one_symbol): Create a fixup for any
+       defined absolute symbol, not just GOT or PLT symbols.
+       (linux_tally_symbols): Correct handling of references to defined
+       symbols.
+
+Thu Aug 18 16:29:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       Get ld -x -r to handle a.out set symbols correctly.
+       * aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
+       BFD, pad the .data section up to the VMA of the .bss section.
+       (aout_link_add_symbols): If a set symbol does not get modified,
+       treat it as a local symbol.
+       (aout_link_write_symbols): Set the value of set symbols
+       correctly.  Don't discard set symbols even if discarding local
+       symbols.
+       (aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
+       since it can now happen for set symbols.
+
+       * elfcode.h (elf_fake_sections): Just check for ".rela" and
+       ".rel", not ".rela." and ".rel."; make this work by checking
+       use_rela_p.
+       * elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
+       ".rel."
+       (elf_i386_size_dynamic_sections): Likewise.
+       (elf_i386_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_check_relocs): Just check for
+       ".rela", not ".rela."
+       (elf32_sparc_size_dynamic_sections): Likewise.
+       (elf32_sparc_relocate_section): Likewise.
+
+Wed Aug 17 16:54:18 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * linker.c (_bfd_generic_link_add_archive_symbols): Initialize
+       PASS to the old value + 1.
+
+       * coffgen.c (coff_get_normalized_symtab): If a C_FILE symbol has
+       no aux entries, use the symbol name as the file name.
+       (coff_find_nearest_line): Look for the right C_FILE symbol, rather
+       than always using the first one.  If there is a debugging symbol
+       after a function symbol, skip it.  Add the section VMA to the line
+       offset, since it was subtracted out in coff_slurp_line_table.
+
+Tue Aug 16 16:53:00 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_prep_headers): If writing some form of an executable,
+       allocate and attach an exec header to the BFD private data.
+       (som_begin_writing): Don't fill fields of the exec header based
+       on BFD private data here (like the exec flags).  Do not write
+       the exec header here.
+       (som_write_headers): Instead do it here.
+       * som.h (struct somdata): New field "exec_hdr" for the executable
+       file header.
+       (obj_som_exec_hdr): New accessor macro.
+
+Tue Aug 16 00:12:31 1994  Eric Youngdale  (ericy@cais.cais.com)
+
+       * i386linux.c (linux_link_create_dynamic_sections): Create section
+       named .linux-dynamic, not .dynamic.
+       (linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
+       (bfd_linux_size_dynamic_sections): Likewise.
+       (linux_finish_dynamic_link): Likewise.
+
+Mon Aug 15 12:16:56 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coffgen.c (STRING_SIZE_SIZE): Define.
+       (coff_fix_symbol_name): Use STRING_SIZE_SIZE, not 4.
+       (coff_write_symbols, build_string_table): Likewise.
+       (coff_get_normalized_symtab): Likewise.
+
+       * libcoff-in.h (obj_symbol_slew): Don't define.
+       (struct coff_tdata): Remove unused fields index_slew, raw_linenos,
+       and flags.
+       * libcoff.h: Rebuilt.
+       * coffcode.h (coff_mkobject): Don't initialize raw_linenos.
+       (coff_mkobject_hook): Don't initialize flags.
+
+       * aout-target.h (MY_zmagic_contiguous): Define as 0 if not already
+       defined.
+       (MY(backend_data)): Use MY_zmagic_contiguous, not hardcoded 0.
+       * i386linux.c (MY_zmagic_contiguous): Define.
+
+       * elfcode.h (bfd_section_from_shdr): If a SHT_SYMTAB section in a
+       shared object has SHF_ALLOC set, create a BFD section for it.
+       (elf_section_from_bfd_section): There may be a BFD section for a
+       SHT_SYMTAB section.
+
+       * coffcode.h (styp_to_sec_flags): Add name argument.  If no flags
+       are recognized, chose section flags based on the name.
+       (bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add
+       name argument.
+       (bfd_coff_styp_to_sec_flags_hook): Add name argument.
+       (coff_compute_section_file_positions): Don't adjust the section
+       position by COFF_PAGE_SIZE unless SEC_ALLOC is set.
+       * libcoff.h: Rebuilt.
+       * coffgen.c (make_a_section_from_file): Pass section name to
+       bfd_coff_styp_to_sec_flags_hook.
+       * ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name
+       argument.
+       * libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to
+       prototype.
+
+Fri Aug 12 11:22:40 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elfcode.h (section_from_elf_index): Correct check for invalid
+       section index.
+
+       * elfcode.h (elf_link_add_object_symbols): If there is no symbol
+       table, try using the dynamic symbol table.  From Eric Youngdale
+       <ericy@cais.cais.com>.
+
+       * configure.host (sparc-*-solaris2*): Use solaris2, not sysv4.
+       The linker depends upon configuring for solaris2.
+       * hosts/solaris2.h: New file; include hosts/sysv4.h.
+       * config/solaris2.mh: New file; copy of config/sysv4.mh.
+
+Wed Aug 10 13:09:38 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * aoutx.h (adjust_z_magic): Make sure data section is padded to
+       page boundary when the VMA is set by the calling program.  From
+       Eric Youngdale <ericy@cais.cais.com>.
+
+Mon Aug  8 17:18:49 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       Update to ns32k support, from Ian Dall (dall@hfrd.dsto.gov.au).
+       * aout-ns32k.c: Add declarations that were in aout-ns32k.h, change
+       declarations to traditional form.
+       (MY_reloc_howto, MY_put_reloc): Change from macro to function.
+       (ns32k_relocate_contents): New function.
+       * aout-ns32k.h: Remove.
+       * cpu-ns32k.c: Add declarations that were in aout-ns32k.h, change
+       declarations to traditional form.
+       (ns32k_final_link_relocate): Call ns32k_relocate_contents.
+       * netbsd532.c: Reformat to standards, add copyright notice.
+       (ARCH): Don't define.
+       (aout-ns32k.h): Don't include.
+       * pc532-mach.c: Ditto.
+
+Mon Aug  8 17:55:52 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coff-i960.c (coff_i960_relocate): Don't try to convert relocs
+       against common symbols.
+
+Sat Aug  6 22:27:30 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * irix-core.c (irix_core_core_file_p):  Ignore sections that
+       are not contained in the core file.
+
+Thu Aug  4 11:32:23 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coff-m68k.c (m68k_reloc_type_lookup): New function.
+       (coff_bfd_reloc_type_lookup): Define.
+       * cf-m68klynx.c (_bfd_m68kcoff_reloc_type_lookup): Define.
+
+       * elfcode.h (elf_bfd_final_link): Force the vma of sections which
+       do not have SEC_ALLOC set to be 0.  This is needed to handle
+       relocs against debugging sections.
+
+Wed Aug  3 16:45:41 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * coff-i960.c (coff_i960_relocate): Rewrote to change relocs
+       against locally defined symbols into relocs against section
+       symbols, for VxWorks 5.1.
+
+Wed Aug  3 10:34:37 1994  Eric Youngdale  (ericy@cais.cais.com)
+
+       * i386linux.c (linux_add_one_symbol): Only handle
+       SHARABLE_CONFLICTS specially if BSF_CONSTRUCTOR is set.  Set hashp
+       for a GOT or PLT symbol.  Set jump field of fixup for a PLT symbol.
+       (linux_tally_symbols): Check section of real symbol.  When looking
+       for a builtin fixup, check builtin and jump flags.  Create no more
+       than one fixup, and always create one if the real symbol is in the
+       absolute section.  Only strip absolute symbols.
+
+Wed Aug  3 05:08:24 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+       * coffcode.h (coff_write_object_contents): set internal_a.magic to
+       LYNXCOFFMAGIC whenever 68k, SPARC or i386 LynxOS
+       (yes, they have the same magic number!)
+
+Tue Aug  2 10:43:21 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * hp300hpux.c (BMAGIC): Define as HPUX_DOT_O_MAGIC, to make test
+       in aoutx.h work correctly.
+
+       * coff-i960.c (coff_i960_relocate): New function.
+       (howto_rellong, howto_iprmed): Use it as special_function.
+
+       * libbfd-in.h: Move declarations of bfd_read, bfd_write, bfd_seek,
+       bfd_tell, bfd_flush, and bfd_stat from here...
+       * bfd-in.h: ...to here, to make them visible to programs which
+       know more about the object file format than BFD does.
+       * libbfd.h, bfd-in2.h: Rebuilt.
+
+Mon Aug  1 17:55:53 1994  Fred Fish  (fnf@cygnus.com)
+
+       * ptrace-core.c (ptrace_unix_core_file_p):  Convert zalloc usage
+       to bfd_zalloc.
+
+Mon Aug  1 12:04:40 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elf64-sparc.c (ELF_MAXPAGESIZE): Define.
+
+       ELF linker patches from Eric Youngdale <ericy@cais.cais.com>.
+       * elfcode.h (elf_link_create_dynamic_sections): Set type of
+       _DYNAMIC to STT_OBJECT.
+       (NAME(bfd_elf,record_link_assignment)): Always create hash table
+       entry.  Set type to STT_OBJECT.
+       (elf_link_output_extsym): Don't set type of weak defined symbol to
+       STB_WEAK if symbol was referenced.
+       (map_program_segments): Check DYNAMIC as well as EXEC_P.
+       (assign_file_positions_except_relocs): Likewise.
+       * elf32-i386.c (elf_i386_create_dynamic_sections): Set type of
+       _GLOBAL_OFFSET_TABLE to STT_OBJECT.
+       (elf_i386_check_relocs): Ignore local PLT32 relocs.
+       (elf_i386_relocate_section): Treat local PLT32 relocs as PC32.
+
+       * elfcode.h (elf_adjust_dynamic_symbol): Correct weak symbol
+       handling again.
+
+       * elfcode.h (elf_slurp_reloc_table): Don't try to read the relocs
+       if there aren't any.
+
+       * configure.host (sparc-*-solaris2*): Use sysv4, not solaris2.
+       * hosts/solaris2.h: Remove.
+       * config/solaris2.mh: Remove.
+
+Sun Jul 31 14:27:04 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * elf32-hppa.c, elf32-hppa.h: Update comment reflecting which
+       HPPA ELF spec the code implements.
+
+Tue Jul 26 17:38:01 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * cpu-i960.c (MAX_ARCH): New macro.
+       (compatible): Use it in computing array bounds.  Put comma after
+       last entry in array, for regularity.
+       (arch_info_struct): Adjust spacing for easier reading.
+
+       * coff-i960.c (howto_rellong, howto_iprmed, howto_optcall): Use
+       HOWTO macro.
+
+       start-sanitize-i960xl
+       * cpu-i960.c (XL): Define as bfd_mach_i960_xl.
+       (scan_960_mach): Recognize xl machine.
+       (MAX_ARCH): Define to be XL.
+       (compatible): Add XL row to array.
+       (arch_info_struct): Add XL entry.
+
+       * archures.c (bfd_mach_i960_xl): New macro.
+       * bfd-in2.h: Regenerated.
+
+       * coffcode.h (coff_set_arch_mach_hook): For F_I960XL, set machine
+       to bfd_mach_i960_xl.
+       (coff_set_flags): For bfd_mach_i960_xl, set F_I960XL.
+       end-sanitize-i960xl
+
+Tue Jul 26 11:04:00 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elfcode.h (elf_adjust_dynamic_symbol): When handling a weak
+       symbol, correct check to see whether the equivalent normal symbol
+       was referenced.
+
+       Add support for creating shared libraries under i386 ELF and SPARC
+       ELF.  Based on patches by Eric Youngdale <ericy@cais.cais.com>.
+       * libelf.h (struct elf_link_hash_entry): Remove copy_offset field.
+       Add got_offset and plt_offset fields.
+       (ELF_LINK_HASH_REF_DYNAMIC_MULTIPLE): Don't define.
+       (ELF_LINK_HASH_DEF_DYNAMIC_MULTIPLE): Don't define.
+       (ELF_LINK_HASH_NEEDS_COPY): Define.
+       (struct elf_backend_data): Add check_relocs field.
+       (struct bfd_elf_section_data): Change relocs from PTR to
+       Elf_Internal_Rela *.
+       (struct elf_obj_tdata): Add local_got_offsets field.
+       (elf_local_got_offsets): Define accessor macro.
+       (bfd_elf32_link_create_dynamic_sections): Declare.
+       (bfd_elf32_link_record_dynamic_symbol): Declare.
+       (bfd_elf64_link_create_dynamic_sections): Declare.
+       (bfd_elf64_link_record_dynamic_symbol): Declare.
+       * elfcode.h (elf_slurp_reloc_table): Don't use the section data
+       relocs field.
+       (elf_link_record_dynamic_symbol): Make globally visible.  Use
+       macro to rename to NAME(bfd_elf,link_record_dynamic_symbol).
+       (elf_link_add_object_symbols): If creating a shared library, put
+       make all local symbols dynamic.  Don't bother with the
+       DYNAMIC_MULTIPLE flags.  Call the check_relocs backend function if
+       it is defined.
+       (elf_link_create_dynamic_sections): Make globally visible.  Use
+       macro to rename to NAME(bfd_elf,link_create_dynamic_sections).  If
+       creating a shared library, make sure that _DYNAMIC is added as a
+       dynamic symbol.
+       (elf_link_read_relocs): New function.
+       (NAME(bfd_elf,record_link_assignment)): If creating a shared
+       library, always create symbols, and always make them dynamic.
+       (elf_bfd_final_link): Permit creation of shared libraries.
+       (elf_link_input_bfd): Use elf_link_read_relocs to get the relocs.
+       * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize
+       copy_offset.  Initialize got_offset and plt_offset.
+       * elf32-target.h (elf_backend_check_relocs): Define as 0 if not
+       defined.
+       (elf32_bed): Initialize check_relocs field.
+       * elf64-target.h (elf_backend_check_relocs): Define as 0 if not
+       defined.
+       (elf64_bed): Initialize check_relocs field.
+       * elf32-i386.c (elf_howto_table): Change R_386_PLT32 and
+       R_386_GOTPC to be pc_relative and pcrel_offset.
+       (elf_i386_pic_plt0_entry): Define.
+       (elf_i386_pic_plt_entry): Define.
+       (elf_i386_create_dynamic_sections): Create a .got.plt section, and
+       define _GLOBAL_OFFSET_TABLE_ at the start of it.  If creating a
+       shared library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
+       dynamic symbol.  Don't create .rel.bss if creating a shared
+       library.
+       (elf_i386_check_relocs): New function.
+       (elf_i386_adjust_dynamic_symbol): Don't make a PLT entry if the
+       symbol already has one.  When making a PLT entry, set plt_offset.
+       Don't create a copy reloc when creating a shared library.  Don't
+       set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
+       (elf_i386_allocate_dynamic_section): Remove.
+       (elf_i386_size_dynamic_sections): Look through all the sections
+       rather than assuming we know their names.  Remove any empty reloc
+       or plt sections.  Only add a DT_DEBUG entry if not creating a
+       shared library.  Only add a DT_PLTGOT entry if there is a PLT.
+       Add a DT_TEXTREL entry if required.
+       (elf_i386_relocate_section): Permit undefined symbols when
+       creating a shared library.  Handle the special relocation types
+       specially.
+       (elf_i386_finish_dynamic_symbol): Create a PLT entry if plt_offset
+       is set.  If creating a shared library, produce a PIC PLT entry.
+       Only mark a PLT symbol as undefined if it was not defined by a
+       regular object file.  Create a GOT entry if got_offset is set.
+       Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
+       (elf_i386_finish_dynamic_sections): Change the handling of
+       DT_RELSZ to simply subtract out the size of .rel.plt.  If creating
+       a shared library, produce PIC PLT code.
+       (elf_backend_check_relocs): Define.
+       * elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT10,
+       R_SPARC_GOT22, and R_SPARC_PC10 to not warn about reloc overflow.
+       (elf32_sparc_create_dynamic_sections): If creating a shared
+       library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
+        dynamic symbol, and set the type to STT_OBJECT.  Likewise for
+        _PROCEDURE_LINKAGE_TABLE_.  Don't create .rel.bss if creating a
+        shared library.
+       (elf32_sparc_check_relocs): New function.
+       (elf32_sparc_adjust_dynamic_symbol): Don't make a PLT entry if the
+       symbol already has one.  When making a PLT entry, set plt_offset.
+       Don't create a copy reloc when creating a shared library.  Don't
+       set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
+       (elf32_sparc_allocate_dynamic_section): Remove.
+       (elf32_sparc_size_dynamic_sections): Look through all the sections
+       rather than assuming we know their names.  Only add a DT_DEBUG
+       entry if not creating a shared library.  Add a DT_TEXTREL entry if
+       required.
+       (elf32_sparc_relocate_section): Permit undefined symbols when
+       creating a shared library.  Handle the special relocation types
+       specially.
+       (elf32_sparc_finish_dynamic_symbol): Create a PLT entry if plt_offset
+       is set.  Only mark a PLT symbol as undefined if it was not defined
+       by a regular object file.  Create a GOT entry if got_offset is
+       set.  Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
+       (elf32_sparc_finish_dynamic_sections): Store dynobj in a local
+       variable.
+       (elf_backend_check_relocs): Define.
+
+Mon Jul 25 12:21:07 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * configure.in (pc532mach_vec): Change to pc532machaout_vec.
+       * config.bfd (ns32k-*-netbsd*): Use ns32k-nbsd as bfd_name.
+       * Makefile.in (ALL_MACHINES): Add cpu-ns32k.o.
+       (BFD32_BACKENDS): Add aout-ns32k.o, netbsd532.o, m88kmach3.o,
+       pc532-mach.o.
+       * targets.c (pc532machaout_vec): Use instead of pc532mach_vec.
+       * config/pc532-mach.mt (DEFAULT_VECTOR): Ditto.
+       (SELECT_VECS): Remove.
+       * config/ns32k-nbsd.mt: New file, was ns32k-netbsd.mt.
+       * config/ns32k-netbsd.mt: Remove, name too long.
+
+Fri Jul 22 11:07:14 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * linker.c (generic_link_check_archive_element): When changing a
+       symbol to common, set the alignment.
+       (_bfd_generic_link_add_one_symbol): When creating a common symbol,
+       set the alignment.
+       * aoutx.h (aout_link_check_ar_symbols): When changing a symbol to
+       common, set the alignment.
+       (aout_link_add_symbols): Restrict the alignment of a common symbol
+       to the alignment power given by the architecture.
+       * libelf.h (struct elf_link_hash_entry): Remove align field.  Add
+       copy_offset field.
+       * elfcode.h (elf_link_add_object_symbols): Store alignment in
+       new bfd_link_hash_entry field, not in elf_link_hash_entry field.
+       (elf_link_output_extsym): Similar change when getting alignment.
+       * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize align.  Do
+       initialize copy_offset.
+       * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use copy_offset
+       field rather than align field.  Get alignment using bfd_log2
+       rather than switch.
+       * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
+       * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use copy_offset,
+       not align.
+       * elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Likewise.
+
+       * aoutx.h (NAME(aout,some_aout_object_p)): Just check
+       STAT_FOR_EXEC, don't check MACH.
+       * m88kmach3.c (MACH): Don't define.
+       * config/i386-mach3.mt (TDEFINES): Define STAT_FOR_EXEC.
+       * config/m88k-mach3.mt (TDEFINES): Likewise.
+       * config/mips-mach3.mt (TDEFINES): Likewise.
+
+Thu Jul 21 17:24:31 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * i386mach3.c: Reverted to version from before Jul 5 1994 changes.
+
+Thu Jul 21 12:26:01 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * reloc.c (struct reloc_howto_struct): Remove special_function1.
+       It's the wrong way to do things.
+       (HOWTO): Change accordingly.
+       (HOWTO2): Remove.
+       (_bfd_final_link_relocate): Remove references to
+       special_function1.
+       * bfd-in2.h: Rebuilt.
+       * aoutx.h (aout_link_input_section_std): Remove references to
+       special_function1.
+       (aout_link_reloc_link_order): Likewise.
+
+Wed Jul 20 15:46:44 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add rpath
+       argument.  If it is not NULL, use it to set DT_RPATH.
+       * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
+       (bfd_elf64_size_dynamic_sections): Likewise.
+       * bfd-in2.h: Rebuilt.
+
+Sat Jul 16 21:10:39 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elfcode.h (elf_get_dynamic_symtab_upper_bound): If there is no
+       dynamic symtab, return error.
+
+       * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Define.
+       * elfcode.h (elf_link_add_object_symbols): If symbol is defined as
+       weak, set ELF_LINK_HASH_DEFINED_WEAK.
+       (elf_link_output_extsym): If symbol is defined as weak, mark it
+       STB_WEAK.
+
+       * libelf.h (struct bfd_elf_section_data): Add relocs field.
+       (shdr_name): Remove; unused.
+       * elfcode.h (elf_slurp_reloc_table): Rewrote to handle both REL
+       and RELA relocs.  Free up the unswapped relocs.  Permit the relocs
+       to be cached in the section_data.  Correct the reloc address.
+       (elf_slurp_reloca_table): Remove.
+       (elf_canonicalize_reloc): Rewrote.
+       (elf_link_input_bfd): Permit the relocs to be cached in the
+       section data.
+
+Sat Jul 16 13:55:38 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * config.bfd (m88*-harris-cxux*): Recognize.
+       * hosts/harris.h (POSIX_UTIME, HAVE_PROCFS): Define.
+
+       * configure.host (m68*-atari-sysv4*): New host.
+       (m68*-cbm-sysv4*): Use m68kv4 instead of amix.
+       * hosts/amix.h: Remove.
+       * hosts/m68kv4.h: New file, was amix.h.
+
+Thu Jul 14 15:12:24 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * reloc.c (enum bfd_reloc_code_real, bfd_type, struct
+       reloc_howto_struct, reloc_howto_type, HOWTO, HOWTO2): Copied
+       changes over from bfd-in2.h so they get generated properly next
+       time someone runs "make headers".
+       * bfd-in2.h: Rebuilt.
+
+       * targets.c (netbsd532_vec, pc532mach_vec): Declare const.
+       (m88kmach3_vec): Restore deleted declaration.
+
+       * configure.in: Alphabetize target vector names.
+
+       * config/pc532mach.mh: New file.
+       (HDEPFILES, HDEFINES): Define here.
+       * config/pc532-mach.mt (HDEPFILES, HDEFINES): Deleted.
+       * config/ns32k-netbsd.mt (HDEPFILES, HDEFINES): Deleted.
+
+       Sun Jul 10 00:04:20 1994  Ian Dall  (dall@hfrd.dsto.gov.au)
+
+       * pc532-mach.c: New File. pc532-mach a.out format.
+
+       * netbsd532.c: New file. pc532-netbsd532 a.out format.
+
+       * hosts/pc532mach.h: New file. pc532-mach host support.
+
+       * cpu-ns32k.c: New file. ns32k support cpu specific code rather
+       than format specific code.
+
+       * config/pc532-mach.mt: New file. Support for pc532-mach target.
+
+       * config/ns32k-netbsd.mt: New file. Support for netbsd532 target.
+
+       * aout-ns32k.c, aout-ns32k.h: New files supporting aout format for
+       ns32k series. 
+
+       * targets.c: Add netbsd532_vec and pc532machaout_vec into
+       bfd_target_vector array. Move netbsd386_vec to alphabetic order
+       location.
+
+       * reloc.c (_bfd_final_link_relocate) Add support for
+       special_function1 in howto.
+
+       * libaout.h: add M_NS32032, M_NS32532, M_532_NETBSD entries in
+       machine_type enum.
+
+       * configure.in: add pc532mach_vec and netbsd532_vec entries.
+
+       * config.bfd: add pc532mach host entries. Use for both
+       ns32k-pc532-mach and ns32k-pc532-netbsd.
+
+       * config.bfd: it doesn't work to use i386-mach3 for ns32k*-*-mach.
+       add ns32k-pc532-mach* and ns32k-*-netbsd* entries.
+
+       * bfd-in2.h: Add ns32k specific relocations to bfd_reloc_code_real
+       enum.
+
+       * bfd-in2.h: Add special_function1 to struct howto. Change HOWTO
+       and NEWHOWTO macros to make special_function1 NULL. Neww HOWTO2
+       macro.
+
+       * bfd-in2.h: Split definition of struct reloc_howto_struct
+       and corresponding typedef into two statements.
+
+       * bfd-in2.h: Add entry bfd_arch_ns32k to bfd_architecture enum.
+
+       * archures.c: Add bfd_ns32k_arch prototype, and entry in
+       archures_init_table. 
+
+       * aoutx.h (aout_link_reloc_link_order): Allow for target dependent
+       MY_put_reloc macro. Allow for target dependent special_function1
+       to apply the relocation. 
+
+       * aoutx.h (aout_link_input_section_std): Allow for target
+       dependent determination of reloc howto. Allow for target dependent
+       special_function1 to apply the relocation.
+
+       * aoutx.h (get_reloc_upper_bound): Detect bss and return 0.
+
+       * aoutx.h (slurp_reloc_table): Detect bss and succesfully read
+       zero reloc entries.
+
+       * aoutx.h (machine_type): Add bfd_arch_ns32k case.
+
+       * aoutx.h: Stat to determine executable status if STAT_FOR_EXEC
+       is defined (not just MACH). Use fstat instead of stat and check
+       for fstat error.
+
+       * aoutx.h: Allow target dependent swap_std_reloc_{in,out}.
+
+       * aoutx.h: Allow CTORS reloc info to be in target dependent reloc
+       table.
+
+       * aout-target.h: Apply SWAP_MAGIC (if defined) after
+       swap_exec_header_in, otherwise we have magic in the wrong order.
+
+Thu Jul 14 11:47:27 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * coff-sparc.c (sparccoff_vec): Have leading underscores.
+
+Tue Jul 12 12:08:10 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * aix386-core.c, aoutf1.h, cisco-core.c, elfcode.h, hppabsd-core.c,
+       hpux-core.c, irix-core.c, lynx-core.c, osf-core.c, ptrace-core.c,
+       rs6000-core.c, trad-core.c:  Remove SEC_ALLOC flag from .reg
+       sections, .reg sections are not allocated and contain debug
+       information only.
+       * osf-core.c (make_bfd_asection, osf_core_core_file_p):  Use
+       bfd_make_section_anyway instead of building unique section names.
+
+Tue Jul 12 11:41:22 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * libelf.h (bfd_elf32_swap_symbol_in): Declare.
+       (bfd_elf32_swap_symbol_out): Declare.
+       (bfd_elf64_swap_symbol_in, bfd_elf64_swap_symbol_out): Declare.
+       * elf32-hppa.c (elf32_hppa_args_hash_table_init): Correct cast.
+
+       * aout-encap.c (ARCH): Don't define.  Obsolete.
+       * aout0.c, aoutx.h, gen-aout.c, hp300bsd.c, hp300hpux.c: Likewise.
+       * i386aout.c, i386bsd.c, i386dynix.c, i386linux.c: Likewise.
+       * i386lynx.c, m68klynx.c, mipsbsd.c, netbsd386.c: Likewise.
+       * newsos3.c, sparclynx.c, sunos.c: Likewise.
+
+Mon Jul 11 20:08:23 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * section.c (STD_SECTION): Make the sixth argument boolean, not
+       the seventh.  From gary@tuva.pacsemi.oz.au (gary kopff).
+
+Sun Jul 10 09:12:02 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+       * aoutx.h (bfd_free_cached_info): Change name of FREE to BFCI_FREE
+       in order not to collide with LynxOS's definition of FREE in
+       /usr/include/sys/proc.h
+
+Thu Jul  7 14:18:06 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * reloc.c (bfd_perform_relocation): Don't clobber the relocation
+       value for coff-Intel-little or coff-Intel-big.  Hack upon hack.
+
+Thu Jul  7 10:10:34 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * aoutx.h (howto_table_std):  Add entry for GOT relocations
+       which are present in sun3 shared libraries, to avoid assertions
+       when reading the dynamic relocations.
+
+Thu Jul  7 10:19:20 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.h (R_HPPA_COMPLEX): Fix dumb typo. 
+
+Wed Jul  6 19:21:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * hosts/sysv4.h (qsort, strtol): Don't declare.
+
+       * elfcode.h (elf_link_output_sym): Don't call output_symbol_hook
+       if it is NULL.
+
+       * elf32-mips.c (mips_elf_final_write_processing): Add ignored info
+       argument to correspond to recent libelf.h change.
+
+Wed Jul  6 00:48:57 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * coff-alpha.c (alpha_ecoff_mkobject_hook):  New hook to
+       additionally copy object type information from the alpha file
+       header to the BFD flags.
+       (alpha_ecoff_backend_data):  Use it.
+       (ecoffalpha_little_vec):  Add DYNAMIC to object_flags.
+       * aout64.c:  Fix typo in conditional QMAGIC definition.
+
+Wed Jul  6 00:13:17 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * hppabsd-core.c (hppabsd_core_core_file_p): Sanity check the
+       value of clicksz to help weed out non HPPA BSD core files.
+
+Tue Jul  5 13:26:02 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       Mach 3 support.
+       * config.bfd (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*):
+       New targets.
+       * configure.host (i[34]86-*-mach3*, ns32k-*-mach3*): Recognize
+       "mach3" instead of "mach".
+       (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*): New hosts.
+       * targets.c (m88kmach3_vec): New target vector.
+       (bfd_target_vector): Add i386mach3_vec and m88kmach3_vec, but
+       inside #if 0.
+       * aoutx.h (some_aout_object_p) [MACH]: Recognize executables by
+       checking for execute permission, instead of looking at entry
+       point.
+       * i386mach3.c: Update, define MACH, N_TXTOFF, N_TXTADDR,
+       N_SHARED_LIB, don't include aout/*.h files, etc.
+       * m88kmach3.c: New file, m88k Mach 3 target.
+       * config/m88k-mach3.mt, config/mips-mach3.mt: New files, target
+       makefile fragments.
+       * config/i386mach3.mh, config/m88kmach3.mh, config/mipsmach3.mh:
+       New files, host makefile fragments.
+       * hosts/m88kmach3.h, hosts/mipsmach3.h: New files, host definitions.
+
+Tue Jul  5 13:56:52 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * elfcode.h (swap_out_syms): Get alignment of common symbol from
+       st_value field of saved ELF symbol information, if there is any.
+
+Mon Jul  4 19:13:32 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.h (R_HPPA_COMPLEX): Define.
+       * elf32-hppa.h (R_HPPA_COMPLEX): Define.
+       (elf32_hppa_reloc_type): Delete R_PARISC_STUB_CALL_17.
+
+Fri Jul  1 12:07:41 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * Support code for enabling the new style linker for PA ELF.
+       * elfcode.h (swap_symbol_in, swap_symbol_out): Externalize.
+       (elf_compute_section_file_positions): Pass link_info to
+       the begin_write_processing hook.
+       (bfd_elf_write_object_contents): Pass NULL for new link_info
+       argument to final_write_processing hook.
+       (elf_link_output_sym): Accept new "input_section" argument for
+       the symbols's input section.  All callers changed.  Call the
+       link_output_symbol_hook if it's defined.
+       (elf_bfd_final_link): Call the final_write_processing hook if
+       it's defined.
+       * libelf.h (elf_backend_link_output_symbol_hook): Declare.
+       (elf_backend_begin_write_processing): Add new "info" argument.
+       (elf_backend_final_write_processing): Likewise.
+       * elf32-target.h (elf_backend_link_output_symbol_hook): Provide
+       a default definition.
+       (elf32_bed): Add elf_backend_link_output_symbol_hook.
+       * elf64-target.h: Likewise.
+       
+       * Major rework of the PA ELF code.  Uses the new style BFD
+       linker, major cleanups.
+       * hppa_stubs.h: Rewrite from scratch.  Much smaller and simpler.
+       * elf32-hppa.h: Delete all symbol extension related code.
+       (hppa_look_for_stubs_in_section): Delete decl.
+       (elf32_hppa_size_stubs, elf32_hppa_build_stubs): New decls.
+       * elf32-hppa.c: Symbol extension stuff moved form elf32-hppa.h
+       into elf32-hppa.c.  Do not include aout64.h.
+       (typdef hppa_stub_type): Delete.
+       (elf32_hppa_stub_name_list_struct): Delete.
+       (elf32_hppa_stub_description_struct): Delete.
+       (arg_reloc_type): Use simpler enumerations.  All references changed.
+       (arg_location, arg_reloc_relocation): Likewise.
+       (elf32_hppa_symextn_map_struct): Delete.
+       (get_symbol_value): Delete.
+       (elf32_hppa_get_sym_extn): Delete.
+       (find_stubs, new_stubs, type_of_mismatch): Delete.
+       (find_stub_by_name, add_stub_by_name): Delete.
+       (hppa_elf_stub_finish, hppa_elf_stub_reloc): Delete.
+       (hppa_elf_arg_reloc_needed): Renamed.  Simplify.
+       (hppa_elf_build_linker_stub, hppa_elf_create_stub_sec): Delete.
+       (hppa_elf_long_branch_needed_p): Delete.
+       (hppa_look_for_stubs_in_section): Delete.
+       (hppa_elf_get_section_contents): Delete.
+       (elf32_hppa_backend_symbol_processing): Delete.
+       (elf32_hppa_backend_section_processing): Delete.
+       (elf32_hppa_backend_section_from_shdr): Delete.
+       (elf32_hppa_backend_fake_sections): Delete.
+       (elf32_hppa_backend_section_from_bfd_section): Delete.
+       (NEW_INSTRUCTION): Delete.
+       (CURRENT_STUB_OFFSET): Delete.
+       (elf32_hppa_relocate_section): New function.
+       (elf32_hppa_bfd_final_link_relocate): New function.
+       (elf32_hppa_size_symext): New function.
+       (elf32_hppa_link_output_symbol_hook): New function.
+       (elf32_hppa_read_symext_info): New function.
+       (elf32_hppa_add_symbol_hook): New function.
+       (elf32_hppa_name_of_stub): New function.
+       (elf32_hppa_size_of_stub): New function.
+       (elf32_hppa_build_one_sub): New function.
+       (elf32_hppa_build_stubs): New function.
+       (elf32_hppa_size_stubs): New function.
+       (linker, stub and argument hash tables): Add appropriate
+       structures, definitions and functions to implement all three
+       hash tables.
+       (hppa_elf_relocate_insn): Don't need argument location information
+       in this function.
+       (add_entry_to_symext_chain): Accept a symbol's argument location
+       information rather than the symbol itself.  All callers changed.
+       (hppa_elf_gen_reloc_type): Simplify.
+       (hppa_elf_set_section_contents): Stub section is no longer special.
+       (hppa_elf_reloc): Greatly simplify.
+       (elf32_hppa_begin_write_processing): Accept link_info argument.
+       Handle being called from the BFD backend linker.
+       (elf32_hppa_final_write_processing): Likewise.
+       (elf_hppa_tc_make_sections): No longer call stub_finish.
+       
+Mon Jun 27 18:07:06 1994  Steve Chamberlain  (sac@cirdan.cygnus.com)
+
+       * section.c (bfd_get_section_contents): Put in parens to get
+       precedence right.
+
+Sun Jun 26 18:08:29 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * libelf.h (relocate_section): New argument "output_names" added
+       to prototype.
+       * elfcode.h (elf_link_input_bfd): New argument "output_names"
+       added to prototype of relocate_section.  Pass the output symbol
+       names to relocate_section.
+       * elf32-i386.c (elf_i386_relocate_section): Use "output_names" to
+       determine the name of a local symbol.
+       * elf32-mips.c (mips_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+
 Fri Jun 24 08:15:42 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
        Add Solaris BCP (the part of Solaris which allows it to run