+2001-12-21 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix dst_mask for
+ R_SPARC_DISP32. Support R_SPARC_PLT32.
+ (sparc_reloc_map): Add BFD_RELOC_16_PCREL and BFD_RELOC_SPARC_PLT32.
+ (elf32_sparc_check_relocs): Handle R_SPARC_PLT32.
+ (elf32_sparc_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_howto_table): Fix dst_mask for
+ R_SPARC_DISP32. Support R_SPARC_PLT32 and R_SPARC_PLT64.
+ (sparc_reloc_map): Add BFD_RELOC_16_PCREL, BFD_RELOC_64_PCREL
+ and BFD_RELOC_SPARC_PLT32.
+ (sparc64_elf_check_relocs): Handle R_SPARC_PLT32 and R_SPARC_PLT64.
+ (sparc64_elf_relocate_section): Likewise.
+ * reloc.c (bfd_reloc_code_type): Add BFD_RELOC_SPARC_PLT32.
+ * bfd-in2.h, libbfd.h: Rebuilt.
+
+2001-12-20 Tom Rix <trix@redhat.com>
+
+ * coffcode.h (coff_compute_section_file_positions): Add special AIX
+ loader alignment of text section.
+
+2001-12-20 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config.bfd (mips-dec-netbsd*): Delete alias for mips*el-*-netbsd*.
+
+ * config.bfd (arm-*-netbsdelf*): Add target.
+ * configure.in: Include netbsd-core.lo for native arm-*-netbsd*.
+ * configure: Regenerate.
+
+2001-12-20 Alan Modra <amodra@bigpond.net.au>
+
+ * elfcode.h (elf_slurp_symbol_table): Test elf_elfsections for NULL,
+ as can happen with a core file, before dereferencing.
+
+2001-12-19 Michael Snyder <msnyder@redhat.com>
+
+ * elf32-i386.c (elf_i386_grok_psinfo): Fix copy-and-paste error:
+ target is i386 (not mips), and size of descdata is 124 (not 128).
+
+2001-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): If new_size
+ is 0, temporarily grow it to minimal CIE size.
+ (_bfd_elf_write_section_eh_frame): If input .eh_frame section would
+ end up empty, build a fake minimal CIE.
+
+2001-12-19 Steve Ellcey <sje@cup.hp.com>
+
+ * config.bfd (bfd_elf32_ia64_hpux_big_vec): New vector for
+ ia64*-*-hpux* target.
+ (bfd_elf64_ia64_hpux_big_vec): Likewise.
+ * targets.c: Ditto.
+ * configure.in: Ditto.
+ * configure: Regenerate
+ * elfxx-ia64.c (elfNN_ia64_final_write_processing): Replace use of
+ alloca with bfd_malloc.
+ (get_local_sym_hash): Likewise.
+ (elfNN_hpux_post_process_headers): New function.
+ #include elfNN-target.h again with values for IA64 HP-UX vector.
+
+2001-12-18 Michael Snyder <msnyder@redhat.com>
+
+ * elf.c (assign_file_positions_for_segments): Don't sort PT_NOTE
+ sections of corefiles. Also it makes no sense to sort if count == 1.
+
+2001-12-18 H.J. Lu <hjl@gnu.org>
+
+ * elf.c (_bfd_elf_copy_private_bfd_data): Also copy GP.
+
+2001-12-18 H.J. Lu <hjl@gnu.org>
+
+ * elf.c (_bfd_elf_copy_private_bfd_data): Update comments.
+
+2001-12-18 H.J. Lu <hjl@gnu.org>
+
+ * elf-bfd.h (_bfd_elf_copy_private_bfd_data): New. Prototype.
+ (_bfd_mips_elf_copy_private_bfd_data): Removed.
+
+ * elf.c (_bfd_elf_copy_private_bfd_data): New. Copy e_flags in
+ the ELF header.
+
+ * elf32-i370.c (??_elf_copy_private_bfd_data): Removed.
+ (bfd_elf??_bfd_copy_private_bfd_data): Removed.
+ * elf32-m32r.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-mcore.c: Likewise.
+ * elf32-mips.c: Likewise.
+ * elf32-ppc.c: Likewise.
+ * elf32-v850.c: Likewise.
+ * elf64-ppc.c: Likewise.
+ * elf64-sparc.c: Likewise.
+ * elfxx-ia64.c: Likewise.
+
+ * elf64-mips.c (bfd_elf64_bfd_copy_private_bfd_data): Removed.
+
+ * elfxx-target.h (bfd_elfNN_bfd_copy_private_bfd_data): Defined
+ to _bfd_elf_copy_private_bfd_data.
+
+2001-12-18 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * elf32-s390 (elf_s390_check_relocs): Pass addend to
+ gc_record_vtentry.
+ * elf64-s390 (elf_s390_check_relocs): Likewise.
+ Fix by Andreas Jaeger <aj@suse.de>.
+
+2001-12-18 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * configure.host: Correctly match all NetBSD/mips
+ hosts.
+
+2001-12-18 matthew green <mrg@eterna.com.au>
+
+ * config.bfd (m68*-*-netbsdelf*): New target.
+ (m68*-*-netbsd): Also include bfd_elf32_m68k_vec.
+ (m68*-*-netbsdaout*): New alias for m68*-*-netbsd.
+
+2001-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ * elflink.h (size_dynamic_sections): Skip anonymous version tag.
+ (elf_link_assign_sym_version): Don't count anonymous version tag.
+
+2001-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-eh-frame.c (struct cie): Add make_lsda_relative.
+ (struct eh_cie_fde): Add lsda_encoding, lsda_offset,
+ make_lsda_relative.
+ (read_value, write_value): New.
+ (_bfd_elf_discard_section_eh_frame): Inicialize
+ lsda_encoding, lsda_offset and make_lsda_relative.
+ (_bfd_elf_eh_frame_section_offset): If make_lsda_relative,
+ request no dynamic reloc for LSDA field of FDE.
+ (_bfd_elf_write_section_eh_frame): Handle make_lsda_relative.
+ If a non-DW_EH_PE_absptr value is 0, don't adjust it by base
+ or pcrel. Fix address computation for DW_EH_PE_pcrel relocs.
+ Update LSDA field if LSDA encoding is DW_EH_PE_pcrel, because
+ . might have changed due to deleted FDE or CIEs.
+
+2001-12-18 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-strtab.c (struct elf_strtab_hash_entry): Add u.next.
+ (last_eq): Remove.
+ (_bfd_elf_strtab_finalize): Don't use a hash table for last
+ character chains, instead use an array.
+
+2001-12-18 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * elf.c (elfcore_netbsd_get_lwpid): New function.
+ (elfcore_grok_netbsd_procinfo): New function.
+ (elfcore_grok_netbsd_note): New function.
+ (elfcore_read_notes): Call elfcore_grok_netbsd_note to process
+ NetBSD ELF core file notes.
+
+2001-12-18 Alan Modra <amodra@bigpond.net.au>
+
+ * elfcode.h (struct bfd_preserve): New.
+ (elf_object_p): Replace preserved_* vars with instance of above.
+ Save and restore arch_info pointer rather than arch, mach so that
+ more cases can be restored. Save and restore new section_tail,
+ section_htab structure, and init appropriately. Move "rest of
+ section header" code so that i_shdrp needs no NULL initialisation.
+ Free old section_htab on success.
+ * elfcore.h (elf_core_file_p): Likewise.
+
+2001-12-17 Tom Rix <trix@redhat.com>
+
+ * coffcode.h (sec_to_styp_flags): Add STYP_EXCEPT and STYP_TYPCHK for
+ xcoff.
+
+2001-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-bfd.h (elf_discarded_section): Define.
+ * elflink.h (elf_link_input_bfd): Use it.
+ (elf_reloc_symbol_deleted_p): Likewise.
+
+ * elf64-alpha.c (elf64_alpha_relocate_section): Don't warn about
+ overflows for pc relative relocs against discarded sections.
+
+2001-12-17 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf32-mips.c (_bfd_mips_elf_relocate_section): Formatting.
+ * elf64-mips.c: Add most of the fixes and tweaks done in elf32-mips.c
+ over the last months. Add some code for mips16 handling.
+ (mips_elf64_check_mips16_stubs): New function.
+ (mips_elf64_stub_section_p): Likewise.
+ (mips_elf64_calculate_relocation): Change interface to support mips16.
+ (mips_elf64_perform_relocation): Likewise.
+
+2001-12-17 Alan Modra <amodra@bigpond.net.au>
+
+ Support for more than 64k ELF sections.
+ * elf-bfd.h (elf_size_info <swap_symbol_out>): Add shndx param.
+ (bfd_elf32_swap_symbol_in): Likewise.
+ (bfd_elf32_swap_symbol_out): Likewise.
+ (bfd_elf64_swap_symbol_in): Likewise.
+ (bfd_elf64_swap_symbol_out): Likewise.
+ (elf_reloc_cookie): Add locsym_shndx field. Make locsyms a PTR.
+ (elf_obj_tdata): Add num_elf_sections, symtab_shndx_hdr and
+ symtab_shndx_section.
+ (elf_numsections): Define.
+ (elf_symtab_shndx): Define.
+ * elf.c (setup_group): Use elf_numsections rather than header e_shnum.
+ (bfd_elf_find_section): Likewise.
+ (bfd_section_from_elf_index): Likewise.
+ (bfd_section_from_shdr): Likewise. Handle SHT_SYMTAB_SHNDX.
+ (bfd_section_from_r_symndx): Read symbol shndx extension, and
+ translate st_shndx for > SHN_HIRESERVE.
+ (assign_section_numbers): Skip reserved sections. Assign
+ symtab_shndx_section and elf_numsections. Exclude reserved
+ sections from e_shnum. Set up symtab_shndx_hdr.
+ (_bfd_elf_compute_section_file_positions): Handle symtab_shndx_hdr.
+ (map_sections_to_segments): Don't map eh_frame_hdr unless required.
+ (assign_file_positions_except_relocs): Use elf_numsections rather
+ than header e_shnum. Skip reserved sections and symtab_shndx_section.
+ (prep_headers): Set name for symtab_shndx_hdr.
+ (_bfd_elf_assign_file_positions_for_relocs): Use elf_numsections.
+ (_bfd_elf_write_object_contents): Likewise. Skip reserved sections.
+ (_bfd_elf_section_from_bfd_section): Check bfd_{abs,com,und}_section
+ first. Use elf_section_data if available. Use elf_numsections.
+ Start scan at index 1.
+ (copy_private_bfd_data ): Comment fixes.
+ (MAP_ONESYMTAB): Define above SHN_HIOS.
+ (MAP_DYNSYMTAB): Likewise.
+ (MAP_STRTAB): Likewise.
+ (MAP_SHSTRTAB): Likewise.
+ (MAP_SYM_SHNDX): New define.
+ (_bfd_elf_copy_private_symbol_data): Handle symtab_shndx_section.
+ (swap_out_syms): Swap out SHT_SYMTAB_SHNDX section too.
+ * elfcode.h (elf_swap_symbol_in): Add shndx param, and handle shndx
+ extension.
+ (elf_swap_symbol_out): Likewise.
+ (elf_object_p): Set elf_numsections, and use instead of e_shnum.
+ Initialialise reserved elf_elfsections to point at shdr[0]. Remove
+ redundant bfd_release calls.
+ (elf_slurp_symbol_table): Read symbol shndx extension, and use with
+ elf_swap_symbol_in. Translate st_shndx for > SHN_HIRESERVE too.
+ * elflink.h (elf_link_is_defined_archive_symbol): Read symbol shndx
+ extension, and use with elf_swap_symbol_in.
+ (elf_link_record_local_dynamic_symbol): Likewise.
+ (elf_link_add_object_symbols): Likewise. Also translate st_shndx
+ for elf sections > SHN_HIRESERVE.
+ (NAME(bfd_elf,size_dynamic_sections)): Adjust elf_swap_symbol_out
+ call.
+ (struct elf_final_link_info): Add locsym_shndx and symshndxbuf.
+ (elf_bfd_final_link): Allocate the above, and tidy code allocating
+ other buffers. Use elf_numsections instead of e_shnum. Adjust
+ elf_swap_symbol_out calls.
+ (elf_link_output_sym): Swap out symbol shndx extension too.
+ (elf_link_flush_output_syms): And flush them to disk.
+ (elf_link_output_extsym): Use SHN_BAD. Adjust elf_swap_symbol_out
+ calls.
+ (elf_gc_mark): Read symbol shndx extension, and use with
+ elf_swap_symbol_in.
+ (elf_link_input_bfd): Likewise, Translate st_shndx for elf sections
+ > SHN_HIRESERVE too. Use SHN_BAD.
+ (elf_reloc_symbol_deleted_p): Use symbol shndx extensions with
+ elf_swap_symbol_in. Translate st_shndx > SHN_HIRESERVE too.
+ (elf_bfd_discard_info): Read symbol shndx extension. Don't attempt
+ to continue after a bfd error.
+ * elf-m10200.c (mn10200_elf_relax_section): Only read local syms.
+ Stash them immediately to symtab_hdr->contents rather than later
+ in multiple places. Clean up afterwards. Read symbol shndx
+ extension, and use with swap_symbol_in. Translate SHN_UNDEF,
+ SHN_ABS, SHN_COMMON and elf sections > SHN_HIRESERVE to bfd
+ sections too. Remove dead code.
+ (mn10200_elf_relax_delete_bytes): Use symbol shndx extension
+ when swapping in symbols. Tidy code adjusting global syms.
+ Don't swap in global syms.
+ (mn10200_elf_symbol_address_p): Likewise. Remove extsyms param.
+ (mn10200_elf_get_relocated_section_contents): Read symbol shndx
+ extension, and use with swap_symbol_in. Rename "size" -> "amt"
+ to maximize code in common with other files. Translate st_shndx
+ for > SHN_HIRESERVE too. Remove dead code.
+ * elf-m10300.c (mn10300_elf_relax_section): Only read local syms.
+ Stash them immediately to symtab_hdr->contents rather than later
+ in multiple places. Clean up afterwards. Read symbol shndx
+ extension, and use with swap_symbol_in. Remove dead code.
+ (mn10300_elf_relax_delete_bytes): As for elf-m10200.c.
+ (mn10300_elf_symbol_address_p): Likewise.
+ (mn10300_elf_get_relocated_section_contents): Likewise.
+ * elf32-h8300.c (elf32_h8_relax_section): As for elf-m10300.c.
+ (elf32_h8_relax_delete_bytes): Likewise.
+ (elf32_h8_symbol_address_p): Likewise.
+ (elf32_h8_get_relocated_section_contents): Likewise.
+ * elf32-hppa.c (elf32_hppa_size_stubs): Read symbol shndx
+ extension, and use with swap_symbol_in.
+ * elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
+ * elf32-i370.c (i370_elf_finish_dynamic_sections): Adjust call to
+ bfd_elf32_swap_symbol_out.
+ * elf32-m32r.c (m32r_elf_get_relocated_section_contents): Translate
+ elf sections > SHN_HIRESERVE too.
+ * elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Only read
+ local syms. Read symbol shndx extension, and use with swap_symbol_in.
+ * elf32-mips.c (_bfd_mips_elf_final_write_processing): Use
+ elf_numsections rather than header e_shnum.
+ * elf32-sh.c (sh_elf_relax_section): As for elf-m10300.c.
+ (sh_elf_relax_delete_bytes): Likewise.
+ (sh_elf_get_relocated_section_contents): Likewise. Only read local
+ symbols.
+ * elf32-v850.c (v850_elf_symbol_processing): Use an unsigned int to
+ hold section index. Use elf_numsections rather than e_shnum.
+ Rename "index" -> "indx" to avoid shadowing warning.
+ (v850_elf_add_symbol_hook): Likewise.
+ * elf64-alpha.c (elf64_alpha_relax_section): Only read local syms.
+ Read symbol shndx extension, and use with swap_symbol_in.
+ * elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
+ Translate SHN_COMMON and elf sections > SHN_HIRESERVE too.
+ * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
+ (elfNN_ia64_aix_add_symbol_hook): Use elf_numsections.
+
+ * elf-m10300.c (mn10300_elf_gc_mark_hook): Remove unnecessary checks
+ before calling bfd_section_from_elf_index on local syms.
+ * elf32-arm.h (elf32_arm_gc_mark_hook): Likewise.
+ * elf32-avr.c (elf32_avr_gc_mark_hook): Likewise.
+ * elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
+ * elf32-d10v.c (elf32_d10v_gc_mark_hook): Likewise.
+ * elf32-fr30.c (fr30_elf_gc_mark_hook): Likewise.
+ * elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
+ * elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
+ * elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
+ * elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
+ * elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
+ * elf32-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
+ * elf32-openrisc.c (openrisc_elf_gc_mark_hook): Likewise.
+ * elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
+ * elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
+ * elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
+ * elf32-sparc.c (elf32_sparc_gc_mark_hook): Likewise.
+ * elf32-v850.c (v850_elf_gc_mark_hook): Likewise.
+ * elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Likewise.
+ * elf64-mips.c (mips_elf64_gc_mark_hook): Likewise.
+ * elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
+ * elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
+ * elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
+
+2001-12-17 Alan Modra <amodra@bigpond.net.au>
+
+ Hash bfd sections for fast lookup and create.
+ * bfd.c (struct _bfd): Add section_htab, section_tail.
+ * libbfd-in.h (_bfd_delete_bfd): Declare.
+ (bfd_section_hash_newfunc): Declare.
+ * opncls.c (_bfd_new_bfd): Free memory on failure. Init
+ section_htab and section_tail.
+ (_bfd_delete_bfd): New function.
+ (bfd_openr): Use it.
+ (bfd_fdopenr): Likewise.
+ (bfd_openstreamr): Likewise.
+ (bfd_openw): Likewise.
+ (bfd_close): Likewise.
+ (bfd_close_all_done): Likewise.
+ (bfd_release): Comment.
+ * section.c (struct section_hash_entry): New.
+ (bfd_section_hash_newfunc): New function.
+ (section_hash_lookup): Define.
+ (bfd_section_init): New function, split out from
+ bfd_make_section_anyway.
+ (bfd_get_section_by_name): Lookup via hash table.
+ (bfd_get_unique_section_name): Likewise.
+ (bfd_make_section_old_way): Rewrite to use hash table.
+ (bfd_make_section_anyway): Likewise.
+ (bfd_make_section): Likewise. Return NULL for attempts to make
+ BFD_{ABS,COM,UND,IND}_SECTION_NAME.
+ (_bfd_strip_section_from_output): Adjust section_tail if needed.
+ * configure.in: Bump bfd version.
+ * configure: Regenerate.
+ * libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+
+2001-12-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf64-mips.c (mips_elf64_link_hash_entry): New link hash.
+ (mips_elf64_high): New Function.
+ (mips_elf64_higher): Likewise.
+ (mips_elf64_highest): Likewise.
+ (mips_elf64_info_to_howto_rel): Likewise.
+ (mips_elf64_info_to_howto_rela): Likewise.
+ (mips_elf64_write_rel): Likewise.
+ (mips_elf64_write_rela): Likewise.
+ (mips_elf64_link_hash_newfunc): Likewise.
+ (mips_elf64_hi16_reloc): Likewise.
+ (mips_elf64_higher_reloc): Likewise.
+ (mips_elf64_highest_reloc): Likewise.
+ (mips_elf64_gprel16_reloc): Likewise.
+ (mips_elf64_gprel16_reloca): Likewise.
+ (mips_elf64_literal_reloc): Likewise.
+ (mips_elf64_gprel32_reloc): Likewise.
+ (mips_elf64_shift6_reloc): Likewise.
+ (mips_elf64_got16_reloc): Likewise.
+ (mips_elf64_assign_gp): Likewise.
+ (mips_elf64_final_gp): Likewise.
+ (gprel16_with_gp): Likewise.
+ (mips_elf64_additional_program_headers): Likewise.
+ (mips_elf64_link_hash_table_create): Likewise.
+ (mips_elf64_got_offset_from_index): Likewise.
+ (_mips_elf64_got_info): Likewise.
+ (mips_elf64_sign_extend): Likewise.
+ (mips_elf64_overflow_p): Likewise.
+ (mips_elf64_global_got_index): Likewise.
+ (mips_elf64_sort_hash_table_f): Likewise.
+ (mips_elf64_sort_hash_table): Likewise.
+ (mips_elf64_swap_msym_out): Likewise.
+ (mips_elf64_create_local_got_entry): Likewise.
+ (mips_elf64_local_got_index): Likewise.
+ (mips_elf64_got_page): Likewise.
+ (mips_elf64_got16_entry): Likewise.
+ (mips_elf64_local_relocation_p): Likewise.
+ (mips_elf64_next_relocation): Likewise.
+ (mips_elf64_create_dynamic_relocation): Likewise.
+ (mips_elf64_calculate_relocation): Likewise.
+ (mips_elf64_obtain_contents): Likewise.
+ (mips_elf64_perform_relocation): Likewise.
+ (mips_elf64_relocate_section): Likewise.
+ (mips_elf64_create_dynamic_sections): Likewise.
+ (mips_elf64_adjust_dynamic_symbol): Likewise.
+ (mips_elf64_always_size_sections): Likewise.
+ (mips_elf64_size_dynamic_sections): Likewise.
+ (mips_elf64_finish_dynamic_symbol): Likewise.
+ (mips_elf64_finish_dynamic_sections): Likewise.
+ (mips_elf64_gc_mark_hook): Likewise.
+ (mips_elf64_gc_sweep_hook): Likewise.
+ (mips_elf64_create_got_section): Likewise.
+ (mips_elf64_record_global_got_symbol): Likewise.
+ (mips_elf64_create_msym_section): Likewise.
+ (mips_elf64_allocate_dynamic_relocations): Likewise.
+ (mips_elf64_check_relocs): Likewise.
+ (mips_elf64_output_extsym): Likewise.
+ (mips_elf64_swap_gptab_in): Likewise.
+ (mips_elf64_swap_gptab_out): Likewise.
+ (gptab_compare): Likewise.
+ (mips_elf64_final_link): Likewise.
+ (prev_reloc_addend): Remenber addend of previous parts of a combined
+ reloc.
+ (ELF_MIPS_GP_OFFSET): New define.
+ (STUB_LW,STUB_MOVE,STUB_JALR,STUB_LI16): Likewise.
+ (MIPS_FUNCTION_STUB_SIZE): Likewise.
+ (mips_elf64_howto_rel): Fix HOWTO defines.
+ (mips_elf64_howto_rela): Likewise.
+ (mips_elf64_swap_reloca_out): Fix signedness.
+ (mips_elf64_be_swap_reloc_in): Use ELF64* instead of ELF32*.
+ (mips_elf64_be_swap_reloca_in): Likewise.
+ (mips_elf64_be_swap_reloc_out): Likewise. Preserve extended type info.
+ (mips_elf64_be_swap_reloca_out): Likewise.
+
+2001-12-15 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-bfd.h (_bfd_elf_maybe_strip_eh_frame_hdr): New prototype.
+ * elf-eh-frame.c (struct eh_frame_hdr_info): Add strip.
+ (_bfd_elf_discard_section_eh_frame): Don't create .eh_frame_hdr
+ sec_info here. Free ehbuf.
+ (_bfd_elf_discard_section_eh_frame_hdr): Don't size the section
+ if hdr_info->strip.
+ (_bfd_elf_maybe_strip_eh_frame_hdr): New.
+ * elflink.h (size_dynamic_sections): Call it.
+
+2001-12-14 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.h (elf_bfd_discard_info): Fix segfault when dynobj NULL.
+
+2001-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-bfd.h (enum elf_link_info_type): New.
+ (struct bfd_elf_section_data): Remove stab_info and merge_info
+ fields, add sec_info and sec_info_type.
+ (struct elf_obj_tdata): Add eh_frame_hdr field.
+ (_bfd_elf_discard_section_eh_frame): New prototype.
+ (_bfd_elf_discard_section_eh_frame_hdr): Likewise.
+ (_bfd_elf_eh_frame_section_offset): Likewise.
+ (_bfd_elf_write_section_eh_frame): Likewise.
+ (_bfd_elf_write_section_eh_frame_hdr): Likewise.
+ * Makefile.am (BFD32_BACKENDS): Add elf-eh-frame.lo.
+ (BFD32_BACKENDS_CFILES): Add elf-eh-frame.c.
+ (elf-eh-frame.lo): New.
+ * Makefile.in: Rebuilt.
+ * configure.in (elf): Add elf-eh-frame.lo.
+ * configure: Rebuilt.
+ * elf.c (_bfd_elf_print_private_bfd_data): Support PT_GNU_EH_FRAME.
+ (map_sections_to_segments): Create PT_GNU_EH_FRAME if requested.
+ (get_program_header_size): Take into account PT_GNU_EH_FRAME
+ segment.
+ (_bfd_elf_rela_local_sym): Use sec_info_type and sec_info.
+ (_bfd_elf_rel_local_sym): Likewise.
+ (_bfd_elf_section_offset): Likewise. Call
+ _bfd_elf_eh_frame_section_offset too.
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Use sec_info_type and
+ sec_info.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf-eh-frame.c: New file.
+ * elflink.h (elf_link_add_object_symbols): Don't optimize SHF_MERGE
+ .stab sections. Set sec_info_type, use sec_info instead
+ of merge_info and stab_info.
+ (elf_link_create_dynamic_sections): Create .eh_frame_hdr section
+ if --eh-frame-hdr.
+ (elf_bfd_final_link): Write .eh_frame_hdr section.
+ (elf_link_sec_merge_syms): Use sec_info_type and sec_info.
+ (elf_link_input_bfd): Likewise.
+ Call _bfd_elf_write_section_eh_frame to write .eh_frame sections.
+ (elf_bfd_discard_info): Add output_bfd argument.
+ Call _bfd_elf_discard_section_eh_frame and
+ _bfd_elf_discard_section_eh_frame_hdr.
+ (elf_section_ignore_discarded_relocs): Use sec_info_type, not section
+ names.
+ * bfd-in.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Adjust
+ prototypes.
+ * bfd-in2.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Likewise.
+
+2001-12-12 Richard Henderson <rth@redhat.com>
+
+ * syms.c (_bfd_generic_read_minisymbols): Early return for
+ no symbols. Patch from FreeBSD folk; exact origin unknown.
+
+2001-12-11 Alan Modra <amodra@bigpond.net.au>
+
+ * elfcode.h (elf_swap_ehdr_out): Adjust value written for e_shnum
+ and e_shstrndx if out of range.
+ (elf_object_p): Read extended values for e_shnum and e_shstrndx
+ from the first section header. Allocate space in elf_elfsections
+ for reserved sections and set to NULLs.
+ (elf_write_shdrs_and_ehdr): Set overflow fields in first section
+ header. Skip reserved sections in elf_elfsections. Remove
+ duplicate size calculation.
+
+2001-12-07 Geoffrey Keating <geoffk@redhat.com>
+ Richard Henderson <rth@redhat.com>
+ Corinna Vinschen <vinschen@redhat.com>
+
+ * Makefile.am: Add support for xstormy16.
+ * archures.c: Add support for xstormy16.
+ * config.bfd: Add support for xstormy16.
+ * configure.in: Add support for xstormy16.
+ * reloc.c: Add support for xstormy16.
+ * targets.c: Add support for xstormy16.
+ * cpu-xstormy16.c: New file.
+ * elf32-xstormy16.c: New file.
+ * Makefile.in: Regenerated.
+ * bfd-in2.h: Regenerated.
+ * configure: Regenerated.
+ * libbfd.h: Regenerated.
+
+2001-12-07 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * elf.c (assign_file_positions_for_segments): Combine sentance
+ fragments into a single sentance in order to permit better
+ translation into foreign languages.
+
+2001-12-07 Jim Blandy <jimb@redhat.com>
+
+ * elf32-s390.c (elf32_s390_grok_prstatus): New function.
+ (elf_backend_grok_prstatus): Define.
+
+2001-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-sparc.c (elf32_sparc_relocate_section): Revert
+ 2001-09-14 change.
+
+2001-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ * elf.c (_bfd_elf_rela_local_sym): Only call
+ _bfd_merged_section_offset if merge_info is non-NULL.
+ (_bfd_elf_rel_local_sym, _bfd_elf_section_offset): New.
+ * elf-bfd.h (_bfd_elf_rel_local_sym, _bfd_elf_section_offset): New
+ prototypes.
+ * elf32-arm.h (elf32_arm_final_link_relocate): Use
+ _bfd_elf_section_offset.
+ (elf32_arm_relocate_section): Use _bfd_elf_rel_local_sym.
+ * elf32-i386.c (elf_i386_relocate_section): Use
+ _bfd_elf_section_offset and _bfd_elf_rel_local_sym.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Use
+ _bfd_elf_section_offset.
+ * elf32-cris.c (cris_elf_relocate_section): Likewise.
+ * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+ * elf32-i370.c (i370_elf_relocate_section): Likewise.
+ * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+ * elf32-mips.c (mips_elf_create_dynamic_relocation): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
+
+2001-12-07 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-hppa.c (clobber_millicode_symbols): Don't do anything if
+ already forced local.
+
+2001-12-05 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * elf32-arm.h (elf32_arm_merge_private_bfd_data): Combine
+ fragmented sentence parts into a whole sentence to permit
+ better translation into foreign languages.
+
+2001-12-06 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+
+2001-12-05 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * Makefile.am: split up BFD_LIBS like statements in BFD32_LIBS and
+ BFD64_LIBS, make the latter depending on the availability of BFD64.
+ Add archive64.c source file.
+ * archive64.c: New file implementing bfd_elf64_archive_slurp_armap
+ and bfd_elf64_archive_write_armap, code from elf64-mips.c
+ * archive.c (bfd_slurp_armap): Add ELF64 archive support.
+ * config.bfd (mips*-*-irix6*): Allow with BFD64 only.
+ (mips64*el-*-linux*): Likewise.
+ (mips*el-*-linux*): Likewise. Reorder entries.
+ * configure.in (bfd_libs): Define in dependency of BFD64 and
+ AC_SUBST it.
+ * elf64-mips.c (mips_elf64_slurp_armap): Remove, use
+ bfd_elf64_archive_slurp_armap instead.
+ (mips_elf64_write_armap): Remove, use bfd_elf64_archive_write_armap
+ instead.
+
+2001-12-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * config.bfd: Remove trailing blanks.
+ * elf32-mips.c (gprel16_with_gp): Remove superfluous casts.
+
+2001-12-04 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf32-d10v.c (elf_d10v_howto_table): Adjust bit-size of
+ R_D10V_10_PCREL_L, R_D10V_10_PCREL_R, R_D10V_18,
+ R_D10V_18_PCREL. Check 10_PCREL relocations as signed.
+ Disable pointless overflow checking of NONE and 32.
+
+2001-12-04 Alan Modra <amodra@bigpond.net.au>
+
+ * reloc.c (bfd_install_relocation): Correct reloc address test.
+ (bfd_perform_relocation): Formatting fix.
+ * bfd-in2.h: Regenerate for 2001-12-02 reloc.c change.
+
+2001-12-03 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * configure.in (LINGUAS): Add tr.
+ * configure: Regenerate.
+ * po/tr.po: Import from translation project's web site.
+
+2001-12-03 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-hppa.c (hppa_get_stub_entry): Remove debug message that
+ happens to trigger on undefined symbols.
+ (final_link_relocate): Return bfd_reloc_undefined for undefined
+ stubs.
+ (elf32_hppa_relocate_section): Don't say we can't handle a reloc
+ if we have already warned about an undefined symbol.
+
+2001-12-02 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf32-mips.c (NEWABI_P): New define.
+ (USE_REL): Remove, replaced by
+ (elf_backend_may_use_rel_p): New define.
+ (elf_backend_may_use_rela_p): Likewise.
+ (elf_backend_default_use_rela_p): Likewise.
+ (elf_mips_howto_table): Rename to elf_mips_howto_table_rel.
+ Fix some relocation definitions.
+ (elf_mips_howto_table_rela): New RELA relocation definitions for
+ NewABI support.
+ (mips32_64bit_reloc): Use the renamed elf_mips_howto_table_rel.
+ (bfd_elf32_bfd_reloc_type_lookup): Likewise.
+ (mips_rtype_to_howto): Likewise.
+ (_bfd_mips_elf_relocate_section): Likewise.
+ (_bfd_mips_elf_object_p): Typo.
+ (elf_backend_sign_extend_vma): Reordered together with many other
+ defines nearby to resemble the order of declaration in the header
+ file.
+
+2001-12-02 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * coff-mips.c (mips_bfd_reloc_type_lookup): Replace
+ BFD_RELOC_MIPS_GPREL by BFD_RELOC_GPREL16.
+ * pe-mips.c (mips_bfd_reloc_type_lookup): Likewise.
+ * elf32-mips.c (mips_reloc_map): Likewise. Replace
+ BFD_RELOC_MIPS_GPREL32 by BFD_RELOC_GPREL32.
+ * elf64-mips.c (mips_reloc_map): Likewise.
+ * reloc.c (BFD_RELOC_MIPS_GPREL): Remove.
+ (BFD_RELOC_MIPS_GPREL32): Remove.
+
+2001-11-30 H.J. Lu <hjl@gnu.org>
+
+ * elflink.h (elf_add_default_symbol): New.
+ (elf_link_add_object_symbols): Call elf_add_default_symbol ()
+ to create an indirect symbol from the default for the symbol
+ with the default version if needed.
+
+2001-11-29 "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
+
+ * elf.c (elfcore_grok_prstatus): Do not overwite the core signal
+ if it has already been set by another thread.
+
+2001-11-28 Jakub Jelinek <jakub@redhat.com>
+
+ * elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.
+ (elf64_alpha_relocate_section): Translate local_got_entries
+ for STT_SECTION symbol to SHF_MERGE section the first time
+ we see it.
+ * elfxx-ia64.c (struct elfNN_ia64_local_hash_entry): Add
+ sec_merge_done.
+ (get_local_sym_hash): New, extracted from get_dyn_sym_info.
+ (get_dyn_sym_info): Use it.
+ (elfNN_ia64_relocate_section): Translate local dyn entries
+ for STT_SECTION symbol to SHF_MERGE section the first time
+ we see it.
+
+2001-11-27 H.J. Lu <hjl@gnu.org>
+
+ * elflink.h (elf_bfd_discard_info): Skip if the input bfd isn't
+ ELF.
+
+2001-11-26 Jeffrey A Law (law@cygnus.com)
+
+ * stabs.c (_bfd_discard_section_stabs): Use PARAMS in function
+ prototypes.
+
+2001-11-24 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-hppa.c (elf32_hppa_size_stubs): Decrease default stub
+ group sizes to accommodate c++.
+
+2001-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-sparc.c (elf32_sparc_relocate_section): Don't clear
+ relocations in non-alloced sections against global symbols
+ defined in shared library being built.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+2001-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ * elf.c (_bfd_elf_rela_local_sym): New.
+ * elflink.h (elf_link_input_bfd): Don't consider empty
+ merged sections as removed in relocation tests.
+ * elf-bfd.h (_bfd_elf_rela_local_sym): Add prototype.
+ * elf32-i386.c (elf_i386_relocate_section): Handle relocs
+ against STT_SECTION symbol of SHF_MERGE section.
+ * elf32-arm.h (elf32_arm_relocate_section): Likewise.
+ * elf32-avr.c (elf32_avr_relocate_section): Call
+ _bfd_elf_rela_local_sym.
+ * elf32-cris.c (cris_elf_relocate_section): Likewise.
+ * elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
+ * elf32-fr30.c (fr30_final_link_relocate): Likewise.
+ * elf32-h8300.c (elf32_h8_relocate_section): Likewise.
+ * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+ * elf32-i370.c (i370_elf_relocate_section): Likewise.
+ * elf32-i860.c (elf32_i860_relocate_section): Likewise.
+ * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
+ * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+ * elf32-mcore.c (mcore_elf_relocate_section): Likewise.
+ * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf32-v850.c (v850_elf_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf64-mmix.c (mmix_elf_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elf-hppa.h (elf_hppa_relocate_section): Likewise.
+ * elf-m10200.c (mn10200_elf_relocate_section): Likewise.
+ * elf-m10300.c (mn10300_elf_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise for
+ !partial_inplace relocs. Handle relocs against STT_SECTION
+ symbol of SHF_MERGE for partial_inplace relocs.
+
+2001-11-21 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * po/Make-in (distclean): Move SRC-POTFILES.in and
+ BLD-POTFILES.in to maintainer-clean target.
+
+2001-11-21 Alan Modra <amodra@bigpond.net.au>
+
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Test r_symndx rather
+ than sym_sec->output_section to detect relocs against discarded
+ sections.
+
+2001-11-19 H.J. Lu <hjl@gnu.org>
+
+ * elflink.h (elf_link_input_bfd): Assert r_symndx != 0 when
+ discarding relocations.
+
+2001-11-19 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * section.c (bfd_is_const_section): New macro. Return true if the
+ given seciton is one of the special, constant, sections.
+ * bfd-in2.h: Regenerate.
+ * coffgen.c (coff_count_linenumbers): Use bfd_is_const_section.
+ (coff_write_native_symbol): Use bfd_is_const_section.
+
+2001-11-19 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-hppa.c (clobber_millicode_symbols): Dec dynstr refcount.
+
+ * elf32-hppa.c (elf32_hppa_size_stubs): Don't consider undefined
+ millicode syms as candidates for import stubs.
+
+ * elf32-hppa.c (PLABEL_PLT_ENTRY_SIZE): Delete.
+ (allocate_PIC_calls): Rename to allocate_plt_static.
+ (allocate_dynrelocs): Move most of code handling .plt entries to..
+ (allocate_plt_static): ..here. Don't drop plabel entries.
+
+2001-11-19 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * mmo.c: Adjust documentation tags to use texinfo 4 features.
+
+2001-11-16 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * section.c (bfd_is_const_section): New macro. Return true if the
+ section pointer refers to one of the special, constant sections.
+ * bfd-in2.h: Regenerate.
+
+ * coffgen.c (coff_count_linenumbers): Only update the line number
+ count in non-special sections.
+ (coff_write_native_symbol): Only update the line number file
+ position in non-special sections.
+
+2001-11-15 Daniel Jacobowitz <drow@mvista.com>
+
+ * elflink.h (elf_reloc_symbol_deleted_p): Catch all relocs against
+ local syms from discarded sections. Update comment.
+
+2001-11-15 Alan Modra <amodra@bigpond.net.au>
+
+ * po/SRC-POTFILES.in: Regenerate.
+
+ * elflink.h (elf_link_input_bfd): Complain about all relocs
+ against local syms from discarded sections. K&R fixes.
+ (elf_reloc_symbol_deleted_p): Don't try to swap in external syms.
+ K&R fixes.
+
+2001-11-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf64-sparc.c (sparc64_elf_relocate_section): Disregard
+ overflows in the .stab section.
+
+2001-11-14 Daniel Jacobowitz <drow@mvista.com>
+
+ * bfd-in.h (bfd_elf32_discard_info): Add prototype.
+ (bfd_elf64_discard_info): Likewise.
+ * bfd-in2.h: Regenerate.
+ * elf-bfd.h (struct elf_reloc_cookie): New.
+ (struct elf_backend_data): Add elf_backend_discard_info,
+ elf_backend_ignore_discarded_relocs, and elf_backend_write_section.
+ (_bfd_elf32_reloc_symbol_deleted_p): Add prototype.
+ (_bfd_elf64_reloc_symbol_deleted_p): Likewise.
+ * elf32-mips.c (_bfd_elf32_mips_discard_info): New.
+ (_bfd_elf32_mips_ignore_discarded_relocs): New.
+ (_bfd_elf32_mips_write_section): New.
+ (elf_backend_discard_info): Define.
+ (elf_backend_ignore_discarded_relocs): Define.
+ (elf_backend_write_section): Define.
+ * elfcode.h (elf_bfd_discard_info): Define.
+ (elf_reloc_symbol_deleted_p): Define.
+ * elflink.h (elf_link_input_bfd): Check
+ elf_section_ignore_discarded_relocs. Call
+ bed->elf_backend_write_section if available.
+ (elf_reloc_symbol_deleted_p): New.
+ (elf_bfd_discard_info): New.
+ (elf_section_ignore_discarded_relocs): New.
+ * elfxx-target.h (elf_backend_discard_info): Define.
+ (elf_backend_ignore_discarded_relocs): Define.
+ (elf_backend_write_section): Define.
+ (elfNN_bed): Add elf_backend_discard_info,
+ elf_backend_ignore_discarded_relocs, and
+ elf_backend_write_section.
+ * libbfd-in.h (_bfd_discard_section_stabs): Add prototype.
+ * libbfd.h: Regenerate.
+ * stabs.c (_bfd_discard_section_stabs): New.
+
+2001-11-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * elf32-s390.c (elf_s390_relocate_section): Use the "unresolved_reloc"
+ scheme to get rid of an ugly complicated test.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+
+2001-11-14 Andreas Jaeger <aj@suse.de>
+
+ * cpu-i386.c (bfd_x86_64_arch_intel_syntax,bfd_x86_64_arch): Use
+ x86-64 for display.
+
+2001-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2.c (struct line_head) [total_length]: Change type to
+ bfd_vma.
+ (struct dwarf2_debug): Add dwarf_str_buffer and dwarf_str_size.
+ (struct comp_unit): Add stash and offset_size.
+ (read_8_bytes): Return bfd_vma.
+ (read_indirect_string): New.
+ (read_attribute): Handle DW_FORM_strp.
+ (decode_line_info): Support 64-bit DWARF format.
+ (_bfd_dwarf2_find_nearest_line): Likewise.
+ (parse_comp_unit): Set offset_size and stash.
+
+2001-11-13 Keith Walker <keith.walker@arm.com>
+
+ * dwarf2.c (read_attribute_value): New function to handle
+ DW_FORM_indirect.
+ (read_attribute): Use it.
+
+2001-11-13 Geoffrey Keating <geoffk@redhat.com>
+
+ * dwarf2.c (decode_line_info): Properly deal with unknown standard
+ opcodes.
+
+2001-11-13 John Marshall <jmarshall@acm.org>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * section.c (bfd_make_section_anyway): Don't increment section_id
+ and the BFD's section_count if adding the section failed.
+ * vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway
+ change.
+
+2001-11-12 Orjan Friberg <orjanf@axis.com>
+
+ * elf32-cris.c (cris_elf_grok_prstatus): Adjust values to match new
+ core dump format.
+
+2001-11-11 H.J. Lu <hjl@gnu.org>
+
+ * elf32-mips.c (_bfd_mips_elf_finish_dynamic_sections): Call
+ _bfd_elf_strtab_size instead of _bfd_stringtab_size.
+
+ * elf64-sparc.c (sparc64_elf_size_dynamic_sections): Change
+ dynstr type to `struct elf_strtab_hash *'.
+
+2001-11-11 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * elf-strtab.c (_bfd_elf_strtab_finalize): Make first variable i
+ size_t. Rename second i to j.
+
+2001-11-10 Jeffrey A Law (law@cygnus.com)
+
+ * binary.c: Include safe-ctype.h after bfd.h and sysdep.h.
+
+2001-11-10 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-arm.h (elf32_arm_final_link_relocate): Don't copy STN_UNDEF
+ relocs into shared libs.
+ * elf32-cris.c (cris_elf_relocate_section): Likewise.
+ * elf32-i370.c (i370_elf_relocate_section): Likewise.
+ * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+ * elf32-mips.c (mips_elf_calculate_relocation): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+
+ * elf.c (bfd_section_from_r_symndx): New function.
+ * elf-bfd.h (LOCAL_SYM_CACHE_SIZE): Define.
+ (struct sym_sec_cache): New.
+ (bfd_section_from_r_symndx): Declare.
+ (struct bfd_elf_section_data): Change local_dynrel type to PTR.
+ * elflink.h (elf_link_input_bfd): Don't test for removed linkonce
+ relocs when relocatable. Don't zero entire reloc, just zero the
+ addend and sym.
+ * elf32-hppa.c (struct elf32_hppa_link_hash_table): Add sym_sec.
+ (elf32_hppa_link_hash_table_create): Init it.
+ (elf32_hppa_check_relocs): Track dynamic relocs needed for local
+ syms on a per-section basis as we do for globals.
+ (elf32_hppa_gc_sweep_hook): Update for local_dynrel change.
+ (allocate_dynrelocs): Warning fix.
+ (elf32_hppa_size_dynamic_sections): Don't allocate relocs when
+ section has been discarded.
+ (elf32_hppa_relocate_section): Don't copy STN_UNDEF relocs
+ into shared libs.
+ * elf32-i386.c (struct elf_i386_link_hash_table): Add sym_sec.
+ (elf_i386_link_hash_table_create): Init it.
+ (elf_i386_check_relocs): Track dynamic relocs needed for local
+ syms on a per-section basis as we do for globals.
+ (elf_i386_gc_sweep_hook): Update for local_dynrel change.
+ Remove dead code.
+ (allocate_dynrelocs): Warning fix.
+ (elf_i386_size_dynamic_sections): Don't allocate relocs when
+ section has been discarded.
+ (elf_i386_relocate_section): Don't copy STN_UNDEF relocs
+ into shared libs.
+ * elf32-s390.c (struct elf_s390_link_hash_table): Add sym_sec.
+ (elf_s390_link_hash_table_create): Init it.
+ (elf_s390_check_relocs): Track dynamic relocs needed for local
+ syms on a per-section basis as we do for globals.
+ (elf_s390_gc_sweep_hook): Update for local_dynrel change.
+ Remove dead code.
+ (allocate_dynrelocs): Warning fix.
+ (elf_s390_size_dynamic_sections): Don't allocate relocs when
+ section has been discarded.
+ (elf_s390_relocate_section): Don't copy STN_UNDEF relocs
+ into shared libs.
+ * elf64-ppc.c (struct ppc_link_hash_table): Add sym_sec.
+ (ppc64_link_hash_table_create): Init it.
+ (ppc64_elf_check_relocs): Track dynamic relocs needed for local
+ syms on a per-section basis as we do for globals.
+ (ppc64_elf_gc_sweep_hook): Update for local_dynrel change.
+ (allocate_dynrelocs): Call the correct record_dynamic_dymbol
+ function. Warning fix.
+ (ppc64_elf_size_dynamic_sections): Don't allocate relocs when
+ section has been discarded.
+ (ppc64_elf_relocate_section): Don't copy STN_UNDEF relocs
+ into shared libs.
+ * elf64-s390.c (struct elf_s390_link_hash_table): Add sym_sec.
+ (elf_s390_link_hash_table_create): Init it.
+ (elf_s390_check_relocs): Track dynamic relocs needed for local
+ syms on a per-section basis as we do for globals.
+ (elf_s390_gc_sweep_hook): Update for local_dynrel change.
+ Remove dead code.
+ (allocate_dynrelocs): Warning fix.
+ (elf_s390_size_dynamic_sections): Don't allocate relocs when
+ section has been discarded.
+ (elf_s390_relocate_section): Don't copy STN_UNDEF relocs
+ into shared libs.
+
+2001-11-08 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * elf32-s390: Major rework that introduces all recent changes to
+ the s390 backends. Get a closer match to elf32-i386.
+ (elf_s390_relocate_section): Make use of dynamic section short-cuts.
+ Localise vars, and delay setting. Better error reporting, replace
+ BFD_ASSERT with abort. Check ELF_LINK_HASH_DEF_DYNAMIC to see if a
+ symbol is not defined in the regular object file and tread the weak
+ definition as the normal one. Don't discard relocs for undefweak or
+ undefined symbols and check !DEF_REGULAR as well as DEF_DYNAMIC in
+ test for avoided copy relocs. Reinstate fudge for unresolved relocs
+ in debugging sections.
+ (elf32_s390_adjust_dynamic_symbol): Handle nocopyreloc. Don't do copy
+ reloc processing for weakdefs. Remove redundant casts and aborts.
+ Delay setting of vars until needed. Move creation of dynamic symbols
+ and allocation of .plt and .rela.plt to allocate_dynrelocs. Replace
+ BFD_ASSERT with abort. Discard .plt entries for everything with
+ plt.refcount <= 0.
+ (elf_s390_check_relocs): Don't allocate space for dynamic relocs,
+ .got or .relgot here but do it in allocate_dynrelocs. Reference count
+ possible .plt and .got entries. Don't test input section SEC_READONLY
+ here to try to avoid copy relocs, and keep dyn_relocs regardless of
+ ELF_LINK_NON_GOT_REF. Don't set DF_TEXTREL here. Delay setting of
+ variables until needed. Remove separate switch stmt for creating .got
+ section. Initialise local_got_refcounts to 0. Cache pointer to
+ "sreloc" section in elf_section_data. Tweak condition under which .got
+ created. Report files with bad relocation section names.
+ (elf_s390_finish_dynamic_symbol): Don't copy relocs for symbols that
+ have been forced local. Use same test to decide if we can use a
+ relative reloc for got as elf_s390_relocate_section. Expand SHN_UNDEF
+ comment. Move expressions out of function calls. Replace BFD_ASSERT
+ with abort.
+ (elf_s390_finish_dynamic_sections): Migrate common code out of switch
+ statement. Replace BFD_ASSERT with abort.
+ (elf_s390_size_dynamic_sections): Call readonly_dynrelocs. Rename "i"
+ to "ibfd". Allocate space for local dyn relocs. Use DF_TEXTREL flag
+ instead of looking up section names for DT_TEXTREL. Replace
+ BFD_ASSERT with abort. Zero out the dynamic allocated content space.
+ Add a comment to remind us that one day this ought to be fixed.
+ (struct elf_s390_link_hash_entry): Rename "root" to "elf".
+ (struct elf_s390_link_hash_table): Likewise.
+ (elf_s390_link_hash_newfunc): Rename to link_hash_newfunc and get
+ rid of unnecessary casts.
+ (struct elf_s390_dyn_relocs): Add "sec", and "pc_count" fields.
+ Remove "section" field.
+ (elf_s390_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
+ Reference count possible .plt entries. Don't deallocate .got and
+ .relgot space here.
+ (struct elf_s390_pcrel_relocs_copied): Rename to elf_s390_dyn_relocs.
+ Update comment.
+ (struct elf_s390_link_hash_entry): Rename pcrel_relocs_copied to
+ dyn_relocs.
+ (elf_s390_discard_copies): Delete.
+ (elf_s390_link_hash_traverse): Delete.
+ (bfd_elf32_bfd_final_link): Delete. (ie. use regular final link
+ rather than gc variety).
+ (struct elf_s390_link_hash_table): Add sgot, sgotplt, srelgot, splt,
+ srelplt, sdynbss, srelbss fields.
+ (elf_s390_link_hash_table_create): Init them.
+ (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+ (allocate_dynrelocs): New function.
+ (create_got_section): New function.
+ (elf_backend_can_refcount): Define.
+ (elf_backend_copy_indirect_symbol): Define.
+ (elf_s390_copy_indirect_symbol): New function.
+ (elf_s390_create_dynamic_sections): New function.
+ (readonly_dynrelocs): New function.
+ * elf64-s390.c: Likewise.
+
+2001-11-07 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.am (BFD32_BACKENDS): Add elf-strtab.lo.
+ (BFD32_BACKENDS_CFILES): Add elf-strtab.c.
+ (elf-strtab.lo): Add rule.
+ * Makefile.in: Rebuilt.
+ * configure.in (elf): Add elf-strtab.lo.
+ * configure: Rebuilt.
+ * elf-bfd.h (elf_strtab_hash): Forward declare.
+ (struct elf_link_hash_table): Change dynstr type to
+ struct elf_strtab_hash *.
+ (struct elf_obj_tdata): Change strtab_ptr type to
+ struct elf_strtab_hash *.
+ (_bfd_elf_strtab_init, _bfd_elf_strtab_free, _bfd_elf_strtab_add,
+ _bfd_elf_strtab_addref, _bfd_elf_strtab_delref,
+ _bfd_elf_strtab_clear_all_refs, _bfd_elf_strtab_size,
+ _bfd_elf_strtab_offset, _bfd_elf_strtab_emit,
+ _bfd_elf_strtab_finalize): New prototypes.
+ * elf-strtab.c: New file.
+ * elflink.h (elf_link_add_object_symbols): Use _bfd_elf_strtab_add
+ and _bfd_elf_strtab_size instead of _bfd_stringtab calls.
+ Call _bfd_elf_strtab_delref if DT_NEEDED entry is not needed or
+ when forcing dynamic symbol to local.
+ (elf_link_create_dynamic_sections): Call
+ _bfd_elf_strtab_init instead of elf_stringtab_init.
+ (elf_link_record_local_dynamic_symbol): Likewise, change
+ dynstr type. Use _bfd_elf_strtab functions instead of
+ _bfd_stringtab calls.
+ (size_dynamic_sections): Use _bfd_elf_strtab functions instead of
+ _bfd_stringtab calls. For DT_RUNPATH and Verdaux vda_name fields,
+ call _bfd_elf_strtab_addref. Call elf_finalize_dynstr.
+ (elf_adjust_dynstr_offsets, elf_finalize_dynstr): New functions.
+ (elf_fix_symbol_flags): Call _bfd_elf_strtab_delref when forcing
+ dynamic symbol to local.
+ (elf_link_assign_sym_version): Likewise.
+ (elf_bfd_final_link): Call _bfd_elf_strtab_emit instead of
+ _bfd_stringtab_emit.
+ * elflink.c (_bfd_elf_link_record_dynamic_symbol): Change dynstr
+ type. Call _bfd_elf_strtab functions instead of
+ _bfd_stringtab functions.
+ * elf64-sparc.c (sparc64_elf_size_dynamic_sections): Likewise.
+ * elf.c (_bfd_elf_init_reloc_shdr): Likewise.
+ (elf_fake_sections): Likewise.
+ (assign_section_numbers): Call _bfd_elf_strtab_clear_all_refs
+ on shstrtab hash table, call _bfd_elf_strtab_addref on each section
+ name in the output. Call _bfd_elf_strtab_finalize and
+ use _bfd_elf_strtab_offset to finalize sh_name section header fields.
+ (_bfd_elf_compute_section_file_positions): Use _bfd_elf_strtab_size
+ instead of _bfd_stringtab_size.
+ (prep_headers): Change shstrtab type.
+ Use _bfd_elf_strtab calls instead of _bfd_stringtab calls.
+
+2001-11-07 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.h (elf_link_input_bfd <removed linkonce relocs>): Fix
+ bad symtab segfault. Formatting and warning fixes. Improve
+ error message for internationalisation.
+
+2001-11-06 H.J. Lu (hjl@gnu.org)
+
+ * elflink.h (elf_link_input_bfd): Complain about relocs against
+ discarded sections.
+
+2001-11-03 Alan Modra <amodra@bigpond.net.au>
+
+ * elfxx-target.h (elfNN_bed): Correct want_got_sym, want_dynbss order.
+
+2001-11-02 H.J. Lu <hjl@gnu.org>
+
+ * elf32-mips.c (mips_elf_calculate_relocation): Don't create
+ dynamic relocation for symbols defined in regular objects when
+ creating executables.
+
+2001-11-02 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * configure.in (ALL_LINGUAS): Add "fr".
+ * configure: Regenerate.
+ * po/fr.po: New file.
+
+ * coffgen.c (coff_object_p): Add comment to H.J.'s recent patch.
+
+2001-11-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * som.c (setup_sections): Initialize subspace_sections.
+
+2001-11-02 H.J. Lu (hjl@gnu.org)
+
+ * coffgen.c (coff_object_p): Return 0 if the header is too big.
+
+2001-11-02 Hans-Peter Nilsson <hp@axis.com>
+
+ * elfcore.h (elf_core_file_p): Preserve and clear abfd section
+ information. Save bfd arch and mach values. Restore on error.
+
+2001-11-02 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-hppa.c (hppa_handle_PIC_calls): Rename to mark_PIC_calls.
+ (allocate_PIC_calls): New function.
+ (allocate_dynrelocs): Don't allocate pic_call plt entries here.
+ (elf32_hppa_size_dynamic_sections): Call allocate_PIC_calls.
+ (elf32_hppa_finish_dynamic_symbol): Remove dead code.
+
+2001-11-02 Hans-Peter Nilsson <hp@axis.com>
+
+ * elf32-cris.c (cris_elf_grok_prstatus): New function.
+ (cris_elf_grok_psinfo): New function.
+ (elf_backend_grok_prstatus): Define.
+ (elf_backend_grok_psinfo): Define.
+
+2001-11-01 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Correct branch
+ prediction bits.
+
2001-10-31 Chris Demetriou <cgd@demetriou.com>
* elf32-mips.c (_bfd_mips_elf_hi16_reloc): Handle PC-relative
* config.bfd <powerpc-*-aix* entry>: Select 64 bit xcoff for
aix4.3 and above.
-Wed Aug 29 02:27:36 2001 J"orn Rennecke <amylaar@redhat.com>
+2001-08-29 J"orn Rennecke <amylaar@redhat.com>
* Makefile.am (elf32-h8300.lo): New target.
* config.bfd (h8300*-*-elf): New case.
* xcofflink.c : Many changes for xcoff64 support. Move common
structures to include/coff/xcoff.h. Move specific structure to
- backends coff-rs6000.c and coff64-rs6000.c. Use new backend
+ backends coff-rs6000.c and coff64-rs6000.c. Use new backend
functions, defined in libxcoff.h, to isolate 32/64 dependencies.
(bfd_xcoff_size_dynamic_sections) : special __rtinit symbol for
* config.bfd: Add NetBSD/sparc64 support.
-Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
- David Mosberger <davidm@hpl.hp.com>
- Timothy Wall <twall@cygnus.com>
- Jim Wilson <wilson@cygnus.com>
+2000-04-21 Richard Henderson <rth@cygnus.com>
+ David Mosberger <davidm@hpl.hp.com>
+ Timothy Wall <twall@cygnus.com>
+ Jim Wilson <wilson@cygnus.com>
* Makefile.am (ALL_MACHINES): Add cpu-ia64.lo.
(ALL_MACHINES_CFILES): Add cpu-ia64.c.
* dwarf2.c (concat_filename): Avoid string literal concatenation.
* ieee.c (ieee_get_symtab): Don't initialise union in struct.
-Mon Apr 17 19:14:36 2000 David Mosberger <davidm@hpl.hp.com>
+2000-04-11 David Mosberger <davidm@hpl.hp.com>
* Makefile.am (BFD64_BACKENDS): Mention coff-ia64.lo.
(BFD64_BACKENDS_CFILES): Mention coff-ia64.c
* coffcode.h (coff_set_arch_mach_hook): Eliminate warning on
unitialized variable.
-Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
+2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
--enable-build-warnings option.
and restore it on failure. Release newly allocated tdata on
failure.
-Fri Apr 7 11:33:47 2000 Jim Wilson <wilson@cygnus.com>
+2000-04-07 Jim Wilson <wilson@cygnus.com>
* dwarf2.c (struct dwarf2_debug): New field dwarf_line_size.
(decode_line_info): Set it. Report error if unit->line_offset is
(elf32_arm_print_private_bfd_data): Only decode EF_xxx flags
if the EABI version number is unknown.
-Wed Apr 5 22:04:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
+2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk>
* reloc.c (_bfd_relocate_contents): Add BFD_RELOC_SH_LOOP_START and
BFD_RELOC_SH_LOOP_END.
relative relocations for non-loaded sections in shared objects.
(elf64_alpha_check_relocs): Similarly.
-Mon Apr 3 13:37:15 2000 Hans-Peter Nilsson <hp@axis.com>
+2000-04-03 Hans-Peter Nilsson <hp@axis.com>
* aoutx.h (NAME(aout,reloc_type_lookup)): Add BFD_RELOC_8 and
BFD_RELOC_16 to switch for extended relocs.
on some targets.
* ihex.c : Ditto.
-Wed Mar 30 15:28:00 2000 Donald Lindsay <dlindsay@cygnus.com>
+2000-03-30 Donald Lindsay <dlindsay@cygnus.com>
* elf32-m32r.c (m32r_elf_generic_reloc): new function. All
HOWTO references to bfd_elf_generic_reloc, that have
name of the libtool directory.
* Makefile.in: Rebuild.
-Fri Feb 25 18:39:26 2000 Rodney Brown (RodneyBrown@pmsc.com)
+2000-02-25 Rodney Brown (RodneyBrown@pmsc.com)
* som.c (SOM_HOWTO): Define.
(som_hppa_howto_table): Use it.
Rs6kCorData): Use above defines to adapt code to use AIX 4.3's
core_dumpx structure.
-Thu Feb 17 00:04:48 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
+2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk>
* archures.c (bfd_mach_sh2, bfd_mach_sh_dsp): New macros.
(bfd_mach_sh3_dsp): Likewise.
SECTION_RELATIVE_ABSOLUTE_SYMBOL_P if defined to determine whether
symbol index should be set to -1.
-Thu Feb 10 20:07:50 GMT 2000 Toshiyasu Morita (toshi.morita@sega.com)
+2000-02-10 Toshiyasu Morita (toshi.morita@sega.com)
* coff-sh.c (USES1_REG, USES2_REG, SETS1_REG, SETS2_REG,
USESF1_REG, USESF2_REG, SETSF1_REG, SETSF2_REG): New macros.