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