* elfcode.h: Include bfdlink.h. Added several new functions to do
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index df394938386001e0f90bf36b2dfb51c663d217f3..ab6ca34b74adad7ef82d48d7fda745e066d4f1ef 100644 (file)
@@ -1,5 +1,580 @@
+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.
This page took 0.035251 seconds and 4 git commands to generate.