* elfcode.h: Include bfdlink.h. Added several new functions to do
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 4f1fcfc603bb32fd96ec7febdb6a2a41961de8d5..ab6ca34b74adad7ef82d48d7fda745e066d4f1ef 100644 (file)
+Mon May  9 11:53:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * 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.
+
+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.
+
+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.
+
+>>>>>>> 1.1152
+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)
+start-sanitize-powerpc-netware
+
+       * nlm32-ppc.c: Complete rewrite for new version of PowerPC
+       NetWare.  Old code still present, but ifdeffed out.
+end-sanitize-powerpc-netware
+
+       * 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
+       macro uses, confuses some non-ANSI compilers.
+
+Tue Apr  5 15:50:01 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_bfd_free_cached_info): Add missing PARAMS decl.
+       Don't free anything if we don't have a bfd_object.
+       (som_close_and_cleanup): Call som_bfd_free_cached_info.
+
+Tue Apr  5 11:22:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * elf32-mips.c (mips_elf_final_link): Don't remove empty sections.
+       It turns out not to be required on Irix 5, and it causes problems
+       if the sections happen to contain symbols.
+
+       * elfcode.h (write_shdrs_and_ehdr): Correct bfd_write check.
+
+       * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
+       section->relocation is NULL; malloc might have returned NULL when
+       given a zero size if there were no relocations.
+       * bout.c (b_out_canonicalize_reloc): Likewise.
+       * coffcode.h (coff_canonicalize_reloc): Likewise.
+       * ecoff.c (ecoff_canonicalize_reloc): Likewise.
+       * elfcode.h (elf_canonicalize_reloc): Likewise.
+       * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
+       * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
+       * nlmcode.h (nlm_canonicalize_reloc): Likewise.
+       * som.c (som_canonicalize_reloc): Likewise.
+       * hp300hpux.c (MY(slurp_reloc_table)): Likewise.  Also, if malloc
+       returns NULL, don't report an error if we asked for zero bytes.
+       * i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
+       NULL, don't report an error if we asked for zero bytes.
+       * nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
+
+Mon Apr  4 15:30:49 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anything
+       if we don't have a bfd_object.
+
+       Made sure that every call to bfd_read, bfd_write, and bfd_seek
+       checks the return value and handled bfd_error correctly.  These
+       changes are not itemised.  Also:
+       * aoutx.h (emit_strtab): Change return type to boolean, and return
+       errors.
+       (NAME(aout,write_syms)): Check emit_strtab return value.
+       (NAME(aout,final_link)): Likewise.
+       * coffcode.h (coff_write_relocs): Change return type to boolean,
+       and return errors.
+       (coff_write_object_contents): Check coff_write_relocs return
+       value.
+       * i386os9k.c (os9k_swap_exec_header_in): Change return type to
+       boolean.
+       (os9k_object_p): Check os9k_swap_exec_header_in return value.
+       * oasys.c (oasys_read_record): Change return type to boolean.
+       (oasys_slurp_symbol_table: Check oasys_read_record return value.
+       (oasys_object_p, oasys_slurp_section_data): Likewise.
+       (oasys_write_record): Change return type to boolean.
+       (oasys_write_syms): Likewise.  Also, check oasys_write_record
+       return value.
+       (oasys_write_sections): Check oasys_write_record return value.
+       (oasys_write_header): Change return type to boolean.  Check
+       oasys_write_record return value.
+       (oasys_write_end, oasys_write_data): Likewise.
+       (oasys_write_object_contents): Check return values of
+       oasys_write_header, oasys_write_syms, oasys_write_data, and
+       oasys_write_end.
+       * srec.c (srec_write_record): Change return type to boolean.
+       (srec_write_header): Likewise.  Also, check srec_write_record
+       return value.
+       (srec_write_section, srec_write_terminator): Likewise.
+       (srec_write_symbols): Change return type to boolean.
+       (internal_srec_write_object_contents): Check return value of
+       srec_write_symbols, srec_write_header, srec_write_section, and
+       srec_write_terminator.
+
+       * Makefile.in: Rebuilt dependencies.
+
+Mon Apr  4 10:56:45 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * aix386-core.c (aix386_bfd_is_local_label):  Correct cast from
+       asection to asymbol.
+       * ptrace-core.c (ptrace_unix_bfd_is_local_label):  Correct cast from
+       bfd to asymbol.
+       * trad-core.c (trad_unix_bfd_is_local_label):  Correct cast from
+       asection to asymbol.
+
+Sun Apr  3 18:27:29 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_slurp_string_table): Use malloc to allocate space
+       for the cached copy of the native string table.
+       (som_slurp_symbol_table): Likewise for the native symbol table.
+       (som_slurp_reloc_table): Likewise for the native and generic
+       relocation tables.
+       (som_bfd_free_cached_info): Free the cached native strings,
+       symbols, and relocations.  Also free the canonical cached
+       relocations.
+
+Fri Apr  1 12:40:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (aout_link_write_symbols): If keep_memory is false, make
+       sure the symbol name is stored in permanent memory before adding
+       it to the string table.
+
+       * archive.c (_bfd_write_archive_contents): Once we've found an
+       object, don't bother to look for more when deciding whether to
+       build a map.
+       (compute_and_write_armap): After adding the symbols for a BFD,
+       call bfd_free_cached_info on it.
+
+       Add bfd_free_cached_info support to a.out backends.
+       * aoutx.h (aout_get_external_symbols): Renamed from
+       aout_link_get_symbols.  Read strings even if symbols have been
+       read.  Store string size in obj_aout_string_size.
+       (NAME(aout,slurp_symbol_table)): Call aout_get_external_symbols to
+       read the symbols.  Allocate the cached symbols with malloc, not
+       bfd_alloc.
+       (NAME(aout,slurp_reloc_table)): Allocate the cached relocs with
+       malloc, not bfd_alloc.
+       (NAME(aout,bfd_free_cached_info)): New function; free cached
+       symbols and relocs.
+       * libaout.h (struct aoutdata): Add external_string_size field.
+       (obj_aout_external_string_size): New accessor macro.
+       (NAME(aout,close_and_cleanup)): Don't declare.
+       (NAME(aout,bfd_free_cached_info)): Declare.
+       (aout_32_close_and_cleanup): Don't define.
+       (aout_64_close_and_cleanup): Don't define.
+       * aout-target.h (MY_bfd_free_cached_info): If not already defined,
+       define as NAME(aout,free_cached_info).
+       (MY_close_and_cleanup): If not already defined, define as
+       MY_bfd_free_cached_info.
+       * aout-adobe.c (aout_32_close_and_cleanup): Define.
+       (aout_32_bfd_free_cached_info): Don't define.
+       * bout.c (aout_32_close_and_cleanup): Define.
+       (aout_32_bfd_free_cached_info): Don't define.
+       * hp300hpux.c (MY_bfd_free_cached_info): Define as bfd_true.
+       (MY_close_and_cleanup): Don't define.
+       * i386lynx.c (NAME(lynx,slurp_reloc_table)): Allocate the cached
+       relocs with malloc, not bfd_alloc.
+       * i386os9k.c (aout_32_close_and_cleanup): Define.
+       (aout_32_bfd_free_cached_info): Don't define.
+
+       Add a new entry point to free memory cached by a BFD.
+       * targets.c (bfd_target): Add _bfd_free_cached_info field.
+       * bfd.c (bfd_free_cached_info): Define.
+       * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info.
+       * bfd-in2.h: Rebuilt.
+       * All backends: Initialize bfd_free_cached_info entry point to
+       bfd_true.
+
+       * elf32-hppa.c (elf_hppa_reloc_type_lookup): Correct type of
+       first, unused, argument.
+       (hppa_elf_is_local_label): Declare instead of
+       som_bfd_is_local_label.
+
+       * coff-a29k.c (a29k_reloc): Add reloc_entry->address to value of
+       absolute R_IREL reloc.
+
+Thu Mar 31 11:52:15 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Added some support for Irix 4 shared libraries.
+       * ecoff.c (ecoff_new_section_hook): Set SEC_SHARED_LIBRARY for a
+       .lib section.
+       (ecoff_sec_to_styp_flags): Set SEC_SHARED_LIBRARY if
+       STYP_ECOFF_LIB bit is set.
+       (ecoff_compute_section_file_positions): Round the contents of a
+       .lib section up to the next page boundary.
+       (ecoff_set_section_contents): If we see a .lib section, increment
+       the vma by one to count the number of shared libraries we have.
+       (ecoff_write_object_contents): Don't crash if we see a
+       STYP_ECOFF_LIB section, and don't adjust text_start or data_start
+       or bss_size either.
+
+       * coffcode.h (CALC_ADDEND): Change to fetch original symbol value
+       from original BFD, rather than using value of current BFD symbol.
+       Needed for new linker.
+       * coff-sparc.c (CALC_ADDEND): Likewise.
+
+       * ecoff.c (ecoff_write_object_contents): Set the text_start and
+       data_start entries in the optional header correctly even if a text
+       or data section starts at location zero.
+
+       * reloc.c (bfd_reloc_code_real_type): Added BFD_RELOC_26 (from sef
+       and raeburn).
+       * bfd-in2.h: Rebuilt.
+
+       * nlm32-i386.c (nlm_i386_read_import): Null terminate the symbol
+       name.
+       * nlm32-alpha.c (nlm_alpha_read_import): Likewise.
+       * nlm32-sparc.c (nlm_sparc_read_import): Likewise.
+
+       * coffgen.c (coff_write_symbol): Reindented.  Changed to return
+       boolean, and changed written to unsigned int *.  Check error
+       returns from called functions.
+       (coff_write_alien_symbol): Likewise.
+       (coff_write_native_symbol): Likewise.
+       (coff_write_symbols): Likewise.  Reworked checks on whether to
+       write symbol name to string table for clarity and to avoid core
+       dumping when given a non COFF symbol.
+       * libcoff-in.h (coff_write_symbols): Declare as returning boolean.
+       * libcoff.h: Rebuilt.
+       * coffcode.h (coff_write_object_contents): Check return value of
+       coff_write_symbols.
+
+Wed Mar 30 16:25:41 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Changes to let BFD return an error indication from
+       get_symtab_upper_bound, bfd_canonicalize_symtab,
+       bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc.  They now
+       return long instead of unsigned int, and use -1 to indicate an
+       error.  Along the way, rename get_symtab_upper_bound to
+       bfd_get_symtab_upper_bound.
+       * bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on
+       errors.
+       (bfd_canonicalize_reloc): Likewise.
+       * syms.c (bfd_get_symtab_upper_bound): Renamed from
+       get_symtab_upper_bound.
+       * targets.c (bfd_target): Renamed _get_symtab_upper_bound to
+       _bfd_get_symtab_upper_bound, and changed it and
+       _bfd_canonicalize_symtab and _get_reloc_upper_bound and
+       _bfd_canonicalize_reloc to all return long.
+       * aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors.
+       (NAME(aout,canonicalize_reloc)): Likewise.
+       (NAME(aout,get_reloc_upper_bound)): Likewise.
+       (NAME(aout,get_symtab_upper_bound)): Likewise.
+       * bout.c (b_out_canonicalize_reloc): Likewise.
+       (b_out_get_reloc_upper_bound): Likewise.
+       * coffcode.h (coff_canonicalize_reloc): Likewise.
+       * coffgen.c (coff_get_symtab_upper_bound): Likewise.
+       (coff_get_symtab): Likewise.
+       (coff_get_reloc_upper_bound): Likewise.
+       * ecoff.c (ecoff_get_symtab_upper_bound): Likewise.
+       (ecoff_get_symtab): Likewise.
+       (ecoff_canonicalize_reloc): Likewise.
+       * elfcode.h (elf_get_symtab_upper_bound): Likewise.
+       (elf_get_reloc_upper_bound): Likewise.
+       (elf_canonicalize_reloc): Likewise.
+       (elf_get_symtab): Likewise.
+       * hp300hpux.c (MY(get_symtab)): Likewise.
+       (MY(get_symtab_upper_bound)): Likewise.
+       (MY(canonicalize_reloc)): Likewise.
+       * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
+       * ieee.c (ieee_slurp_external_symbols): Change return type to
+       boolean.  Check for errors from get_symbol.
+       (ieee_slurp_symbol_table): Change return type to boolean.  Check
+       for errors from ieee_slurp_external_symbols.
+       (ieee_get_symtab_upper_bound): Return long, and -1 on errors.
+       (ieee_get_symtab): Likewise.
+       (ieee_get_reloc_upper_bound): Likewise.
+       (ieee_canonicalize_reloc): Likewise.
+       * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
+       * nlmcode.h (nlm_get_symtab_upper_bound): Likewise.
+       (nlm_get_symtab): Likewise.
+       (nlm_get_reloc_upper_bound): Likewise.
+       (nlm_canonicalize_reloc): Likewise.
+       * oasys.c (oasys_get_symtab_upper_bound): Likewise.
+       (oasys_get_symtab): Likewise.
+       (oasys_get_reloc_upper_bound): Likewise.
+       (oasys_canonicalize_reloc): Likewise.
+       * som.c (som_get_symtab_upper_bound): Likewise.
+       (som_get_symtab): Likewise.
+       (som_get_reloc_upper_bound): Likewise.
+       (som_canonicalize_reloc): Likewise.
+       * srec.c (srec_get_symtab_upper_bound): Likewise.
+       (srec_get_symtab): Likewise.
+       (srec_get_reloc_upper_bound): Define as bfd_0l.
+       (srec_canonicalize_reloc): Likewise.
+       * tekhex.c (tekhex_get_symtab): Return long, and -1 on errors.
+       (tekhex_get_symtab_upper_bound): Likewise.
+       (tekhex_get_reloc_upper_bound): Define as bfd_0l.
+       (tekhex_canonicalize_reloc): Likewise.
+       * libaout.h (NAME(aout,get_symtab_upper_bound)): Change
+       declaration to return long.
+       (NAME(aout,get_symtab)): Likewise.
+       (NAME(aout,canonicalize_reloc)): Likewise.
+       (NAME(aout,get_reloc_upper_bound)): Likewise.
+       * libcoff-in.h (coff_get_symtab_upper_bound): Likewise.
+       (coff_get_symtab): Likewise.
+       (coff_get_reloc_upper_bound): Likewise.
+       * libecoff.h (ecoff_get_symtab_upper_bound): Likewise.
+       (ecoff_get_symtab): Likewise.
+       (ecoff_canonicalize_reloc): Likewise.
+       * libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise.
+       (bfd_elf32_get_symtab): Likewise.
+       (bfd_elf32_get_reloc_upper_bound): Likewise.
+       (bfd_elf32_canonicalize_reloc): Likewise.
+       (bfd_elf64_get_symtab_upper_bound): Likewise.
+       (bfd_elf64_get_symtab): Likewise.
+       (bfd_elf64_get_reloc_upper_bound): Likewise.
+       (bfd_elf64_canonicalize_reloc): Likewise.
+       * libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise.
+       (nlmNAME(get_symtab)): Likewise.
+       (nlmNAME(get_reloc_upper_bound)): Likewise.
+       (nlmNAME(canonicalize_reloc)): Likewise.
+       * archive.c (compute_and_write_armap): Use error_return and
+       no_memory_return labels rather than freeing information in various
+       places.  Change storage, symcount and src_count to long.  Check
+       errors from bfd_get_symtab_upper_bound and
+       bfd_canonicalize_symtab.
+       * bout.c (b_out_relax_section): Change reloc_size to long.  Check
+       for errors from bfd_get_reloc_upper_bound and
+       bfd_canonicalize_reloc.
+       (b_out_get_relocated_section_contents): Likewise.
+       * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
+       Likewise.
+       * elf32-mips.c: Likewise.
+       * elf32-hppa.c (hppa_elf_stub_finish): Likewise.
+       (hppa_look_for_stubs_in_section): Check for errors from
+       bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and
+       bfd_canonicalize_reloc.
+       * ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors
+       from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
+       * linker.c (generic_link_read_symbols): Likewise.
+       (_bfd_generic_final_link): Check for errors from
+       bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
+       * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
+       * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
+       (bfd_coff_reloc16_get_relocated_section_contents): Likewise.
+       * libbfd.c (bfd_0l): New function.
+       * libbfd-in.h (bfd_0l): Declare.
+       * aix386-core.c: Change get_symtab_upper_bound, get_symtab,
+       get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather
+       than bfd_0u.
+       * cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise.
+       * irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise.
+       * bfd-in2.h: Rebuilt.
+       * libbfd.h: Rebuilt.
+       * libcoff.h: Rebuilt.
+
+       * nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables
+       temp and name.
+
+Wed Mar 30 08:33:04 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * hosts/dpx2.h: Define POSIX_UTIME.
+
+Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * i386dynix.c, config/i386-dynix.mt:  New files, handling Dynix
+       variant of a.out.
+       * configure.in, config.bfd:  Use them for Dynix.
+       * Makefile.in:  Add dependencies for i386dynix.o. 
+       * targets.c:  Add definition for i386dynix_vec.
+       * hosts/symmetry.h:  Do not define TRAD_CORE_USER_OFFSET for Dynix.
+       Define HOST_DATA_START_ADDR and TRAD_UNIX_CORE_FILE_FAILING_SIGNAL
+       for Dynix. Remove inclusion of dynix3.h, Dynix bfd is now handled by
+       i386dynix.c
+
+Mon Mar 28 12:53:27 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * Makefile.in (BFD32_BACKENDS): Add coff-sparc.o.
+
+       * coffcode.h (coff_set_flags): Handle bfd_arch_powerpc like
+       bfd_arch_rs6000.
+
+       * config.bfd (powerpc-*-aix*): New target; use rs6000.mt.
+       * config/rs6000.mt (SELECT_ARCHITECTURES): Add bfd_powerpc_arch.
+
+       * aoutx.h (translate_from_native_sym_flags): Set SEC_RELOC flag
+       for generated constructor section.
+
+Sun Mar 27 16:25:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_begin_writing): New approach at dealing with holes
+       in executables left by the HP linker.  Does not rely on subspace
+       alignments as subspaces are *NOT* guaranteed to be properly
+       aligned in an executable (can you believe that!).
+
+Sat Mar 26 10:25:43 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_get_section_contents): New function.  Do not try
+       to actually read data from a section that doesn't have either
+       SEC_LOAD or SEC_DEBUGGING set (eg $BSS$) just return true.
+
+        * libbfd.c (bfd_read): Set bfd_error as appropriate for a short
+       read. (bfd_error_system_call or bfd_error_file_truncated).
+
+       * som.c: Do not blindly set bfd_error_system_call after a
+       failing bfd_read, bfd_write, or bfd_seek.  In a few places
+       (like som_object_p) override the error status set by bfd_read.
+
+       * aix386-core.c, aout-encap,c archive.c, bout.c: Likewise.
+       * coff-rs6000.c, coffgen.c ecoff.c, elf.c: Likewise.
+       * elf32-hppa.c, elfcode.h, hp300hpux.c, i386lynx.c: Likewise.
+       * nlm32-alpha.c, nlm32-i386.c, nlm32-sparc.c: Likewise.
+
+       * som.c: Check return values from several bfd_{seek,read,write}
+       calls that we just assumed were not failing.
+
+Fri Mar 25 11:44:06 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * hosts/sysv4.h (HAVE_PROCFS): Add comments about ptx4.
+       * config/sysv4.mh: Add comment.
+       * config/symmetry.mh: Change comment.
+       * configure.host: Use sysv4, not symmetry, for i[34]86-sequent-sysv4*.
+
+Fri Mar 25 17:10:45 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Changes to support linker relaxing of embedded MIPS PIC code to
+       use a five instruction sequence for function calls which are out of
+       range of the bal instruction.
+       * libecoff.h (struct ecoff_section_tdata): Define.
+       (ecoff_section_data): Define.
+       (ecoff_bfd_relax_section): Don't define.
+       * ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
+       the debugging information if it has already been read.
+       (ecoff_indirect_link_order): Handle _cooked_size being different
+       from _raw_size.  Don't reread the contents or the relocs if they
+       have already been read in.
+       * coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
+       18 to 16.
+       (PCREL16_EXPANSION_ADJUSTMENT): Define.
+       (mips_relocate_refhi): Take adjust argument.
+       (mips_relocate_section): Handle reloc offsets stored in section
+       used_by_bfd field.  Call mips_relax_pcrel16 to handle details of
+       expanding an out of range PCREL16.  Keep trace of adjustments
+       required by expansions.  Set s and unset h when converting a reloc
+       from undefined to section.  Change handling of PC relative relocs:
+       if against a section, they are correct in the object file, if
+       against an external symbol they are pcrel_offset.
+       (mips_relax_section): New function.
+       (mips_relax_pcrel16): New function.
+       (ecoff_bfd_relax_section): Define.
+       * coff-alpha.c (ecoff_bfd_relax_section): Define.
+       * ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
+       built by mips_relax_section when writing out addresses.
+       * elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
+
+       * aoutx.h (NAME(aout,find_nearest_line)): The caller expects
+       functionname_ptr to be set to a symbol name, so prepend
+       symbol_leading_char.
+
+Thu Mar 24 11:33:46 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
+
+       * coff-h8300.c (h8300_reloc16_extra_cases): Add relaxing info
+       for 16bit relative branches.
+       * coff-h8500.c (r_high8, r_low16, r_high16): Don't complain on
+       overflow.
+
+Thu Mar 24 09:21:13 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * som.c (som_bfd_prep_for_ar_write): Ignore non-SOM objects.
+       (som_bfd_ar_write_symbol_stuff, som_write_armap): Likewise.
+
+Wed Mar 23 14:29:31 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+       * netbsd386.c (N_SET_FLAGS): Delete the old definition.
+
+Wed Mar 23 14:58:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Clean up the relaxing code for the new linker.
+       * targets.c (_bfd_relax_section): Take boolean *again argument
+       rather than asymbol list.
+       * bfd.c (bfd_relax_section): Change name of fourth argument from
+       symbols to again.
+       * reloc.c (bfd_generic_relax_section): Take boolean *again
+       argument rather than asymbol list.  Always return true.
+       * bout.c: Include genlink.h.
+       (aligncode, perform_slip): Declare.
+       (perform_slip): Take BFD argument rather than asymbol list.
+       Changed all callers.  Get the symbols from the BFD.  Change the
+       hash table entry value as well as the symbol value.
+       (abs32code): Take BFD argument rather than asymbol list.  Changed
+       all callers.
+       (aligncode): Likewise.
+       (b_out_relax_section): Take boolean *again argument rather than
+       asymbol list.  Only return false if an error occurred.  Set *again
+       to false.  Get symbols from BFD.
+       * reloc16.c: Include genlink.h.
+       (bfd_perform_slip): Take BFD argument rather than asymbol list.
+       Get the symbols from the BFD.  Change the hash table entry value
+       as well as the symbol value.
+       (bfd_coff_reloc16_relax_section): Take boolean *again argument
+       rather than asymbol list.  Only return false if an error occurred.
+       Set *again to false.  Get symbols from BFD.
+       * coffcode.h (bfd_coff_backend_data): Change
+       _bfd_coff_reloc16_estimate to take BFD argument rather than
+       asymbol list.
+       (bfd_coff_reloc16_estimate): Corresponding change.
+       (dummy_reloc16_estimate): Corresponding change.
+       * libcoff-in.h (bfd_coff_reloc16_relax_section): Change
+       declaration to take boolean * rather than asymbol list.
+       (bfd_perform_slip): Change declaration to take BFD rather than
+       asymbol list.
+       * coff-h8300.c (h300_reloc16_estimate): Take BFD argument rather
+       than asymbol list.  Changed calls to bfd_perform_slip.
+       * bfd-in2.h: Rebuilt.
+       * libbfd.h: Rebuilt.
+       * libcoff.h: Rebuilt.
+       * Makefile.in: Rebuilt dependencies.
+
+       * genlink.h (_bfd_generic_link_get_symbols): Define.
+       (_bfd_generic_link_get_symcount): Define.
+       * linker.c (generic_link_read_symbols): New function.
+       (generic_link_add_object_symbols): Use it.  Use
+       _bfd_generic_link_get_symbols and _bfd_generic_link_get_symcount
+       to get the symbols from the BFD.
+       (generic_link_check_archive_element): Likewise.
+       (_bfd_generic_final_link): Likewise.
+       (_bfd_generic_link_output_symbols): Likewise.
+       (default_indirect_link_order): Likewise.
+       (generic_link_add_symbol_list): Store pointer to hash table entry
+       in asymbol udata field.
+
+Tue Mar 22 13:09:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * coff-mips.c (mips_howto_table): Add entry for new MIPS_R_PCREL16
+       reloc, used in embedded PIC code.
+       (mips_adjust_reloc_in): Change sanity check to permit new reloc.
+       (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_16_PCREL_S2 into
+       MIPS_R_PCREL16.
+
+       * elf32-mips.c (mips_elf_final_link): Account for link_order
+       relocs when allocating space for relocations.  Set SEC_RELOC flag
+       for any section which has relocs.  Handle link_order relocs in
+       link_order loop.  Use _bfd_generic_link_add_symbols_collect for
+       add_symbls entry point.
+
+       * linker.c (_bfd_generic_final_link): Set reloc_count to 0 before
+       counting relocs.  Set SEC_RELOC flag for any section which has
+       relocs.
+
+       * linker.c (_bfd_default_link_order): Handle bfd_data_link_order.
+
+       * linker.c (_bfd_generic_link_add_symbols): Just call
+       generic_link_add_symbols.
+       (_bfd_generic_link_add_symbols_collect): New function, like
+       _bfd_generic_link_add_symbols but also collect constructors and
+       destructors by name as collect2 does.
+       (generic_link_add_symbols): New function, like old
+       _bfd_generic_link_add_symbols but with collect argument.
+       (generic_link_add_object_symbols): Take collect argument.
+       (generic_link_check_archive_element_no_collect): New function.
+       (generic_link_check_archive_element_collect): New function.
+       (generic_link_check_archive_element): Take collect argument.
+       (generic_link_add_symbol_list): Take collect argument.
+       (_bfd_generic_link_add_one_symbol): Rename constructor argument to
+       collect.
+       * libbfd-in.h (_bfd_generic_link_add_symbols_collect): Declare.
+       * libbfd.h: Rebuilt.
+
+Tue Mar 22 10:04:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * archive.c (bfd_construct_extended_name_table): Use ar_padchar
+       for first character in an extended name.
+       (_bfd_write_archive_contents): If ar_padchar == '/', then use
+       "//" as the name of the special archive member holding the
+       extended name table.
+
+Mon Mar 21 12:28:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       Support for link_order types which generate relocs in order to
+       support -Ur in the linker.
+       * linker.c (generic_link_add_symbol_list): Remove bitsize argument
+       from call to _bfd_generic_link_add_one_symbol.
+       (_bfd_generic_link_add_one_symbol): Remove bitsize argument.
+       Don't pass bitsize to constructor call back.  Pass BFD_RELOC_CTOR
+       instead of bitsize to add_to_set call back.
+       (_bfd_generic_final_link): Account for link_order relocs when
+       allocating space for relocations.  Handle them in link_order loop.
+       (_bfd_generic_reloc_link_order): New function.
+       (_bfd_default_link_order): If a reloc_link_order is seen here,
+       abort.
+       (_bfd_count_link_order_relocs): New function.
+       * libbfd-in.h (_bfd_generic_link_add_one_symbol): Remove bitsize
+       argument from declaration.
+       (_bfd_generic_reloc_link_order): Declare.
+       (_bfd_count_link_order_relocs): Declare.
+       * libbfd.h: Rebuilt.
+       * aoutx.h (aout_link_add_symbols): Remove bitsize argument from
+       call to _bfd_generic_link_add_one_symbol.
+       (NAME(aout,final_link)): Account for link_order relocs when
+       allocating space for relocations.  Handle them after handling all
+       input BFDs.
+       (aout_link_reloc_link_order): New function.
+       * ecoff.c (ecoff_link_add_externals): Remove bitsize argument from
+       call to _bfd_generic_link_add_one_symbol.
+       (ecoff_bfd_final_link): Account for link_order relocs when
+       allocating space for relocations.  Handle them in link_order loop.
+       (ecoff_link_write_external): Set the storage class of a defined
+       linker created symbol based on the section it is in.  Correct
+       bfd_link_hash_weak case to use .sc rather than .st.
+       (ecoff_reloc_link_order): New function.
+       * coff-alpha.c (alpha_bfd_reloc_type_lookup): Handle
+       BFD_RELOC_CTOR.
+       * coff-mips.c (mips_bfd_reloc_type_lookup): Likewise.
+
+       * sunos.c (sunos_read_dynamic_info): Remove unused locals dynsym
+       and buf.
+
+       * cisco-core.c (cisco_core_file_p): Only pass one argument to
+       bfd_zmalloc.  Free a pointer, not a union.
+       (cisco_bfd_is_local_label): Correct cast from asection to asymbol.
+
+Sun Mar 20 09:24:36 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * bfd/som.c (som_begin_writing): Fix thinko (off by one error).
+
+       * som.c (bfd_section_from_som_symbol): Only to do the value
+       comparison for function symbols within executables.
+
+       * som.c (bfd_section_from_som_symbol): Renamed from
+       som_section_from_subspace_index.  Pass in a native SOM symbol.
+       For executables, iterate through the sections to find out
+       which contains the symbol's address rather than using the
+       symbol_info field.  (symbol_info has a different meaning for
+       dynamicly linked executables.)
+
+       * trad-core.c (trad_unix_core_file_p): Don't pass abfd to
+       bfd_zmalloc.
+
+       * som.c (som_begin_writing): Fix braino (one call to align
+       space/subspace data was done unconditionally rather than
+       just for executables.)
+
+       * som.c (som_begin_writing): Align text in all executables to
+       make HPUX kernel happy.  Fixes strip/objcopy for shared
+       executables.
+
 Sat Mar 19 07:06:59 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
 
        * som.c (som_begin_writing): Account for alignment needs of
@@ -14,7 +1257,10 @@ Fri Mar 18 19:12:47 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
        * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
        * libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
        * cisco-core.c: New file.
-       * Makfile.in: Change accordingly.
+       * Makefile.in: Change accordingly.
+       * configure.in: Recognize cisco_core_vec.
+       * config/m68k-aout.mt (SELECT_VECS): Add cisco_core_vec.
+       * targets.c: Add cisco_core_vec.
        * bfd-in2.h: Rebuilt.
 
 Fri Mar 18 18:13:49 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
This page took 0.034071 seconds and 4 git commands to generate.