Thu May 30 12:38:49 1996 Ian Lance Taylor * elf32-mips.c (mips_elf_object_p): Handle E_MIPS_ARCH_4. (mips_elf_final_write_processing): Likewise. Wed May 29 16:15:29 1996 Ian Lance Taylor 64-bit MIPS ELF ABI objdump support: * elf64-mips.c: New file. * Makefile.in: Rebuild dependencies. (BFD64_BACKENDS): Add elf64-mips.o. (BFD64_BACKENDS_CFILES): Add elf64-mips.c. * config.bfd (mips*el-*-elf*) Add bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec to targ_selvecs. (mips*-*-elf*): Likewise. * confingure.in: Add bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec to vector switch. * configure: Rebuild. * elf32-mips.c (_bfd_mips_elf_section_from_shdr): New function, broken out of mips_elf_section_from_shdr. (mips_elf32_section_from_shdr): Rename from mips_elf_section_from_shdr. Call new function. (elf_backend_section_from_shdr): Update name of renamed function. * elf-bfd.h (struct elf_size_info): Change second parameter of write_out_phdrs to be const. Likewise for second parameter of swap_symbol_out. (struct bfd_elf_section_data): Add rel_hdr2 field. (bfd_elf32_swap_symbol_in): Change second parameter to be const. (bfd_elf32_swap_symbol_out): Likewise. (bfd_elf32_swap_reloc_in): Likewise. (bfd_elf32_swap_reloc_out): Likewise. (bfd_elf32_swap_reloca_in): Likewise. (bfd_elf32_swap_reloca_out): Likewise. (bfd_elf32_swap_phdr_in): Likewise. (bfd_elf32_swap_phdr_out): Likewise. (bfd_elf32_swap_dyn_in): Likewise. (bfd_elf32_swap_dyn_out): Likewise. (bfd_elf32_slurp_symbol_table): Declare. (bfd_elf32_write_shdrs_and_ehdr): Declare. (bfd_elf32_write_out_phdrs): Declare. (bfd_elf64_swap_symbol_in): Change second parameter to be const. (bfd_elf64_swap_symbol_out): Likewise. (bfd_elf64_swap_reloc_in): Likewise. (bfd_elf64_swap_reloc_out): Likewise. (bfd_elf64_swap_reloca_in): Likewise. (bfd_elf64_swap_reloca_out): Likewise. (bfd_elf64_swap_phdr_in): Likewise. (bfd_elf64_swap_phdr_out): Likewise. (bfd_elf64_swap_dyn_in): Likewise. (bfd_elf64_swap_dyn_out): Likewise. (bfd_elf64_slurp_symbol_table): Declare. (bfd_elf64_write_shdrs_and_ehdr): Declare. (bfd_elf64_write_out_phdrs): Declare. (_bfd_mips_elf_section_from_shdr): Declare. * elf.c (bfd_section_from_shdr): Remove assertion requiring SHT_REL/SHT_RELA to match use_rela_p. If there is already a reloc section for the section, add the new one to rel_hdr2. Increment reloc_count rather than setting it. * elfcode.h (elf_slurp_symbol_table): Define name as macro. Remove static declaration. (elf_write_shdrs_and_ehdr): Define name as macro. (elf_write_out_phdrs): Likewise. (elf_swap_ehdr_in, elf_swap_ehdr_out): Declare. (elf_swap_shdr_in, elf_swap_shdr_out): Declare. (elf_swap_symbol_in): Change second parameter to be const. (elf_swap_symbol_out): Likewise. (elf_swap_ehdr_in, elf_swap_ehdr_out): Likewise. (elf_swap_shdr_in, elf_swap_shdr_out): Likewise. (elf_swap_phdr_in, elf_swap_phdr_out): Likewise. (elf_swap_reloc_in, elf_swap_reloc_out): Likewise. (elf_swap_reloca_in, elf_swap_reloca_out): Likewise. (elf_write_out_phdrs): Rename from write_out_phdrs. Change second parameter to be const. Make non-static. (elf_write_shdrs_and_ehdr): Rename from write_shdrs_and_ehdr. Make non-static. (elf_slurp_symbol_table): Make non-static. (NAME(_bfd_elf,size_info)): Update names of renamed functions. * elfxx-target.h (elf_info_to_howto): Define if not defined. (elf_backend_size_info): Likewise. (elfNN_bed): Use elf_backend_size_info. * targets.c (bfd_elf64_bigmips_vec): Declare. (bfd_elf64_littlemips_vec): Declare. (bfd_target_vector): Add bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec if BFD64 is defined. * libbfd.c (bfd_get_file_window): Add cast to fprintf argument. Tue May 28 11:42:08 1996 Ian Lance Taylor * coff-sh.c (sh_relax_delete_bytes): Insert nop instructions, not zeroes, in alignment holes. * configure: Rebuild with autoconf 2.10. * aoutx.h (NAME(aout,find_nearest_line)): Make room for the potential leading underscore in the allocated buffer. Fri May 24 14:28:38 1996 Michael Meissner * elf32-ppc.c (ppc_elf_add_symbol_hook): Do not put small common symbols into .sbss if this is a relocatable link. Thu May 23 12:26:24 1996 Ian Lance Taylor * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Warn about undefined symbols when creating a shared library. Fri May 17 13:54:15 1996 Ian Lance Taylor * coff-sh.c: Add a bunch of new code and static const arrays to support aligning loads and stores on four byte memory boundaries. Also: (sh_coff_howtos): Add entries for R_SH_CODE, R_SH_DATA and R_SH_LABEL. (sh_relax_section): Look for R_SH_CODE relocs. If we find one, call sh_align_loads. (sh_relax_delete_bytes): Don't mark R_SH_CODE or R_SH_DATA relocs as unused. Thu May 16 16:34:13 1996 Ian Lance Taylor * cache.c (bfd_open_file): Unlink the file before opening it for write. From Marty Leisner . * opncls.c (bfd_fdopenr): Set opened_once. Tue May 14 12:35:32 1996 Ian Lance Taylor * som.c (som_slurp_reloc_table): Clear external_relocs cache after freeing it. * libbfd.c: Remove #ifdef FILE_OFFSET_IS_CHAR_INDEX, and compile the code unconditionally. Mon May 13 19:51:37 1996 Ian Lance Taylor * libcoff-in.h (struct pei_section_tdata): Define structure. (pei_section_data): Define macro. * libcoff.h: Rebuild. * coffcode.h (coff_set_alignment_hook): If COFF_IMAGE_WITH_PE, store s_paddr field in pei_section_data. (coff_compute_section_file_positions): Use pei_section_data rather than _cooked_size, and don't overwrite an existing value. (coff_write_object_contents): If COFF_OBJ_WITH_PE, set s_paddr to 0. If COFF_IMAGE_WITH_PE, set s_paddr to pei_section_data. * peicode.h (coff_bfd_copy_private_section_data): Define if COFF_IMAGE_WITH_PE. (pe_bfd_copy_private_section_data): New static function if COFF_IMAGE_WITH_PE. Wed May 8 16:10:38 1996 Ian Lance Taylor * srec.c (srec_set_arch_mach): Write as a function rather than a macro definition. * xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): If an archive has no map, just check each member in turn to see whether it is required. Wed May 8 09:17:34 1996 Michael Meissner * ppcboot.c (ppcboot_object_p): Check for type 0x41 in partition table. Call BFD_ASSERT to validate header size, instead of calling fatal. (ppcboot_bfd_print_private_bfd_data): Put quotes around partition name. Tue May 7 16:10:19 1996 Michael Meissner * ppcboot.c: New target for looking at PPCbug boot records. * config{ure.in,.bfd}: Add support for ppcboot target. * targets.c: Ditto. * configure: Regenerate. Tue May 7 11:15:19 1996 Jeffrey A Law (law@cygnus.com) * coff-h8300.c (howto_table): Update names to match recent changes to include/coff/internal.h. Fix minor errors in the existing relocs. Add R_MOVL1 and R_MOVL2. (rtype2howto): Similarly. (h8300_reloc16_estimate): Rewrite to simplify, fix bugs in the existing relaxing code and peform more relaxing. (h8300_reloc16_extra_cases): Likewise. Mon May 6 18:24:09 1996 Jeffrey A Law (law@cygnus.com) * reloc16.c (bfd_coff_reloc16_get_value): Handle common symbols correctly. Sat May 4 05:08:45 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) * elfcode.h (elf_object_p): Reject generic ELF target if e_machine matches an alternate machine code in a specific backend. * netbsd-core.c (netbsd_core_vec): Remove initializer for obsolete align_power_min field. Fri May 3 13:07:35 1996 Jeffrey A Law (law@cygnus.com) * coff-h8300.c (reloc_howto_type): Add howto entry for R_PCRWORD_B. (rtype2howto): Handle R_PCRWORD_B. (h8300_reloc16_extra_cases): Handle R_PCRWORD_B. (h8300_reloc_16_estimate): Likewise. Try to turn a 16bit pc-relative branch (R_PCRWORD) into an 8bit pc-relative branch (R_PCWORD_B). Fri May 3 10:47:41 1996 Ian Lance Taylor * aoutx.h (translate_from_native_sym_flags): Set the section for BSF_CONSTRUCTOR symbols. * cofflink.c (_bfd_coff_link_input_bfd): Correct setting of last_bf_index. Wed May 1 18:39:32 1996 Doug Evans * coffcode.h (coff_write_object_contents): In comdat section lookup, stop looking when section is found. Wed May 1 14:17:57 1996 Ian Lance Taylor * coffcode.h (STRING_SIZE_SIZE): Define. (styp_to_sec_flags): Handle long symbol names when looking for the section symbol. (bfd_coff_backend_data): Add _bfd_coff_long_section_names field. (bfd_coff_long_section_names): Define. (coff_write_object_contents): Handle long section names. (bfd_coff_std_swap_table): Initialize new field. * libcoff.h: Rebuild. * coffgen.c (make_a_section_from_file): Handle long section names. (coff_write_symbols): Handle long section names. * coff-alpha.c (alpha_ecoff_backend_data): Initialize new field. * coff-mips.c (mips_ecoff_backend_data): Likewise. * pe-arm.c (COFF_LONG_SECTION_NAMES): Define. * pei-arm.c (COFF_LONG_SECTION_NAMES): Define. * pe-i386.c (COFF_LONG_SECTION_NAMES): Define. * pei-i386.c (COFF_LONG_SECTION_NAMES): Define. * pe-ppc.c (COFF_LONG_SECTION_NAMES): Define. * pei-ppc.c (COFF_LONG_SECTION_NAMES): Define. * bout.c (b_out_callback): Set lma of sections. (b_out_bfd_get_relocated_section_contents): Rename in_abfd parameter to output_bfd. Used input_bfd instead of output_bfd in several places. Tue Apr 30 17:56:39 1996 Ian Lance Taylor * aoutx.h (translate_from_native_sym_flags): Don't create SEC_CONSTRUCTOR sections. * ecoff.c (ecoff_set_symbol_info): Likewise. * elf32-mips.c (mips_elf_copy_private_bfd_data): Copy elf_gp. From Don Bowman . Tue Apr 30 17:06:32 1996 Doug Evans * coff-arm.c (armcoff_little_vec): If COFF_WITH_PE is defined, add SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags. Mon Apr 29 13:15:17 1996 Ian Lance Taylor * elf32-mips.c (struct mips_elf_link_hash_entry): Add mips_32_relocs field. (mips_elf_link_hash_newfunc): Initialize mips_32_relocs field. (mips_elf_relocate_section): Copy R_MIPS_REL32 and R_MIPS_32 relocs against a global symbol which is not defined in a regular file. (mips_elf_check_relocs): For a R_MIPS_REL32 or R_MIPS_32 reloc against a global symbol, increment mips_32_relocs. (mips_elf_adjust_dynamic_symbol): If mips_32_relocs is set, and the symbol is not defined in a regular file, make room in the .rel.dyn section. Fri Apr 26 18:00:37 1996 Ian Lance Taylor * ecoff.c (ecoff_compute_section_file_positions): Track the real file position and the virtual file position separately. Set filepos information bsaed on the real file position. (_bfd_ecoff_set_section_contents): Handle .lib sections like the Jan 23 change to coffcode.h. * som.c (som_slurp_symbol_table): Set the symbol count to the number of BFD symbols created. Fri Apr 26 12:34:29 1996 Michael Meissner * elf32-ppc.c (ppc_elf_check_relocs): Forward relocations to the output file if linking shared objects. Loop to check all relocs, rather than returning false on first error. Thu Apr 25 13:25:12 1996 Michael Meissner * elf32-ppc.c (ppc_elf_create_linker_section): Add PLT case. (ppc_elf_additional_program_headers): If .interp section, bump # of program headers by 1. (ppc_elf_adjust_dynamic_symbol): Flesh out support. (ppc_elf_size_dynamic_sections): Add support for .plt section. (ppc_elf_check_relocs): Print out filename in debug code. Enable PLT support. (ppc_elf_finish_dynamic_symbol): Add support for PLT's, beef up debug output. (ppc_elf_relocate_section): If the output section isn't defined, don't abort, just give an error message. * elflink.c (_bfd_elf_create_dynamic_sections): If the section being created is .sdata or .sdata2, don't make the symbol dynamic. Wed Apr 24 14:04:07 1996 Ian Lance Taylor * xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Look through the members of an archive for dynamic objects with no symbols, and pass them directly to check_archive_element. (xcoff_link_check_ar_symbols): Pass dynamic objects to xcoff_link_check_dynamic_ar_symbols. (xcoff_link_check_dynamic_ar_symbols): New static function. * coff-rs6000.c (rs6000coff_vec): Change BFD_JUMP_TABLE_DYNAMIC from _bfd_nodynamic to _bfd_xcoff. * libcoff-in.h (_bfd_xcoff_get_dynamic_symtab_upper_bound): Declare. (_bfd_xcoff_canonicalize_dynamic_symtab): Declare. (_bfd_xcoff_get_dynamic_reloc_upper_bound): Declare. (_bfd_xcoff_canonicalize_dynamic_reloc): Declare. * libcoff.h: Rebuild. * xcofflink.c (xcoff_swap_ldrel_in): New static function. (xcoff_get_section_contents): New static function. (_bfd_xcoff_get_dynamic_symtab_upper_bound): New function. (_bfd_xcoff_canonicalize_dynamic_symtab): New function. (_bfd_xcoff_get_dynamic_reloc_upper_bound): New function. (xcoff_dynamic_reloc): New static variable. (_bfd_xcoff_canonicalize_dynamic_reloc): New function. (xcoff_link_add_dynamic_symbols): Use xcoff_get_section_contents. Tue Apr 23 12:48:42 1996 Ian Lance Taylor * coff-sparc.c (bfd_coff_generic_reloc): Return bfd_reloc_ok even if reloc_entry->addend is not 0. (CALC_ADDEND): Just set the addend to reloc.r_offset. Mon Apr 22 18:29:01 1996 Doug Evans * elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix spelling of R_SPARC_GLOB_JMP. * elf64-sparc.c (sparc64_elf_howto_table): Likewise. Add entries for R_SPARC_[56]. (sparc_reloc_map): Add entries for R_SPARC_[56]. Mon Apr 22 15:07:24 1996 Ian Lance Taylor Optimize linking of stabs in sections as used in ELF and COFF. * stabs.c: New file. * libbfd-in.h (_bfd_link_section_stabs): Declare. (_bfd_write_section_stabs): Declare. (_bfd_write_stab_strings): Declare. * libbfd.h: Rebuild. * libcoff-in.h (struct coff_section_tdata): Add stab_info field. (struct coff_link_hash_table): Add stab_info field. * libcoff.h: Rebuild. * cofflink.c (_bfd_coff_link_hash_table_init): Initialize stab_info field. (coff_link_add_symbols): Call _bfd_link_section_stabs if appropriate. (_bfd_coff_final_link): Write out stab strings hash table. (_bfd_coff_link_input_bfd): Handle optimized stabs sections. * coff-ppc.c (ppc_bfd_coff_final_link): Write out stab strings hash table. * elf-bfd.h (struct elf_link_hash_table): Add stab_info field. (struct bfd_elf_section_data): Add stab_info field. * elf.c (_bfd_elf_link_hash_table_init): Initialize stab_info field. * elflink.h (elf_link_add_object_symbols): If appropriate, call _bfd_link_section_stabs. (elf_bfd_final_link): Write out stab strings hash table. (elf_link_input_bfd): Handle optimized stabs sections. * reloc.c (_bfd_final_link_relocate): Check address against _raw_size rather than _cooked_size. * Makefile.in: Rebuild dependencies. (BFD_LIBS): Add stabs.o (BFD_LIBS_CFILES): Add stabs.c. * VERSION: Increment for bfdlink.h change. * coffgen.c (coff_renumber_symbols): Correct handling of BSF_NOT_AT_END common symbols. Fri Apr 19 19:21:56 1996 Ian Lance Taylor * coff-ppc.c (record_toc): Add cast to avoid warning. (ppc_allocate_toc_section): Likewise. (coff_ppc_relocate_section): Remove ANSI C string concatenation. (ppc_coff_reloc_type_lookup): Remove unreached code. * coffcode.h (coff_write_object_contents): Don't take the address of an array. * peicode.h (pe_print_idata): Add casts to avoid warning. (pe_print_edata): Likewise. (pe_print_reloc): Remove ANSI C string concatenation. Thu Apr 18 18:51:18 1996 Ian Lance Taylor * libcoff-in.h (struct coff_final_link_info): Add last_bf_index and last_bf fields. * libcoff.h: Rebuild. * coffswap.h (coff_swap_aux_in): Swap endndx field for C_FCN symbols. (coff_swap_aux_out): Likewise. * peicode.h (coff_swap_aux_in): Likewise. (coff_swap_aux_out): Likewise. * coffgen.c (coff_pointerize_aux): Check endndx field for C_FCN symbols. * cofflink.c (_bfd_coff_final_link): Initialize last_bf_index field. (_bfd_coff_link_input_bfd): Check endndx field for C_FCN symbols. Fix up .bf endndx link fields. * coff-ppc.c (ppc_bfd_coff_final_link): Initialize last_bf_index field. * xcofflink.c (xcoff_link_input_bfd): Check endndx field for C_FCN symbols. Wed Apr 17 12:08:24 1996 Michael Meissner * pe{,i}-ppc.c (PPC_PE): Define instead of PPC, so that compiling on Solaris PowerPC systems doesn't get confused. * ccffcode.h (coff_write_object_contents): Use #ifdef PPC_PE, not #ifdef PPC. * elfcore.h (bfd_prstatus, bfd_fpregset): Add thread argument. (elf_corefile_note): If HAVE_SYS_PROCFS_H is not defined, don't update did_reg and did_reg2. Wed Apr 17 13:07:37 1996 Ian Lance Taylor * xcofflink.c (xcoff_link_input_bfd): Check for TOC overflow. * linker.c (_bfd_generic_link_add_one_symbol): When calling the callback routines, pass h->root.string rather than name, in case copy is true and name is transient. Tue Apr 16 16:36:38 1996 Stu Grossman (grossman@lisa.cygnus.com) * elfcore.h: Add support for core files with multiple threads. (Primarily for Solaris.) Tue Apr 16 13:44:08 1996 Ian Lance Taylor * aoutx.h (NAME(aout,squirt_out_relocs)): Don't do anything if section->orelocation is NULL. * coffgen.c (bfd_coff_get_syment): New function. (bfd_coff_get_auxent): New function. * bfd-in.h (bfd_coff_get_syment): Declare. (bfd_coff_get_auxent): Declare. * bfd-in2.h: Rebuild. Mon Apr 15 19:06:59 1996 Ian Lance Taylor * elf32-mips.c (struct mips_hi16): Define. (mips_hi16_addr, mips_hi16_addend): Remove. (mips_hi16_list): New static variable. (mips_elf_hi16_reloc): Maintain a list of unmatched HI16 relocs. (mips_elf_lo16_reloc): Process mips_hi16_list. (mips_elf_relocate_section): Permit an arbitrary number of HI16 relocs before the associated LO16 reloc. Wed Apr 10 00:23:53 1996 Ian Lance Taylor * versados.c (versados_scan): Check bfd_alloc return value. (versados_object_p): Check all bfd_read return values. Require that lang field be less than 10, to avoid confusion with Intel Hex files. * libaout.h (WRITE_HEADERS): Write out the relocs even if there aren't any symbols. * aoutx.h (NAME(aout,swap_std_reloc_out)): Set r_index to N_ABS, not 0, for an absolute symbol. (NAME(aout,swap_ext_reloc_out)): Likewise. * ihex.c (ihex_scan): Accept a length of 4 for record type 5. (ihex_write_object_contents): For a large start address, output the full 32 bit address in record type 5. * ieee.c (ieee_write_byte): Change second parameter from bfd_byte to int to avoid promotion problems in prototype. Tue Apr 9 11:44:21 1996 Ian Lance Taylor * configure.host: Use ${srcdir} when looking for picfrag. * configure.host: Switch on ${libdir}, not $(libdir). From alan@spri.levels.unisa.edu.au (Alan Modra). * aoutx.h (aout_link_add_symbols): Always call add_dynamic_symbols entry point, not just for DYNAMIC objects. * sunos.c (sunos_add_dynamic_symbols): Always call sunos_create_dynamic_sections. If called with a non DYNAMIC object, don't do anything else. (sunos_add_one_symbol): Don't call sunos_create_dynamic_sections. Mon Apr 8 12:09:36 1996 Ian Lance Taylor * configure.in: Permit --enable-shared to specify a list of directories. * configure: Rebuild. * configure.host: Set HLDFLAGS and SHLIB_CFLAGS for *-dec-osf* host when configuring with --enable-shard. Fri Apr 5 12:24:13 1996 Ian Lance Taylor * config.bfd: Add i[345]86-*-freebsdelf* target; from John Polstra . * linker.c (link_action): For WARN_ROW/warn, use MWARN, not CYCLE, to avoid crashing in bfd_hash_replace. * sysdep.h: Use #ifdef, not #if. Thu Apr 4 23:32:23 1996 Ian Lance Taylor * config.in: Rebuild. Thu Apr 4 18:49:09 1996 Fred Fish * configure.in (mips-sony-bsd*): Fix typo in AC_DEFINE. (AC_CHECK_HEADERS): Check for sys/time.h (AC_HEADER_TIME): Add macro. * configure: Rebuild. * sysdep.h: Use TIME_WITH_SYS_TIME and HAVE_SYS_TIME_H to control what combination of