* aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 48f433fdc41049148304f6fd5e1b3c3c7180ba25..f43cfe8c67461e842517cc3f0265811fa9fab135 100644 (file)
+Mon Jun 13 14:20:07 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
+       machine type of 68000.
+       * aoutx.h (NAME(aout,machine_type)): Add new argument unknown.
+       Set *unknown to true if machine type is really unknown, as opposed
+       to M_UNKNOWN for the 68000.
+       (NAME(aout,set_arch_mach)): Change NAME(aout,machine_type) call
+       accordingly.
+       * libaout.h (NAME(aout,machine_type)): Add new argument to
+       prototype.
+
+Sun Jun 12 20:21:03 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (EXEC_AUX_ID): Define based on availablity of HPUX_AUX_ID
+       or HIUX_AUX_ID.
+       (som_begin_writing): Use EXEC_AUX_ID instead of HPUX_AUX_ID.
+       (som_write_armap): Use CPU_PA_RISC1_0 as the magic number.  Note
+       som.c is careful to always define CPU_PA_RISC1_0.
+
+Sat Jun 11 16:32:30 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Add weak symbols as an extension to a.out.
+       * aoutx.h (sym_in_text_section): Don't define.
+       (sym_in_data_section, sym_in_bss_section): Likewise.
+       (sym_is_undefined, sym_is_global_defn): Likewise.
+       (sym_is_debugger_info, sym_is_fortrancommon): Likewise.
+       (sym_is_absolute, sym_is_indirect): Likewise.
+       (translate_from_native_sym_flags): Rewrite for clarity.  Rearrange
+       arguments and change caller.  Handle weak symbols.
+       (translate_to_native_sym_flags): Likewise.
+       (aout_link_check_ar_symbols): Don't ignore weak symbols.  Pull
+       object in from archive if a weak defintion is found for an
+       existing undefined symbol.
+       (aout_link_add_symbols): Put all cases in switch.  Set flags of an
+       undefined symbol to 0.  Handle weak symbols.
+       (aout_link_write_symbols): Handle weak symbols.
+       (aout_link_write_other_symbol): Likewise.
+       (aout_link_input_section_std): Likewise.
+       (aout_link_input_section_ext): Likewise.
+       * sunos.c (sunos_write_dynamic_symbol): Likewise.
+
+Fri Jun 10 13:25:13 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (NAME(aout,canonicalize_reloc)): Handle .bss section.
+       (NAME(aout,get_reloc_upper_bound)): Likewise.
+
+       * coff-i960.c (coff_i960_reloc_type_lookup): Add BFD_RELOC_CTOR.
+       * linker.c (_bfd_generic_link_write_global_symbol): Don't assume
+       the section of a common symbol is not NULL.
+
+Wed Jun  8 23:15:53 1994  Stu Grossman  (grossman@cygnus.com)
+
+       * nlmcode.h (nlm_object_p):  Set EXEC_P and start address for GDB.
+
+Wed Jun  8 23:57:34 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (aout_get_external_symbols): Don't try to read the
+       strings if there are no symbols.
+       (aout_link_write_other_symbol): Use the output section when
+       working out the type.
+
+Tue Jun  7 13:25:08 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elfcode.h (assign_section_numbers): Put shstrtab, symtab and
+       strtab sections at end of file.  Avoids bug in some versions of
+       SVR4 strip.  From Eric Youngdale <eric@tantalus.nrl.navy.mil>.
+
+       * coffcode.h (styp_to_sec_flags): If COFF_PAGE_SIZE is defined,
+       set SEC_DEBUGGING for STYP_INFO sections.
+       (coff_compute_section_file_positions): If COFF_PAGE_SIZE is
+       defined, and D_PAGED is set, set the file position equal to the
+       section VMA modulo COFF_PAGE_SIZE.
+       * coffgen.c (coff_real_object_p): If F_EXEC is set, set D_PAGED.
+       * coff-i386.c: Set D_PAGED in BFD target.
+       (COFF_PAGE_SIZE): Define.
+       * coff-m68k.c, coff-sparc.c: Likewise.
+
+Mon Jun  6 10:57:28 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elfcode.h (bfd_section_from_shdr): Don't turn a reloc section
+       into a BFD section just because SHF_ALLOC is set; require that it
+       not use the normal symbol table.
+       (elf_section_from_bfd_section): Corresponding change.
+
+       Better indirect and warning symbol handling inspired by Stuart
+       Quick <stuck@cs.man.ac.uk>.
+       * linker.c (enum link_action): Add REF, MIND, CWARN, REFC.
+       (link_action): Change UNDEF_ROW/def and UNDEFW_ROW/def from NOACT
+       to REF.  Change UNDEF_ROW/indr and UNDEFW_ROW/indr from CYCLE to
+       REFC.  Change DEF_ROW/indr and COMMON_ROW/indr from CYCLE to MDEF.
+       Change DEFW_ROW/indr from CYCLE to NOACT.  Change INDR_ROW/indr
+       from MDEF to MIND.  Change INDR_ROW/warn from WARNC to CYCLE.
+       Change WARN_ROW/def and WARN_ROW/indr from MWARN to CWARN.  Change
+       WARN_ROW/com from MWARN to WARN.  Change WARN_ROW/warn from NOACT
+       to CYCLE.  Change SET_ROW/warn from WARNC to CYCLE>
+       (_bfd_generic_link_add_one_symbol): Handle REF, MIND, CWARN and
+       REFC.  If a new indirect symbol has been referenced, push the
+       reference down to the symbol it points to.  FIx handling of WARN.
+       * aoutx.h (translate_from_native_sym_flags): If N_WARNING, don't
+       clobber e_type of next symbol.
+       (translate_to_native_sym_flags): Likewise.
+       (aout_link_write_symbols): Loop on bfd_link_hash_warning as well
+       as bfd_link_hash_indirect.
+
+       * libaout.h (struct aout_link_hash_entry): New field written.
+       * aoutx.h (NAME(aout,link_hash_newfunc)): Initialize written.
+       (aout_link_write_symbols): Use written, not root.written.
+       (aout_link_write_other_symbol): Likewise.
+       * sunos.c (sunos_scan_dynamic_symbol): Likewise.
+       * libecoff.h (struct ecoff_link_hash_entry): New field written.
+       * ecoff.c (ecoff_link_hash_newfunc): Initialize written.
+       (ecoff_link_write_external): use written, not root.written.
+       * genlink.h (struct generic_link_hash_entry): New field written.
+       * linker.c (_bfd_link_hash_newfunc): Don't initialize written.
+       (generic_link_hash_newfunc): Initialize written.
+       (_bfd_generic_link_output_symbols): Use written, not root.written.
+       (_bfd_generic_link_write_global_symbol): Likewise.
+       (_bfd_generic_reloc_link_order): Likewise.
+
+       * libecoff.h (ecoff_data_type): Add linker field.
+       * ecoff.c (ecoff_write_object_contents): Check new tdata linker
+       field, rather than outsymbols being non-NULL, to decide whether to
+       output the symbols and relocs.
+       (ecoff_bfd_final_link): Set new tdata linker field to true.
+
+       * ecoff.c (ecoff_bfd_copy_private_bfd_data): Don't try to copy
+       data to a non-ECOFF file.
+
+       * libbfd-in.h: Add warning that libbfd.h is a generated file.
+       * libbfd.h: Rebuilt.
+
+Sun Jun  5 15:02:30 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Changes to support ELF strip and objcopy on dynamically linked
+       files.
+       * elfcode.h (elf_fake_sections): Add prototype.
+       (bfd_section_from_shdr): Make a BFD section from an SHT_HASH
+       section, and from an SHT_DYNSYM section, and from the dynamic
+       string table section.
+       (elf_object_p): Set D_PAGED if there is a program header.
+       (elf_make_sections): Remove.
+       (fix_up_strtabs): Remove.
+       (elf_fake_sections): Rewrite.  Now sets sh_entsize.
+       (assign_section_numbers): Rewrite.  Now sets sh_link and sh_info
+       for all sections.
+       (elf_compute_section_file_positions):  Don't call obsolete
+       functions elf_make_sections or fix_up_strtabs.
+       (swap_out_syms): Set sh_addralign to FILE_ALIGN rather than 4.
+       (NAME(bfd_elf,write_object_contents)): Permit writing DYNAMIC
+       objects.
+       (elf_section_from_bfd_section): Treat SHT_DYNSYM like other normal
+       sections.  If an SHT_REL or SHT_RELA section is allocated or uses
+       an unusual symbol table, permit a BFD section to map to it.
+       Permit most SHT_STRTAB sections to have a BFD section mapped to
+       them.
+       (elf_bfd_final_link): Don't set sh_link, sh_info or sh_entsize
+       fields of dynamic sections here; do it in assign_section_numbers.
+       * elf32-target.h, elf64-target.h: Add D_PAGED to permitted object
+       flags.
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Only set SEC_DATA if
+       SEC_LOAD is set, rather than checking SEC_ALLOC.
+
+       * libbfd-in.h (bfd_realloc): Change last arg to "size_t size".
+
+Fri Jun  3 10:58:02 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_write_object_contents): Don't compute the file header's
+       checksum here.
+       (som_write_headers): Instead do it here.
+
+       * libbfd.h (bfd_realloc): Change last arg to "size_t size".
+
+Thu Jun  2 17:39:22 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * hosts/sun3.h: Include <stdlib.h>.  Don't declare free, exit or
+       getenv.
+
+       Add linker support for SunOS shared libraries.
+       * sunos.c: Include bfdlink.h.  Add many new functions and
+       definitions for SunOS shared library support.
+       * bfd-in.h (bfd_sunos_record_link_assignment): Declare.
+       (bfd_sunos_size_dynamic_sections): Declare.
+       * bfd-in2.h: Rebuilt.
+       * aoutx.h (struct aout_link_hash_entry): Move to libaout.h.
+       (struct aout_link_hash_table): Likewise.
+       (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
+       (aout_hash_table): Likewise.
+       (NAME(aout,link_hash_newfunc)): Rename from aout_link_hash_newfunc
+       and make externally visible.
+       (NAME(aout,link_hash_table_init)): New function.
+       (NAME(aout,link_hash_table_create)): Call
+       NAME(aout,link_hash_table_init), not _bfd_link_hash_table_init.
+       (aout_link_add_symbols): Don't fail if no symbols.  If it exists,
+       call add_dynamic_symbols backend entry point for dynamic objects.
+       Use add_one_symbol backend entry point if it exists.
+       (NAME(aout,final_link)): Call finish_dynamic_link backend entry
+       point, if it exists.
+       (aout_link_input_bfd): For a dynamic object, call
+       link_dynamic_object backend entry point, if it exists.
+       (aout_link_write_other_symbol): Call write_dynamic_symbol backend
+       entry point, if it exists.
+       (aout_link_input_section): Don't read the relocs if they have
+       already been read.
+       (aout_link_input_section_std): When doing a final link, for a
+       reloc against an external symbol, call check_dynamic_reloc backend
+       entry point, if it exists.
+       (aout_link_input_section_ext): Likewise.
+       * libaout.h: Protect against multiple inclusion.  Include
+       bfdlink.h.
+       (struct aout_link_hash_entry): Move in from aoutx.h.
+       (struct aout_link_hash_table): Likewise.
+       (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
+       (aout_hash_table): Likewise.
+       (struct aout_backend_data): Add fields add_dynamic_symbols,
+       add_one_symbol, link_dynamic_object, write_dynamic_symbol,
+       check_dynamic_reloc, and finish_dynamic_link.
+       (struct aout_section_data_struct): Define new structure.
+       (aout_section_data): Define new accessor macro.
+       (NAME(aout,link_hash_newfunc)): Declare.
+       (NAME(aout,link_hash_table_init)): Declare.
+       * aoutf1.h (sunos4_aout_backend): Initialize new aout_backend_data
+       fields.
+       * aout-target.h (MY(backend_data)): Likewise.
+       * i386aout.c (MY(backend_data)): Likewise.
+       * i386mach3.c (MY(backend_data)): Likewise.
+       * mipsbsd.c (MY(backend_data)): Likewise.
+       * sparclynx.c (sparclynx_aout_backend): Likewise.
+
+       * aoutx.h (NAME(aout,slurp_symbol_table)): Don't zero out cached
+       until we know it is non-NULL.
+       (aout_link_write_symbols): Don't skip a warning symbol even if it
+       has already been written out.  If skipping an indirect symbol,
+       skip the next symbol as well.
+
+Wed Jun  1 14:37:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * hosts/sun3.h: Don't declare qsort, malloc or realloc.
+
+Thu May 26 13:56:03 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * nlmcode.h (nlm_swap_auxiliary_headers_in): Cast bfd_byte pointer
+       to char pointer to avoid compiler warnings.
+
+       * dep-in.sed: Remove spaces before colons.
+
+       Merged changes back in from FSF gas release 2.3:
+
+       * Makefile.in (stmp-bfd.h): Wrap `if' block around grep
+       invocation, to avoid a bug in BSD 4.4 make.
+
+       From Ralph Campbell:
+       * mipsbsd.c (mips_fix_jmp_addr): If symbol is undefined, return an
+       error.
+       (mips_fix_hi16_s): Ditto.
+
+       Fri May 13 21:21:00 1994  DJ Delorie (dj@ctron.com)
+
+       * makefile.dos: define a default target, or archives won't work
+         due to multiple matches.
+
+       Wed May 11 22:32:00 1994  DJ Delorie (dj@ctron.com)
+
+       * configure.bat: update for latest files
+       * makefile.dos: update for correct targets and sources
+       * coff-go32.c: [new] go32's COFF format (i386coff with underscores)
+       * targets.c: add go32coff target
+       * makefile.in: add coff-go32.c support
+
+Thu May 26 10:10:21 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_prep_headers): Do not set the system_id here, private
+       bfd data has not been copied yet.
+       (som_write_headers): Instead do it here.
+
+Tue May 24 16:17:18 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Make MIPS ELF use new ELF backend linker.  No shared library
+       support yet.
+       * elf32-mips.c (bfd_mips_elf32_swap_gptab_in): New function.
+       (bfd_mips_elf32_swap_gptab_out): New function.
+       (mips_elf_object_p): If last symbol is LOCAL, set elf_bad_symtab.
+       (mips_elf_final_write_processing): Set sh_info field for .gptab.*
+       sections.
+       (mips_elf_fake_sections): Set sh_entsize for .gptab.* sections.
+       (mips_elf_read_ecoff_info): Read and free external symbols last,
+       not first, for clarity.
+       (struct mips_elf_link_hash_entry): Define new structure.
+       (struct mips_elf_link_hash_table): Define new structure.
+       (mips_elf_link_hash_lookup): Define new macro.
+       (mips_elf_link_hash_traverse): Define new macro.
+       (mips_elf_hash_table): Define new macro.
+       (mips_elf_link_hash_newfunc): New static function.
+       (mips_elf_link_hash_table_create): New static function.
+       (mips_elf_add_symbol_hook): New static function.
+       (struct extsym_info): Define new structure.
+       (mips_elf_get_extr, mips_elf_set_index): Remove.
+       (mips_elf_output_extsym): New static function.
+       (gptab_compare): New static function.
+       (mips_elf_final_link): Rewrite to use ELF backend linker, and to
+       merge gptab information in input files.
+       (mips_elf_relocate_hi16): New static function.
+       (mips_elf_relocate_section): New static function.
+       (bfd_elf32_bfd_link_hash_table_create): Define as macro before
+       including elf32-target.h.
+       (elf_backend_relocate_section): Likewise.
+       (elf_backend_add_symbol_hook): Likewise.
+       * elf.c (_bfd_elf_link_hash_newfunc): Rename from
+       elf_link_hash_newfunc and make globally visible.  Change caller.
+       (_bfd_elf_link_hash_table_init): New function, broken out of
+       _bfd_elf_link_hash_table_create.
+       (_bfd_elf_link_hash_table_create): Use
+       _bfd_elf_link_hash_table_init.
+       * libelf.h (struct elf_obj_tdata): Add new field bad_symtab.
+       (elf_bad_symtab): Define new accessor macro.
+       (_bfd_elf_link_hash_newfunc): Declare.
+       (_bew_elf_link_hash_table_init): Declare.
+       * elfcode.h (elf_object_p): Call backend object_p hook after
+       swapping in all the section headers.
+       (map_program_segments): Correct typo: Internal for External.
+       (elf_link_add_object_symbols): If elf_bad_symtab is set, read all
+       the symbols.  Skip STB_LOCAL symbols rather than giving an error.
+       (elf_bfd_final_link): If elf_bad_symtab is set, allocate space for
+       all symbols, not just locals.
+       (elf_link_output_extsym): Only skip a symbol not mentioned by a
+       regular file if it is mentioned by a dynamic object.
+       (elf_link_input_bfd): If elf_bad_symtab is set, read all the
+       symbols.
+
+Fri May 20 13:38:23 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_set_reloc_info): Do not set any relocation info
+       for SOM fixups which are never passed to BFD.
+
+Fri May 20 11:57:05 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * coff-mips.c (mips_relocate_section): Add MIPS_R_JMPADDR overflow
+       checking.
+
+       * elf32-i386.c (elf_i386_size_dynamic_sections): Add DT_DEBUG to
+       the dynamic linking information for the benefit of the debugger.
+       From Peter Schauer.
+       * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
+
+       * elf.c (_bfd_elf_make_section_from_shdr): New function, based on
+       code repeated three times in bfd_section_from_shdr in elfcode.h.
+       * libelf.h (_bfd_elf_make_section_from_shdr): Declare.
+       * elfcode.h (bfd_section_from_shdr): Use new function
+       _bfd_elf_make_section_from_shdr to create BFD sections.  If a
+       reloc section does not use the main symbol table, or it is part of
+       the process image, treat it as a normal section, not relocs.
+       * elf32-mips.c (mips_elf_section_from_shdr): Use new function
+       _bfd_elf_make_section_from_shdr.
+
+Thu May 19 11:37:11 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elf32-target.h, elf64-target.h: Change ar_max_namelen value from
+       15 to 14 to match SVR4 ar.
+
+       Add support for ELF shared libraries.  Loosely based on work by
+       Eric Youngdale <ericy@cais.com>.
+       * libelf.h (struct elf_backend_data): Add new fields for dynamic
+       linking: elf_backend_create_dynamic_sections,
+       elf_backend_adjust_dynamic_symbol,
+       elf_backend_size_dynamic_sections,
+       elf_backend_finish_dynamic_symbol,
+       elf_backend_finish_dynamic_sections.
+       (struct elf_link_hash_entry): Change type of align field to
+       bfd_size_type.  Add fields dynindx, dynstr_index, weakdef,
+       elf_link_hash_flags.
+       (struct elf_link_hash_table): Add fields dynobj, dynsymcount,
+       dynstr, bucketcount.
+       (bfd_elf32_swap_reloc_in, bfd_elf32_swap_reloc_out): Declare.
+       (bfd_elf32_swap_reloca_in, bfd_elf32_swap_reloca_out): Declare.
+       (bfd_elf32_swap_dyn_in, bfd_elf32_swap_dyn_out): Declare.
+       (bfd_elf32_add_dynamic_entry): Declare.
+       (bfd_elf64_swap_reloc_in, bfd_elf64_swap_reloc_out): Declare.
+       (bfd_elf64_swap_reloca_in, bfd_elf64_swap_reloca_out): Declare.
+       (bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out): Declare.
+       (bfd_elf64_add_dynamic_entry): Declare.
+       * elfcode.h (Elf_External_Dyn): Define.
+       (elf_swap_reloc_in): Define as macro using NAME.  Make externally
+       visible.
+       (elf_swap_reloc_out): Likewise.
+       (elf_swap_reloca_in, elf_swap_reloca_out): Likewise.
+       (elf_swap_dyn_in, elf_swap_dyn_out): Define as macro using NAME
+       and as new externally visible function.
+       (elf_fake_sections): Set section type of dynamic sections based on
+       section names.
+       (elf_write_phdrs): Remove.
+       (assign_file_position_for_section): Add new align argument.
+       Change all callers.
+       (get_program_header_size): New static function.
+       (struct seg_info): Remove.
+       (map_program_segments): Completely rewrite.
+       (assign_file_positions_except_relocs): Completely rewrite.
+       (assign_file_positions_for_relocs): Don't set a file position for
+       sections which already have one.  Don't bother to align the file
+       position here.
+       (section_from_elf_index): Handle SHT_HASH and SHT_DYNAMIC
+       section types.
+       (elf_section_from_bfd_section): Likewise.
+       (elf_slurp_symbol_table): If section_from_elf_index fails, just
+       use bfd_abs_section rather than returning an error.
+       (elf_sizeof_headers): Make useful.
+       (elf_link_record_dynamic_symbol): New static function.
+       (elf_link_add_object_symbols): Handle dynamic objects.
+       (elf_link_create_dynamic_sections): New static function.
+       (elf_add_dynamic_entry): Define as macro using NAME and as new
+       externally visible function.
+       (NAME(bfd_elf,record_link_assignment)): New function.
+       (elf_buckets): New static variable.
+       (NAME(bfd_elf,size_dynamic_sections)): New function.
+       (struct elf_final_link_info): Add dynsym_sec and hash_sec fields.
+       (elf_bfd_final_link): Handle dynamic linking.  Create a section
+       symbol for all ELF sections, not all BFD sections.  Store section
+       symbol index in target_index field, not index field.  Traverse
+       over global symbols even if stripping.
+       (elf_link_output_extsym): Output dynamic symbols.  Mark symbols
+       defined by dynamic objects as undefined.
+       (elf_link_input_bfd): Ignore dynamic objects.  Use target_index
+       field for section relocs, and make sure it is set.
+       (elf_reloc_link_order): Use target_index field for section relocs,
+       and make sure it is set.
+       * elf.c (elf_link_hash_newfunc): Initialize dynindx, dynstr_index,
+       weakdef and elf_link_hash_flags fields.
+       (_bfd_elf_link_hash_table_create): Initialize dynobj, dynsymcount,
+       dynstr and bucketcount fields.
+       * elf32-target.h: Initialize new dynamic linking fields.
+       * elf64-target.h: Likewise.  
+       * elf32-i386.c: New functions for dynamic linking support.
+       * elf32-sparc.c: Likewise.
+       * bfd-in.h (bfd_elf32_record_link_assignment): Declare.
+       (bfd_elf64_record_link_assignment): Declare.
+       (bfd_elf32_size_dynamic_sections): Declare.
+       (bfd_elf64_size_dynamic_sections): Declare.
+       * bfd-in2.h: Rebuilt.
+
+Wed May 18 08:29:04 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+       * som.c: Don't include <sys/dir.h> or <sys/user.h>.
+       (som_reloc_queue_find): Call memcmp instead of bcmp.
+       (som_bfd_reloc_type_lookup): Change first argument to bfd *.
+       (compare_syms): Change types of arguments to const void *.
+       (bfd_section_from_som_symbol): Removed unused local found.
+       (som_write_armap): Add elength, map, orl_count and int arguments.
+       (som_write_armap): Use %ld and cast to long for getuid result.
+
+Wed May 18 09:09:32 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * elf32-hppa.h (R_HPPA_ABS_CALL): Define.
+       * elf32-hppa.c (hppa_elf_gen_reloc_type): Handle absolute calls.
+
+       * som.h (R_HPPA_ABS_CALL): Define.
+       * som.c (hppa_som_gen_reloc_type): Delete complex relocation types.
+
+Tue May 17 19:33:12 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * coff-i960.c (icoff_little_vec, icoff_big_vec): Indicate leading
+       underscore, for compatibility with Intel tool chain (gnu960v2).
+
+Mon May 16 10:09:22 1994  Jeff Law  (law@snake.cs.utah.edu)
+
+       * bfd-in2.h: Rebuilt.
+
+       * elf32-hppa.c: Change .hppa_linker_stubs to .PARISC.stubs,
+       likewise for other PA specific sections.
+       (hppa_elf_relocate_unwind_table): Delete unused
+       function.
+       (elf_hppa_howto_table): Completely new table based on 94-02-02
+       draft PA ELF spec.  Change relocation tags appropriately
+       throughout elf32-hppa.c
+       (hppa_elf_gen_reloc_type): Rewrite and simplify based on 94-02-02
+       spec.
+       (hppa_elf_reloc): Likewise.
+       (hppa_look_for_stubs_in_section): Likewise
+       (ELF_MACHINE_CODE): Change to EM_PARISC.
+       * elf32-hppa.h: Include "elf/hppa.h".  Change relocation tags 
+       appropriately throughout elf32-hppa.h.
+       (elf32_hppa_reloc_type): New table based on 94-02-02 draft PA ELF
+       spec.
+       (R_HPPA_ABS_CALL, R_HPPA_COMPLEX*, R_HPPA_UNWIND): Delete definitions.
+       * elfcode.h (prep_headers): Use EM_PARISC instead of EM_HPPA.
+       * reloc.c (bfd_reloc_code_real): Delete unused HPPA relocations.
+       * som.h (R_HPPA_ABS_CALL, R_HPPA_COMPLEX): Delete definitions.
+
+       * libhppa.h (hppa_field_adjust): Avoid adding constant_value into
+       the final value twice for LR and RR field selectors.
+
+Sat May 14 09:09:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * aoutx.h (add_to_stringtab): Use BFD_ASSERT not assert.  This
+       avoids __eprintf troubles.
+
+Fri May 13 10:51:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * bout.c (b_out_bfd_reloc_type_lookup): Handle BFD_RELOC_CTOR.
+
+       * config/mipsbelf.mt (SELECT_VECS): Add ecoff_big_vec and
+       ecoff_little_vec since Irix 5 supports ECOFF executables.
+
+Wed May 11 00:31:57 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * ecoff.c (ecoff_find_nearest_line): Handle fdr.adr != pdr.adr
+       correctly.
+
+       * Makefile.in (stmp-bfd.h): Use || instead of ; to force SunOS
+       make to invoke the shell.
+
+Tue May 10 14:23:43 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * section.c (SEC_COFF_SHARED_LIBRARY): Renamed from
+       SEC_SHARED_LIBRARY for clarity.  Changed all uses.
+       * bfd-in2.h: Rebuilt.
+       * coffcode.h (sec_to_styp_flags): If SEC_COFF_SHARED_LIBRARY is
+       set, set STYP_NOLOAD.
+       * coffgen.c (coff_section_from_bfd_index): Don't get an assertion
+       failure because of a bad shared library.
+
+Mon May  9 18:53:40 1994  Bill Cox  (bill@rtl.cygnus.com)
+
+       * linker.c: Add missing comment terminator.
+
+Mon May  9 11:53:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * linker.c (_bfd_generic_link_add_one_symbol): If hashp and *hashp
+       are not NULL, assume the caller has already looked up the symbol
+       in the hash table and has stored the entry in *hashp.
+       (generic_link_add_symbol_list): Set h to NULL before calling
+       _bfd_generic_link_add_one_symbol.
+       * ecoff.c (ecoff_link_add_externals): Likewise.
+
+       * elfcode.h (assign_file_positions_except_relocs): Don't require
+       page shared between .data and .bss segments to contain zeroes.
+
+       * elfcode.h: Include bfdlink.h.  Added several new functions to do
+       linking.
+       (ELF_R_TYPE): Define.
+       (bfd_add_to_strtab): Return unsigned long.  Change check for
+       realloc failure.
+       (elf_fake_sections): Check return value of bfd_add_to_strtab.
+       (elf_compute_section_file_positions): Add link_info argument.
+       Call elf_backend_begin_write_processing hook and prep_headers
+       here.  Only call swap_out_syms if link_info is NULL.  Set up
+       .shstrtab section here.  Pass dosyms argument to
+       assign_file_positions_except_relocs.  Set output_has_begun flag.
+       (assign_file_positions_for_symtab_and_strtabs): Add dosyms
+       argument, and use it to control setting .symtab and .strtab file
+       positions.
+       (assign_file_positions_except_relocs): Add dosyms argument, and
+       pass it on.
+       (prep_headers): Check return value of bfd_add_to_strtab.
+       (swap_out_syms): Likewise.  Also, don't set up .shstrtab here.
+       (NAME(bfd_elf,write_object_contents)): Some calls moved into
+       elf_compute_section_file_positions.
+       (elf_set_section_contents): Likewise.
+       (elf_slurp_symbol_table): SHN_LORESERV corrected to SHN_LORESERVE.
+       * libelf.h: Include bfdlink.h.
+       (struct elf_backend_data): Add fields collect,
+       elf_add_symbol_hook, elf_backend_relocate_section.
+       (struct bfd_elf_section_data): Add field rel_hashes.
+       (struct elf_obj_tdata): Remove fields internal_syms and symbols.
+       Add field sym_hashes.
+       (obj_symbols, obj_internal_syms): Remove definitions.
+       (elf_sym_hashes): Define.
+       (struct elf_link_hash_entry): Define.
+       (struct elf_link_hash_table): Define.
+       (elf_link_hash_lookup): Define.
+       (elf_link_hash_traverse): Define.
+       (elf_hash_table): Define.
+       (_bfd_elf_link_hash_table_create): Declare.
+       (bfd_elf32_bfd_link_add_symbols): Declare.
+       (bfd_elf32_bfd_final_link): Declare.
+       (bfd_elf64_bfd_link_add_symbols): Declare.
+       (bfd_elf64_bfd_final_link): Declare.
+       * elf.c: Include bfdlink.h.
+       (elf_link_hash_newfunc): New function.
+       (_bfd_elf_link_hash_table_create): New function.
+       * elf32-target.h (elf_backend_relocate_section): If not defined,
+       define as 0 and use generic linker.  Otherwise, use ELF backend
+       linker.
+       (elf_backend_collect): If not defined, define as false.
+       (elf_backend_add_symbol_hook): If not defined, define as 0.
+       (elf32_bed): Initialize new fields.
+       * elf64-target.h: Same changes as elf32-target.h.
+       * elf32-i386.c: Include bfdlink.h.
+       (elf_i386_relocate_section): New function.
+       (elf_backend_relocate_section): Define.
+       * elf32-sparc.c: Include bfdlink.h.
+       (elf_info_to_howto): Change type of dst from Elf32_Internal_Rela
+       to Elf_Internal_Rela (they're the same type anyhow).
+       (elf_sparc_relocate_section): New function.
+       (elf_backend_relocate_section): Define.
+       * elf32-mips.c (elf_backend_collect): Define.
+
+       * Makefile.in (stmp-bfd.h): Avoid useless make error message in a
+       different way; touch takes a numeric argument on some systems.
+
+Fri May  6 13:34:14 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * nlmcode.h (nlm_swap_auxiliary_headers_in): Rework custom header
+       handling for latest suggested format.
+       (nlm_swap_auxiliary_headers_out): Likewise.
+       (nlm_compute_section_file_positions): Likewise.
+
+Fri May  6 11:11:50 1994  D. V. Henkel-Wallace  (gumby@rtl.cygnus.com)
+
+       * config.bfd: handle erricsson config (for OSE).
+
+Thu May  5 15:40:47 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       Patches from Ralph Campbell:
+       * mipsbsd.c (mips_fix_jmp_addr): New function.
+       (mips_fix_hi16_s): Use bfd_is_com_section.
+       (mips_howto_table_ext): Call mips_fix_jmp_addr for MIPS_RELOC_JMP.
+
+Fri May  6 11:48:55 1994  Steve Chamberlain  (sac@cygnus.com)
+
+       * config/go32.mh: XX support.
+
+       From bill
+       * Makefile.in: Build sysdep.h without causing worrying but
+       harmless error message.
+
+Wed May  4 11:09:53 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+       Changed m68k-aout to set flags to 0; m68k-sunos still uses 1.
+       * aout0.c: New file.
+       * targets.c (aout0_big_vec): Declare.
+       (bfd_target_vector): Add aout0_big_vec.
+       * config.bfd (m68*-*-aout*): Use m68k-0aout, not m68k-aout.
+       * config/m68k-aout.mt (SELECT_VECS): Removed.
+       * config/m68k-0aout.mt: New file.
+       * configure.in (aout0_big_vec): New target vector: use aout0.o,
+       aout32.o and stab-syms.o.
+       * Makefile.in: Rebuilt dependencies.
+       (BFD32_BACKENDS): Add aout0.o.
+       (CFILES): Add aout0.c.
+
+       * libaout.h (struct aout_backend_data): Add field exec_hdr_flags.
+       * aout-target.h (MY_exec_hdr_flags): If not defined, define as 0.
+       MY(backend_data): Initialize exec_hdr_flags field.
+       * aoutf1.h (sunos_32_set_arch_mach): Make static.
+       (aout32_sunos4_write_object_contents): Set flags from backend
+       info.
+       (MY_exec_hdr_flags): If not defined, define as 1.
+       (sunos4_aout_backend): Initialize exec_hdr_flags field.
+       * aout-encap.c (encap_write_object_contents): Set flags from
+       backend info.
+       (MY_exec_hdr_flags): Define as N_FLAGS_COFF_ENCAPSULATE.
+       * hp300hpux.c (MY_exec_hdr_flags): Define as 0x2.
+       (MY(write_object_contents)): Set flags from backend info.
+       * i386aout.c (MY(backend_data)): Initialize exec_hdr_flags field.
+       * i386mach3.c (MY(backend_data)): Likewise.
+       * mipsbsd.c (MY(backend_data)): Likewise.
+       * sparclynx.c (NAME(aout,sparclynx_write_object_contents)): Set
+       flags from backend info.
+       (sparclynx_aout_backend): Initialize exec_hdr_flags field.
+
+Wed May  4 02:56:00 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+       * config.bfd (i386-*-gnu*): Treat like i386-*-mach*.
+       (m68*-apollo-*): Treat all Apollo configs the same, don't handle
+       BSD specially.
+
+Tue May  3 19:43:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * cache.c: Rewrote to work correctly.
+       * libbfd.h: Rebuilt.
+       * opncls.c (bfd_cache_init, bfd_open_file): Don't declare.
+       (bfd_fdopenr): Check return value of bfd_cache_init.
+
+Fri Apr 29 15:08:23 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * cf-m68klynx.c (CALC_ADDEND): Check for PC relative relocs by
+       enumerating them, since the reloc type can not serve as an index
+       into the m68k COFF howto_table.
+
+Fri Apr 29 09:42:39 1994  Steve Chamberlain  (sac@cygnus.com)
+
+        * config.bfd (*-go32): Changed to coff.
+       * coff-h8300.c (JMPL1): Get HOWTO right for 24bit branches.
+       * srec.c (srec_write_symbols): Write out the correct number of
+       symbols and don't stick in extra nulls.
+
+Tue Apr 26 15:07:24 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * cf-sparclynx.c (LYNXOS, COFF_LONG_FILENAMES): Define.
+       * coff-sparc.c (BADMAG): Recognize LYNXCOFFMAGIC.
+       (COFF_SPARC): Define.
+       * coffcode.h (coff_new_section_hook): If COFF_SPARC, set alignment
+       power of data and bss sections to 3.
+       * hosts/lynx.h (__LYNXOS): Define.
+
+Tue Apr 26 15:04:26 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * elf32-hppa.c (hppa_elf_reloc): Adjust the addend of relocations
+       against section symbols to avoid losing during ld -r.
+
+Tue Apr 26 12:16:41 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elfcode.h (shstrtab_length_fixed): Remove useless static
+       variable.
+       (struct elf_sect_data): Remove unused structure.
+       (elf_object_p): Free memory if error occurs.  Check return value
+       of bfd_default_set_arch_mach.  If elf_get_str_section fails,
+       preserve error code rather than setting wrong_format.
+       (null_shdr): Remove static variable.
+       (assign_section_numbers): Remove shstrtab_length_fixed assignment.
+       Allocate first section header on BFD obstack rather than using
+       null_shdr.
+       (bfd_prpsinfo): Remove unused local variable newsect.
+
+Mon Apr 25 15:31:04 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elfcode.h (write_relocs): Undo patch of Apr 10; breaks Solaris.
+
+       * elfcode.h (bfd_section_from_shdr): Use bfd_make_section_anyway
+       to create sections.  Check return value of recursive calls.
+       (bfd_section_from_phdr): Check return value of bfd_make_section.
+       (elf_symbol_from_bfd_symbol): Likewise.
+       (elf_object_p): Check return value of bfd_section_from_shdr.
+       (section_from_elf_index): Likewise.
+       (elf_slurp_symbol_table): Check return value of
+       section_from_elf_index.
+       (bfd_prstatus): Return boolean value.  Check return value of
+       bfd_make_section.
+       (bfd_fpregset): Likewise.
+       (bfd_prpsinfo): Return boolean value.
+       (elf_corefile_note): Check return values of bfd_prstatus,
+       bfd_fpregset, and bfd_prpsinfo.
+       (elf_core_file_p): Check return value of elf_corefile_note.
+
+Fri Apr 22 11:08:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Get rid of the ECOFF .reginfo section hack.
+       * ecoff.c (ecoff_mkobject_hook): Don't create a .reginfo section.
+       (ecoff_new_section_hook): Don't handle the .reginfo section.
+       (ecoff_sizeof_headers): Likewise.
+       (ecoff_get_section_contents): Likewise.
+       (ecoff_compute_section_file_positions): Likewise.
+       (ecoff_compute_reloc_file_positions): Likewise.
+       (ecoff_set_section_contents): Likewise.
+       (ecoff_write_object_contents): Likewise.
+       (ecoff_bfd_final_link): Likewise.
+       (ecoff_bfd_copy_private_bfd_data): Copy the GP value and the
+       register masks.
+       (bfd_ecoff_get_gp_value): New function.
+       (bfd_ecoff_set_gp_value): New function.
+       (bfd_ecoff_set_regmasks): New function.
+       * bfd-in.h (bfd_ecoff_get_gp_value): Declare.
+       (bfd_ecoff_set_gp_value): Declare.
+       (bfd_ecoff_set_regmasks): Declare.
+       * bfd-in2.h: Rebuilt.
+
+       Fix ECOFF objcopy to actually copy debugging information.
+       * ecoff.c (ecoff_bfd_copy_private_bfd_data): New function.
+       (ecoff_get_extr): Assume that any ECOFF symbol with local clear is
+       an external symbol, rather than checking the symbol flags.  Only
+       check the flags for non-ECOFF symbols.
+       * ecofflink.c (bfd_ecoff_debug_externals): Don't crash if the
+       output_section field of the symbol section is NULL.
+       * libecoff.h (ecoff_bfd_copy_private_bfd_data): Declare as
+       function rather than defining as macro.
+
+       * ieee.c (ieee_object_p): Set bfd_error_got_wrong_format if
+       appropriate.
+
+       * targets.c (bfd_target_vector): Add bfd_elf32_powerpc_vec.
+
+       * aout-adobe.c (aout_adobe_set_arch_mach): Check return value of
+       bfd_default_set_arch_mach.  Accept bfd_arch_m68k as well as
+       bfd_arch_unknown.
+       * coffcode.h (coff_set_arch_mach): Check return value of
+       bfd_default_set_arch_mach.
+       * elfcode.h (elf_set_arch_mach): Don't check a list of ELF
+       architectures, just see if the desired architecture matches what
+       the ELF backend permits.
+
+       * coffcode.h (coff_set_arch_mach_hook): Rename SHMAGIC to
+       SH_ARCH_MAGIC to match change in coff/sh.h.
+       (coff_set_flags): Likewise.
+
+       Follow convention in which each NLM header has an 8 byte stamp
+       followed by a four byte length.
+       * libnlm.h (struct nlm_obj_tdata): Rename nlm_cygnus_section_hdr
+       to nlm_cygnus_ext_header, and change type to
+       Nlm_Internal_Cygnus_Ext_Header.
+       (nlm_cygnus_ext_header): Rename from nlm_cygnus_section_header.
+       * nlmcode.h (nlm_swap_auxiliary_headers_in): Use CyGnUsEx instead
+       of CyGnUsSeCs.  Rename from cygnus_section to cygnus_ext.  Require
+       length word to be 8.
+       (nlm_swap_auxiliary_headers_out): Rename from cygnus_section to
+       cygnus_ext.  Set length word to 8.
+       (nlm_compute_section_file_positions): Rename from cygnus_section
+       to cygnus_ext.
+
+Thu Apr 21 22:54:22 1994  Stu Grossman  (grossman at cygnus.com)
+
+       * nlmcode.h (nlm_swap_auxiliary_headers_in):  Keep section table
+       (from CyGnUsSeCs) in more permanent memory to keep section names
+       from getting trashed.
+
+Thu Apr 21 09:29:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * libelf.h (elf_obj_tdata):  Add members for dynamic symbol table
+       handling.
+       * elfcode.h (bfd_section_from_shdr):  Handle dynamic symbol table.
+       * elfcode.h (elf_slurp_symbol_table):  Take additional parameter
+       to select static or dynamic symbol table and return number of
+       symbols slurped or -1 on error.
+       * elfcode.h (elf_get_symtab):  Set bfd symcount from
+       elf_slurp_symbol_table result.
+       * elfcode.h (elf_get_dynamic_symtab_upper_bound,
+       elf_canonicalize_dynamic_symtab):  New functions to handle dynamic
+       symbol table.
+       * elf32-target.h, elf64-target.h (BFD_JUMP_TABLE_DYNAMIC):
+       Change to handle dynamic symbol table, provide default definitions
+       for dynamic relocs.
+       * aoutx.h (howto_table_std, NAME(aout,swap_std_reloc_out),
+       NAME(aout,swap_std_reloc_in), aout_link_input_section_std,
+       aout_link_reloc_link_order):  Handle r_jmptable and r_relative
+       relocations.
+
+Thu Apr 21 11:58:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Clean up uses of _bfd_dummy_target (from Peter Schauer).
+       * libbfd.c (_bfd_dummy_target): Set bfd_error_wrong_format.
+       * nlm-target.h (nlm_core_file_p): Define as _bfd_dummy_target, not
+       NULL.
+       * srec.c (srec_vec): Use _bfd_dummy_target, not NULL, in
+       _bfd_check_format.
+       (symbolsrec_vec): Likewise.
+       * tekhex.c (tekhex_vec): Likewise.
+
+       * libnlm.h (struct nlm_obj_tdata): Add nlm_cygnus_section_hdr
+       field.
+       (nlm_cygnus_section_header): New accessor macro.
+       * nlmcode.h (nlm_object_p): Free new tdata structure if failure.
+       Add fixed sections before swapping in auxiliary headers.  After
+       adding sections, treat errors as real, not as wrong format.
+       (nlm_swap_auxiliary_headers_in): Swap in the sections header; add
+       sections to the BFD for each section it describes.
+       (nlm_swap_auxiliary_headers_out): Swap out the sections header.
+       (nlm_compute_section_file_positions): Account for the size of the
+       sections header.
+
+Wed Apr 20 16:45:51 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+       * coff-sparc.c (sparccoff_vec): Change minimum alignment power to
+       2, so that stab sections can be multiples of 4 bytes only.
+
+       * hosts/i386aix.h: Changes to avoid prototypes conflicts with the
+       ones defined in stdlib.h.  (From Minh Tran-Le.)
+
+Wed Apr 20 14:15:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * nlm32-ppc.c: Complete rewrite for new version of PowerPC
+       NetWare.  Old code still present, but ifdeffed out.
+
+       * nlmcode.h (nlm_swap_auxiliary_headers_in): Don't assume a
+       particular format for the customer header.  Allocate a block of
+       memory and read it into that.
+       (nlm_swap_auxiliary_headers_out): Write out the block of memory.
+       (nlm_compute_section_file_positions): Include length of customer
+       header when computing its size.
+
+Mon Apr 18 14:27:17 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_prep_headers): Get the space's number from the
+       backend private section data rather than target_index.
+       (bfd_som_set_section_attributes): Store the space's number
+       in the backend private section data rather than target_index.
+
+       * som.h (som_copyable_section_data_struct): Add space_number.
+
+Fri Apr 15 12:22:07 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * coff-a29k.c (reloc_processing): Always set the address of a
+       R_IHCONST reloc to that of the immediately preceding R_IHIHALF.
+       gas does this anyhow, but some other assemblers seem to leave
+       garbage in the R_IHCONST address field.
+
+       * bfd/archive.c: Consistently use ARFMAG; from
+       schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
+       (_bfd_write_archive_contents): Use ARFMAG rather than '`' and
+       '\012'.
+       (bsd_write_armap): Likewise.
+       (coff_write_armap): Likewise.
+
+       * coff-mips.c (mips_relocate_section): When relaxing, adjust local
+       relocs against the .text section as required.
+       * ecofflink.c (bfd_ecoff_debug_accumulate): When relaxing, adjust
+       PDR addresses as required.
+
+       * ecoff.c (ecoff_emit_aggregate): Take fdr argument.  Map fdr
+       index through rfd map if it exists.  Check for a couple of cases
+       which gdb handles specially.  Change all callers.
+       (ecoff_type_to_string): Take fdr argument rather than aux_ptr and
+       bigendian argument.  Change all callers.
+       (ecoff_print_symbol): Handle stStruct, stUnion and stEnum.
+
+Thu Apr 14 13:05:10 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * coff-mips.c (mips_howto_table): Add dummy entries to account for
+       numbering changes in include/coff/mips.h.  Add entries for
+       MIPS_R_RELHI and MIPS_R_RELLO.
+       (mips_ecoff_swap_reloc_in): Handle an extra bit for the reloc type
+       when little endian.  Treat internal MIPS_R_RELLO or MIPS_R_RELHI
+       relocs like MIPS_R_SWITCH, and convert r_offset from 24 to 32
+       bits.
+       (mips_ecoff_swap_reloc_out): Likewise.
+       (mips_adjust_reloc_in): Handle internal MIPS_R_RELLO or
+       MIPS_R_RELHI relocs like MIPS_R_SWITCH.
+       (mips_adjust_reloc_out): Likewise.
+       (mips_relhi_addr, mips_relhi_addend): New static variables.
+       (mips_relhi_reloc, mips_rello_reloc): New functions.
+       (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_PCREL_HI16_S into
+       MIPS_R_RELHI and turn BFD_RELOC_PCREL_LO16 into MIPS_R_RELLO.
+       (mips_relocate_hi): Rename from mips_relocate_refhi, and add pcrel
+       argument.  Changed all callers.
+       (mips_relocate_section): Rename got_reflo to got_lo and
+       reflo_int_rel to lo_int_rel.  Handle MIPS_R_RELLO and MIPS_R_RELHI
+       relocs.
+       (mips_relax_section): Adjust MIPS_R_RELHI/MIPS_R_RELLO pairs when
+       expanding a PC relative call.
+
+       * reloc.c (bfd_reloc_code_real_type): Add BFD_RELOC_PCREL_HI16_S
+       and BFD_RELOC_PCREL_LO16.
+       * bfd-in2.h: Rebuilt.
+
+Wed Apr 13 11:50:07 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * coff-sparc.c (sparccoff_vec): Set minimum alignment power to 3.
+
+Tue Apr 12 13:36:20 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_write_fixups): Always emit at least
+        one relocation for any non-bss section.
+
+Mon Apr 11 14:41:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elfcode.h (assign_file_positions_except_relocs): Don't require
+       the file alignment to correspond to the page size when linking
+       with -N.
+
+Sun Apr 10 01:02:24 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * elfcode.h (write_relocs): For rela relocations, adjust the
+       addend for relocations involving section symbols to account
+       for the lossage of 1:1 mapping from input section symbols to
+       output section symbols.
+
+Fri Apr  8 12:22:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (NAME(aout,make_sections)): New function.
+       (NAME(aout,some_aout_object_p)): Call NAME(aout,make_sections)
+       rather than making sections inline.
+       (NAME(aout,mkobject)): Don't make any sections.
+       (NAME(aout,adjust_sizes_and_vmas)): Call NAME(aout,make_sections).
+       (NAME(aout,final_link)): Don't dereference obj_textsec (abfd) or
+       obj_datasec (abfd) if they are NULL.
+       * libaout.h (NAME(aout,make_sections)): Declare.
+       * bout.c (b_out_mkobject): Don't make any sections.
+       (b_out_write_object_contents): Call aout_32_make_sections.
+       (b_out_set_section_contents): Likewise.
+       * i386os9k.c (os9k_mkobject): Don't make any sections.
+       (os9k_write_object_contents): Call aout_32_make_sections.
+       (os9k_set_section_contents): Likewise.
+
+       * aoutx.h (NAME(aout,new_section_hook)): Don't set N_EXT in target
+       index.
+
+Wed Apr  6 20:44:56 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * config.bfd, configure.host:  Add mips-*-sysv4* support.
+
+Thu Apr  7 14:23:05 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * coff-mips.c (mips_howto_table): Add entry for MIPS_R_SWITCH.
+       (mips_ecoff_swap_reloc_in): For MIPS_R_SWTICH, copy r_symndx into
+       r_offset and set r_symndx to RELOC_SECTION_TEXT.
+       (mips_ecoff_swap_reloc_out): For MIPS_R_SWITCH, get the r_symndx
+       value from the r_offset field.
+       (mips_adjust_reloc_in): Maximum r_type value is now MIPS_R_SWITCH.
+       For MIPS_R_SWITCH, copy the r_offset field into the addend field.
+       (mips_adjust_reloc_out): For MIPS_R_SWITCH, copy the addend field
+       into the r_offset field.
+       (mips_switch_reloc): New function.
+       (mips_bfd_reloc_type_lookup): Translate BFD_RELOC_GPREL32 into
+       MIPS_R_SWITCH.
+       (mips_relocate_section): Handle MIPS_R_SWITCH.
+       (mips_relax_section): Adjust MIPS_R_SWITCH offset if necessary.
+
+Thu Apr  7 11:10:51 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * elfcode.h (elf_set_section_contents): Support calling the backend
+       function elf_backend_begin_write_processing when just beginning to
+       write an object file.
+
+       * libelf.h (elf_backend_begin_write_processing): Declare.
+
+       * elf{32,64}-target.h (elf_backend_begin_write_processing): Provide
+       a default definition.
+       (elf{32,64}_bed): Add elf_backend_begin_write_processing.
+       
+       * elf32-hppa.h (elf_hppa_tc_symbol): Delete extern declaration.
+       (elf_hppa_tc_make_sections): Likewise.
+
+       * elf32-hppa.c (symext_chain_built): Delete.
+       (symext_chain_size): Renamed from symextn_contents_real_size.
+       (elf32_hppa_backend_{begin,final}_write_processing): New functions.
+       (add_entry_to_symext_chain): New function.
+       (hppa_elf_set_section_contents): Ignore writes to the symbol extension
+       section until it's been rebuilt internally.
+       (hppa_elf_get_section_contents): Symbol extension section is no
+       longer special.
+       (elf_backend_{begin,final}_write_processing): Define.
+       (elf_hppa_tc_make_sections): Simplify now that much code has
+       migrated into elf32_hppa_backend_{being,final}_write_processing.
+
+Wed Apr  6 17:24:14 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Add new target vectors to read the dynamic symbols and dynamic
+       relocs.  Change a.out to use these rather than reading the dynamic
+       symbols and relocs along with the normal symbols and relocs.
+       * targets.c (bfd_target): Add fields
+       _bfd_get_dynamic_symtab_upper_bound,
+       _bfd_canonicalize_dynamic_symtab,
+       _bfd_get_dynamic_reloc_upper_bound,
+       _bfd_canonicalize_dynamic_reloc.
+       (BFD_JUMP_TABLE_DYNAMIC): Define.
+       * libbfd-in.h (_bfd_nodynamic_get_dynamic_symtab_upper_bound):
+       Define.
+       (_bfd_nodynamic_canonicalize_dynamic_symtab): Define.
+       (_bfd_nodynamic_get_dynamic_reloc_upper_bound): Define.
+       (_bfd_nodynamic_canonicalize_dynamic_reloc): Define.
+       * bfd.c (bfd_get_dynamic_symtab_upper_bound): Define.
+       (bfd_canonicalize_dynamic_symtab): Define.
+       (bfd_get_dynamic_reloc_upper_bound): Define.
+       (bfd_canonicalize_dynamic_reloc): Define.
+       * sunos.c (MY_read_dynamic_symbols): Don't define.
+       (MY_read_dynamic_relocs): Don't define.
+       (MY_get_dynamic_symtab_upper_bound): Define.
+       (MY_canonicalize_dynamic_symtab): Define.
+       (MY_get_dynamic_reloc_upper_bound): Define.
+       (MY_canonicalize_dynamic_reloc): Define.
+       (struct sunos_dynamic_info): Change type of dynsym_count and
+       dynrel_count to long.  Add fields canonical_dynsym and
+       canonical_dynrel.
+       (sunos_read_dynamic_info): Check that BFD had DYNAMIC flag set.
+       Clear info->canonical_dynsym and info->canonical_dynrel.
+       (MY(read_dynamic_symbols)): Removed.
+       (MY(read_dynamic_relocs)): Removed.
+       (sunos_get_dynamic_symtab_upper_bound): New function.
+       (sunos_canonicalize_dynamic_symtab): New function.
+       (sunos_get_dynamic_reloc_upper_bound): New function.
+       (sunos_canonicalize_dynamic_reloc): New function.
+       * libaout.h: Declare struct reloc_ext_external and
+       reloc_std_external to avoid prototype problems.
+       (struct aout_backend_data): Remove fields read_dynamic_symbols and
+       read_dynamic_relocs.
+       (NAME(aout,translate_symbol_table)): Declare.
+       (NAME(aout,swap_ext_reloc_in)): Declare.
+       (NAME(aout,swap_std_reloc_in)): Declare.
+       * aoutx.h (NAME(aout,translate_symbol_table)): Renamed from
+       translate_symbol_table and made non-static.  Changed all callers.
+       (NAME(aout,slurp_symbol_table)): Don't read dynamic symbols.
+       (NAME(aout,slurp_reloc_table)): Don't read dynamic relocs.
+       (NAME(aout,get_reloc_upper_bound)): Don't count dynamic relocs.
+       * aoutf1.h (aout_32_sunos4_write_object_contents): Don't bother to
+       remove dynamic symbols and relocs.  They will no longer be
+       present.
+       (MY_read_dynamic_symbols): Don't define.
+       (MY_read_dynamic_relocs): Don't define.
+       (sunos4_aout_backend): Don't initialize dynamic entry points.
+       * aout-target.h (MY_read_dynamic_symbols): Don't define.
+       (MY_read_dynamic_relocs): Don't define.
+       (MY(backend_data)): Don't initialize dynamic entry points.
+       (MY_get_dynamic_symtab_upper_bound): If not defined, define to
+       _bfd_nodynamic version.
+       (MY_canonicalize_dynamic_symtab): Likewise.
+       (MY_get_dynamic_reloc_upper_bound): Likewise.
+       (MY_canonicalize_dynamic_reloc): Likewise.
+       * All backends: Added BFD_JUMP_TABLE_DYNAMIC to target vector.
+       * bfd-in2.h: Rebuilt.
+       * libbfd.h: Rebuilt.
+
+       * cf-m68klynx.c: Include sysdep.h.
+
+       * hp300hpux.c: Removed some spaces in uses of NAME to avoid
+       problems with traditional C compilers.
+
+       * targets.c (bfd_target): Rearranged fields in target vector.
+       Removed _bfd_debug_info_start, _bfd_debug_info_end and
+       _bfd_debug_info_accumulate, which were never used.
+       (BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
+       (BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
+       (BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
+       (BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
+       * All backends: Changed to use the new BFD_JUMP_TABLE_* macros
+       rather than the single JUMP_TABLE macro.  Removed many of the
+       weird macro definitions needed to support the monolithic
+       JUMP_TABLE.
+       * bfd-in.h (JUMP_TABLE): Removed.
+       * libbfd-in.h: Define a bunch of macros, and declare a few
+       functions, for use with the new BFD_JUMP_TABLE_* macros.
+       * libbfd.c (_bfd_dummy_new_section_hook): Removed.
+       (bfd_false): Set bfd_error_invalid_operation.
+       (bfd_nullvoidptr): Likewise.
+       (bfd_n1): New function.
+       (_bfd_nocore_core_file_matches_executable_p): Renamed from
+       _bfd_dummy_core_file_matches_executable_p.
+       (_bfd_nocore_core_file_failing_command): Similar rename.  Set
+       bfd_error_invalid_operation.
+       (_bfd_nocore_core_file_failing_signal): Likewise.
+       (_bfd_generic_get_section_contents): Renamed from
+       bfd_generic_get_section_contents.  Changed all callers.
+       (_bfd_generic_set_section_contents): Similar rename.
+       * ieee.c: #if 0 out ieee_bfd_debug_info_start,
+       ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate.  They
+       were never called.
+       * bfd-in2.h: Rebuilt.
+       * libbfd.h: Rebuilt.
+
+Tue Apr  5 22:10:04 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * Crude support for examining dynamic libraries.
+       * som.c (som_object_setup): Set DYNAMIC flag for SHL_MAGIC and
+       DL_MAGIC objects.
+       (som_prep_headers): Preserve the system_id for DYNAMIC objects.
+       Use SHL_MAGIC as the magic number of the DYNAMIC flag is set.
+       Write exec headers for DYNAMIC objects.
+       (som_begin_writing): DYNAMIC objects have the same alignment
+       restrictions as D_PAGED objects.
+       (bfd_section_from_som_symbol): Treat DYNAMIC objects like EXEC_P
+       objects.
+       (object_flags): Add DYNAMIC.
+
 Tue Apr  5 17:48:52 1994  Stan Shebs  (shebs@andros.cygnus.com)
 
        * i386lynx.c, sparclynx.c (NAME): Remove embedded whitespace in
@@ -846,9 +1986,7 @@ Mon Mar 14 11:41:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
 Sat Mar 12 09:46:09 1994  Ian Lance Taylor  (ian@cygnus.com)
 
        * elf32-ppc.c: Renamed from elf32-powerpc.c.
-       start-sanitize-powerpc-netware
        * nlm32-ppc.c: Renamed from nlm32-powerpc.c.
-       end-sanitize-powerpc-netware
        * Makefile.in, configure.in: Corresponding changes.
 
 Fri Mar 11 22:27:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
@@ -1137,7 +2275,6 @@ Sat Feb 19 03:17:32 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
 Fri Feb 18 11:41:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
-       start-sanitize-powerpc-netware
        Support for PowerPC NetWare.
        * nlm32-powerpc.c: New file.
        * config.bfd (powerpc-*-netware*): New target; use ppc-nlm.
@@ -1146,9 +2283,7 @@ Fri Feb 18 11:41:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
        nlm32-powerpc.o, nlm32.o, nlm.o.
        * targets.c (nlm32_powerpc_vec): Declare.
        * Makefile.in (BFD32_BACKENDS): Add nlm32-powerpc.o.
-       (CFILES): Should add nlm32-powerpc.c, but didn't, because the
-       dependencies can't be sanitized.
-       end-sanitize-powerpc-netware
+       (CFILES): Add nlm32-powerpc.c.
 
        Initial support for PowerPC ELF.  Done without an ABI, and
        probably to be changed when I get an ABI.
This page took 0.160642 seconds and 4 git commands to generate.