binutils-gdb/bfd/ChangeLog-2010
2011-01-01 16:43:53 +00:00

3563 lines
132 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2010-12-31 Robert Millan <rmh@gnu.org>
* config.bfd: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.host: Likewise.
* configure.in: Support for `bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
* configure: Regenerate.
* elf32-mips.c: New target for FreeBSD support
(same as traditional MIPS but overrides ELF_OSABI
with ELFOSABI_FREEBSD).
* elf64-mips.c: Likewise.
* elfn32-mips.c: Likewise.
* targets.c (_bfd_target_vector): Add
`bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* elfcode.h (NAME(elf,r_info)): New.
(NAME(elf,r_sym)): Likewise.
* elflink.c (elf64_r_info): Removed.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_relocs_compatible): New.
(elf_backend_relocs_compatible): Defined to
elf_x86_64_relocs_compatible.
2010-12-30 H.J. Lu <hongjiu.lu@intel.com>
* archures.c (bfd_mach_x64_32): New.
(bfd_mach_x64_32_intel_syntax): Likewise.
* bfd-in2.h: Regenerated.
* config.bfd (targ64_selvecs): Add bfd_elf32_x86_64_vec for
i[3-7]86-*-linux-*.
(targ_selvecs): Add bfd_elf32_x86_64_vec for x86_64-*-linux-*.
* configure.in: Support bfd_elf32_x86_64_vec.
* configure: Regenerated.
* cpu-i386.c (bfd_x64_32_arch_intel_syntax): New.
(bfd_x64_32_arch): Likewise.
* elf-bfd.h (elf_append_rela): New prototype.
(elf_append_rel): Likewise.
(elf64_r_info): Likewise.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
* elf64-x86-64.c (ABI_64_P): New.
(elf_x86_64_info_to_howto): Replace ELF64_R_TYPE with
ELF32_R_TYPE. Replace ELF64_ST_TYPE with ELF_ST_TYPE.
(elf_x86_64_check_tls_transition):Likewise.
(elf_x86_64_check_relocs): Likewise.
(elf_x86_64_gc_mark_hook):Likewise.
(elf_x86_64_gc_sweep_hook): Likewise.
(elf_x86_64_relocate_section): Likewise.
(elf_x86_64_reloc_type_class): Likewise.
(ELF_DYNAMIC_INTERPRETER): Renamed to ...
(ELF64_DYNAMIC_INTERPRETER): This.
(ELF32_DYNAMIC_INTERPRETER): New.
(elf_x86_64_link_hash_table): Add r_info, r_sym, swap_reloca_out,
dynamic_interpreter and dynamic_interpreter_size.
(elf_x86_64_get_local_sym_hash): Replace ELF64_R_SYM with
htab->r_sym. Replace ELF64_R_INFO with htab->r_info.
(elf_x86_64_get_local_sym_hash): Likewise.
(elf_x86_64_check_tls_transition):Likewise.
(elf_x86_64_check_relocs): Likewise.
(elf_x86_64_gc_mark_hook):Likewise.
(elf_x86_64_gc_sweep_hook): Likewise.
(elf_x86_64_relocate_section): Likewise.
(elf_x86_64_finish_dynamic_symbol): Likewise.
(elf_x86_64_finish_local_dynamic_symbol): Likewise.
(elf_x86_64_link_hash_table_create): Initialize r_info, r_sym,
swap_reloca_out, dynamic_interpreter and dynamic_interpreter_size.
(elf_x86_64_check_relocs): Check ABI_64_P when requesting for
PIC.
(elf_x86_64_relocate_section): Likewise.
(elf64_x86_64_adjust_dynamic_symbol): Replace sizeof
(Elf64_External_Rela) with bed->s->sizeof_rela.
(elf64_x86_64_allocate_dynrelocs): Likewise.
(elf64_x86_64_size_dynamic_sections): Likewise.
(elf64_x86_64_finish_dynamic_symbol): Likewise.
(elf64_x86_64_append_rela): Removed.
(elf32_x86_64_elf_object_p): New.
Add bfd_elf32_x86_64_vec.
* elf64-x86-64.c (elf64_x86_64_xxx): Renamed to ...
(elf_x86_64_xxx): This.
* elflink.c (bfd_elf_final_link): Check ELF file class on error.
(elf_append_rela): New.
(elf_append_rel): Likewise.
(elf64_r_info): Likewise.
(elf32_r_info): Likewise.
(elf64_r_sym): Likewise.
(elf32_r_sym): Likewise.
* targets.c (bfd_elf32_x86_64_vec): New.
(_bfd_target_vector): Add bfd_elf32_x86_64_vec.
2010-12-24 Alan Modra <amodra@gmail.com>
* compress.c (decompress_contents): Style.
(bfd_get_full_section_contents): Do not decompress directly into
caller buffer or directly return cached section contents.
Check malloc return for compressed_buffer.
2010-12-21 Kai Tietz <kai.tietz@onevision.com>
* peXXigen.c (_bfd_XXi_final_link_postscript): Use
bfd_get_symbol_leading_char to determine "_tls_used" name.
2010-12-21 Pierre Muller <muller@ics.u-strasbg.fr>
* peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size
for windows 64-bit TLS table size.
2010-12-16 DJ Delorie <dj@redhat.com>
* reloc.c (BFD_RELOC_RX_ABS16_REV): Add.
(BFD_RELOC_RX_ABS32_REV): Add.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-rx.c (rx_reloc_map): Add them.
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_new_section_hook): Special handling for
.init_array/.fini_array output sections.
2010-12-13 Alan Modra <amodra@gmail.com>
* aoutx.h (aout_link_check_ar_symbols): Formatting.
* cofflink.c (coff_link_check_ar_symbols): Likewise.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Likewise.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols,
xcoff_link_check_dynamic_ar_symbols): Likewise.
* aoutx.h (aout_link_check_archive_element): Simplify code dealing
with add_archive_element substitute BFD.
* cofflink.c (coff_link_check_archive_element): Likewise.
* ecoff.c (ecoff_link_check_archive_element): Likewise.
(ecoff_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_archive_element): Likewise.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise.
* xcofflink.c (xcoff_link_check_archive_element): Likewise.
* aoutx.h (aout_link_check_archive_element): Free symbols from old
bfd if !keep_memory.
* cofflink.c (coff_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_archive_element): Likewise.
* xcofflink.c (xcoff_link_check_archive_element): Likewise.
2010-12-13 Alan Modra <amodra@gmail.com>
* plugin.c (bfd_plugin_mkobject): Delete.
(plugin_vec): Use bfd_false instead.
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (elf_link_add_archive_symbols): Remove subsbfd.
2010-12-12 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (special_sections_g): Add ".gnu.lto_".
2010-12-10 Alan Modra <amodra@gmail.com>
* config.bfd: Configure rs6000-*-aix* as for powerpc-*-aix*.
Add aix5coff64_vec to powerpc ELF entries.
2010-12-09 Mike Frysinger <vapier@gentoo.org>
* .gitignore: New file.
2010-12-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
PR ld/12288
* plugin.c (message): Add putchar for the trailing `\n'.
2010-12-04 Mike Frysinger <vapier@gentoo.org>
* Makefile.am (!INSTALL_LIBBFD/bfdinclude_HEADERS): Set to nothing.
(PLUGINS/bfdinclude_HEADERS): Append plugin-api.h.
* Makefile.in: Regenerated.
2010-12-04 Alan Modra <amodra@gmail.com>
PR ld/12277
* elflink.c (elf_link_output_extsym): Set bfd_error on symbol
and section errors. Allow better translation of error messages.
2010-12-02 Richard Sandiford <richard.sandiford@linaro.org>
* elf32-arm.c (elf32_arm_link_hash_table): Remove sgot, sgotplt,
srelgot, splt, srelplt.
(create_got_section, elf32_arm_link_hash_table_create): Don't set them.
(elf32_arm_create_dynamic_sections): Likewise. Use htab->root
fields instead.
(arm_type_of_stub): Use the root fields instead of the removed ones.
(cortex_a8_erratum_scan, elf32_arm_size_stubs): Likewise.
(bfd_elf32_arm_process_before_allocation): Likewise.
(elf32_arm_check_relocs, allocate_dynrelocs): Likewise.
(elf32_arm_size_dynamic_sections): Likewise.
(elf32_arm_output_arch_local_syms): Likewise.
(elf32_arm_final_link_relocate): Set sgot, splt and srelgot from the
htab fields instead of looking them up by name. Consistently use
these local variables instead of htab fields.
(elf32_arm_finish_dynamic_symbol): Likewise sgot, splt and srel.
Use srelbss instead of looking it up by name.
(elf32_arm_finish_dynamic_sections): Use sgotplt, splt and srelplt
instead of looking up the symbols by name. Use the root fields
instead of the removed ones.
2010-12-02 Richard Sandiford <richard.sandiford@linaro.org>
* elf32-arm.c (elf32_arm_relocs_copied): Delete.
(elf32_arm_link_hash_entry): Replace relocs_copied with dyn_relocs.
(elf32_arm_link_hash_newfunc): Update accordingly.
(elf32_arm_copy_indirect_symbol, elf32_arm_gc_sweep_hook): Likewise.
(elf32_arm_check_relocs, allocate_dynrelocs): Likewise.
(elf32_arm_readonly_dynrelocs): Likewise.
(elf32_arm_size_dynamic_sections): Likewise.
2010-12-02 Paul Koning <ni1d@arrl.net>
* pdp11.c (aout_link_add_symbols): Ignore debug symbols.
2010-11-30 Joel Sherrill <joel.sherrill@oarcorp.com>
* config.bfd: Add sparc64-rtems.
2010-11-25 Alan Modra <amodra@gmail.com>
* po/es.po: Update.
* po/fi.po: Update.
* po/fr.po: Update.
* po/ja.po: Update.
* po/zh_CN.po: Update.
2010-11-24 Joel Brobecker <brobecker@adacore.com>
* Makefile.am (OPTIONAL_BACKENDS): Add rs6000-core.lo.
(OPTIONAL_BACKENDS_CFILES): Add rs6000-core.c.
* Makefile.in: Regenerate.
2010-11-24 Alan Modra <amodra@gmail.com>
PR ld/12253
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct
DW_EH_PE_datarel handling. Truncate .eh_frame_hdr address to
ptr_size.
2010-11-23 Mingming Sun <mingm.sun@gmail.com>
* elfxx-mips.c (mips_set_isa_flags): Move bfd_mach_loongson_3a
after bfd_mach_mips_sb1.
2010-11-17 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (vms_write_index): Add comments.
Partially revert previous patch. Free blocks later.
2010-11-17 Nick Clifton <nickc@redhat.com>
PR ld/12161
* elf32-avr.c (elf32_avr_check_relocs): Delete.
(elf_backend_check_relocs): Delete.
2010-11-16 Jie Zhang <jie.zhang@analog.com>
* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
(elf32_bfin_data_in_l1): New variable.
(elf32_bfin_final_write_processing): New.
(elf_backend_final_write_processing): Define.
2010-11-15 Mike Frysinger <vapier@gentoo.org>
PR binutils/12177
* elf32-bfin.c (_bfin_create_got_section): Drop unused flags code.
2010-11-12 H.J. Lu <hongjiu.lu@intel.com>
* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS and
BFD_DECOMPRESS.
(bfd_openr_next_archived_file): Revert the last change.
2010-11-11 Mingming Sun <mingm.sun@gmail.com>
* archures.c (bfd_mach_mips_loongson_3a): Defined.
* bfd-in2.h (bfd_mach_mips_loongson_3a): Defined.
* cpu-mips.c (I_loongson_3a): New add.
(arch_info_struct): Add loongson_3a.
* elfxx-mips.c (_bfd_elf_mips_mach): Add loongson_3a.
(mips_set_isa_flags): Add loongson_3a.
(mips_mach_extensions): Add loongson_3a in MIPS64 extensions.
2010-11-10 Richard Sandiford <richard.sandiford@linaro.org>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Remove unused
variables.
2010-11-10 Nick Clifton <nickc@redhat.com>
* po/ja.po: Updated Japanese translation.
* po/ru.po: Updated Russian translation.
2010-11-08 Nick Clifton <nickc@redhat.com>
* po/ja.po: Updated Japanese translation.
2010-11-08 Alan Modra <amodra@gmail.com>
* hash.c (bfd_hash_hash): Extract from..
(bfd_hash_lookup): ..here.
(bfd_hash_rename): New function.
* section.c (bfd_rename_section): New function.
* bfd-in.h (bfd_hash_rename): Declare.
* bfd-in2.h: Regenerate.
* elf.c (_bfd_elf_make_section_from_shdr): Rename input sections
when compressing or decompressing. Don't assert name match.
* elf64-hppa.c (get_reloc_section): Don't assert name match.
* elfxx-ia64.c (get_reloc_section): Likewise.
2010-11-05 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_obj_attrs_handle_unknown): New.
(elf32_tic6x_merge_attributes): Use
_bfd_elf_merge_unknown_attribute_low and
_bfd_elf_merge_unknown_attribute_list.
(elf_backend_obj_attrs_handle_unknown): Define.
2010-11-05 Joseph Myers <joseph@codesourcery.com>
* elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
_bfd_elf_merge_unknown_attribute_list): Correct test for matching
string attributes.
2010-11-05 Tristan Gingold <gingold@adacore.com>
* po/bfd.pot: Regenerate
2010-11-05 Tristan Gingold <gingold@adacore.com>
* configure.in: Bump version to 2.21.51
* configure: Regenerate.
2010-11-04 Maciej W. Rozycki <macro@codesourcery.com>
PR ld/10144
* elfxx-mips.c (_bfd_mips_elf_check_relocs)
[R_MIPS_32, R_MIPS_REL32, R_MIPS_64]: Ignore relocs from
SEC_DEBUGGING sections.
2010-11-04 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (vms_write_index): Fix thinko: reverse the loop.
Use bfd_zmalloc instead of bfd_malloc. Fix comment.
2010-11-04 Kai Tietz <kai.tietz@onevision.com>
* coffcode.h (GNU_LINKONCE_WT): New.
(sec_to_styp_flags): Add handling of new debug
section.
(styp_to_sec_flags): Likewise.
2010-11-04 Tristan Gingold <gingold@adacore.com>
* makefile.vms (CFLAGS): Make badalias warnings informational.
* vms-lib.c (vms_lib_bread): Avoid arithmetic on void pointer.
2010-11-04 Joseph Myers <joseph@codesourcery.com>
* elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
_bfd_elf_merge_unknown_attribute_list): New.
* elf-bfd.h (struct elf_backend_data): Add
obj_attrs_handle_unknown.
(_bfd_elf_merge_unknown_attribute_low,
_bfd_elf_merge_unknown_attribute_list): Declare.
* elf32-arm.c (elf32_arm_obj_attrs_handle_unknown): New. Split
out from elf32_arm_merge_eabi_attributes.
(elf32_arm_merge_eabi_attributes): Use
_bfd_elf_merge_unknown_attribute_low and
_bfd_elf_merge_unknown_attribute_list.
(elf_backend_obj_attrs_handle_unknown): Define.
* elfxx-target.h (elf_backend_obj_attrs_handle_unknown): Define.
(elfNN_bed): Update initializer.
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
* bfd.c (BFD_FLAGS_FOR_BFD_USE_MASK): New.
* bfd-in2.h: Regenerated.
2010-11-02 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Except for
Tag_ABI_compatibility, treat odd tags as strings and even ones as
integers.
(elf32_tic6x_obj_attrs_order, elf32_tic6x_tag_to_array_alignment,
elf32_tic6x_array_alignment_to_tag): New.
(elf32_tic6x_merge_attributes): Handle more attributes. Set type
for merged attributes.
(elf_backend_obj_attrs_order): Define.
2010-10-29 Maciej W. Rozycki <macro@codesourcery.com>
* elfxx-mips.c (mips_elf_calculate_relocation): Fix a typo.
2010-10-29 Pawel Sikora <pluto@pld-linux.org>
PR binutils/12075
* compress.c (bfd_compress_section_contents): Use uLong on
compressed_size.
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Check
Tag_ABI_compatibility not Tag_compatibility.
(elf32_tic6x_merge_attributes): Update compatibility attribute
name in comment. Return FALSE if merging common attributes fails.
2010-10-29 Nick Clifton <nickc@redhat.com>
PR bintils/6962
* coffcode.h (handle_COMDAT): Only check the base type when
looking for a section symbol.
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
Cary Coutant <ccoutant@google.com>
* archive.c (bfd_openr_next_archived_file): Copy BFD_COMPRESS
and BFD_DECOMPRESS.
* bfd.c (BFD_COMPRESS): New.
(BFD_DECOMPRESS): Likewise.
(BFD_FLAGS_SAVED): Likewise.
(bfd_preserve_save): Replace BFD_IN_MEMORY with BFD_FLAGS_SAVED.
* compress.c (bfd_uncompress_section_contents): Removed.
(get_uncompressed_size): New.
(decompress_contents): Likewise.
(bfd_compress_section_contents): Likewise.
(bfd_get_full_section_contents): Likewise.
(bfd_is_section_compressed): Likewise.
(bfd_init_section_decompress_status): Likewise.
(bfd_init_section_compress_status): Likewise.
* dwarf2.c (dwarf_debug_sections): New.
(dwarf_debug_section_enum): Likewise.
(read_section): Remove section_name and compressed_section_name.
Add dwarf_debug_section_enum. Try compressed debug section.
(read_indirect_string): Updated.
(read_abbrevs): Likewise.
(decode_line_info): Likewise.
(read_debug_ranges): Likewise.
(find_line): Updated.
* ecoff.c (bfd_debug_section): Add compress_status and
compressed_size.
* elf.c (_bfd_elf_make_section_from_shdr): Call
bfd_is_section_compressed to check if a DWARF debug section is
compressed. Call bfd_init_section_compress_status or
bfd_init_section_decompress_status if needed.
* elflink.c (elf_link_input_bfd): Replace bfd_get_section_contents
with bfd_get_full_section_contents.
* merge.c (_bfd_add_merge_section): Likewise.
* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
* elfxx-target.h (TARGET_BIG_SYM): Allow BFD_COMPRESS and
BFD_DECOMPRESS.
(TARGET_LITTLE_SYM): Likewise.
* libbfd-in.h (dwarf_debug_section): New.
(dwarf_debug_sections): Likewise.
* libbfd.c (_bfd_generic_get_section_contents): Issue an error
when getting contents on compressed/decompressed section.
* section.c (COMPRESS_SECTION_NONE): New.
(COMPRESS_SECTION_DONE): Likewise.
(DECOMPRESS_SECTION_SIZED): Likewise.
(BFD_FAKE_SECTION): Add compress_status and compressed_size.
(bfd_malloc_and_get_section): Replace bfd_get_section_contents
with bfd_get_full_section_contents.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_merge_attributes): Check for mismatch
of DSBT attributes.
2010-10-25 Daniel Jacobowitz <dan@codesourcery.com>
* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Always call
_bfd_clear_contents. Pass it the input section.
* libbfd-in.h (_bfd_clear_contents): Add input_section argument.
* libbfd.h: Regenerate.
* reloc.c (_bfd_clear_contents): Take input_section argument.
Use non-zero for .debug_ranges.
(bfd_generic_get_relocated_section_conten): Update _bfd_clear_contents
call.
* elf32-arm.c (elf32_arm_relocate_section): Use
RELOC_AGAINST_DISCARDED_SECTION.
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elf32-arm.c (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-bfin.c (bfin_relocate_section): Likewise.
(bfinfdpic_relocate_section): Likewise.
* elf32-cr16.c (elf32_cr16_relocate_section): Likewise.
* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-crx.c (elf32_crx_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-frv.c (elf32_frv_relocate_section): 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-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
* elf32-lm32.c (lm32_elf_relocate_section): Likewise.
* elf32-m32c.c (m32c_elf_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mep.c (mep_elf_relocate_section): Likewise.
* elf32-moxie.c (moxie_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-mt.c (mt_elf_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-rx.c (rx_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-score.c (s3_bfd_score_elf_relocate_section): Likewise.
* elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section_r): Likewise.
(elf64_alpha_relocate_section): Likewise.
* elf64-hppa.c (elf64_hppa_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-sh64.c (sh_elf64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
2010-10-25 Nathan Sidwell <nathan@codesourcery.com>
* elf32-tic6x.c: Add attribution.
2010-10-25 Alan Modra <amodra@gmail.com>
* elf32-arm.c (find_stub_size_and_template): Avoid uninitialized
var warning at -O3.
2010-10-25 Alan Modra <amodra@gmail.com>
* opncls.c (bfd_alloc, bfd_zalloc): Don't mark internal.
* libbfd-in.h (bfd_alloc, bfd_zalloc): Don't declare here.
* libbfd.h: Regenerate
* bfd-in2.h: Regenerate.
2010-10-25 Alan Modra <amodra@gmail.com>
* opncls.c (_bfd_id_counter): Rename to bfd_id_counter.
(bfd_reserved_id_counter, bfd_use_reserved_id): New vars.
(_bfd_new_bfd): Use negative id when bfd_use_reserved_id.
(bfd_create): Doc fix.
* bfd-in2.h: Regenerate.
2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elfxx-sparc.c (tpoff): Define bed, static_tls_size.
Consider static_tls_alignment.
* elf32-sparc.c (TARGET_BIG_SYM): Redefine to
bfd_elf32_sparc_sol2_vec.
(TARGET_BIG_NAME): Redefine to elf32-sparc-sol2.
(elf32_bed): Redefine to elf32_sparc_sol2_bed.
(elf_backend_static_tls_alignment): Redefine to 8.
Include elf32-target.h.
(elf_backend_static_tls_alignment): Undef again for VxWorks.
* elf64-sparc.c (TARGET_BIG_SYM): Redefine to
bfd_elf64_sparc_sol2_vec.
(TARGET_BIG_NAME): Redefine to elf64-sparc-sol2.
(ELF_OSABI): Undef.
(elf64_bed): Redefine to elf64_sparc_sol2_bed.
(elf_backend_static_tls_alignment): Redefine to 16.
Include elf64-target.h.
* config.bfd (sparc-*-solaris2.[0-6]): Split from sparc-*-elf*.
Set targ_defvec to bfd_elf32_sparc_sol2_vec.
[BFD64] (sparc-*-solaris2*): Set targ_defvec to
bfd_elf32_sparc_sol2_vec.
Replace bfd_elf64_sparc_vec by bfd_elf64_sparc_sol2_vec in
targ_selvecs.
* configure.in: Handle bfd_elf32_sparc_sol2_vec,
bfd_elf64_sparc_sol2_vec.
* configure: Regenerate.
* targets.c (bfd_elf32_sparc_sol2_vec): Declare.
(bfd_elf64_sparc_sol2_vec): Declare.
(_bfd_target_vector): Add bfd_elf32_sparc_sol2_vec,
bfd_elf64_sparc_sol2_vec.
2010-10-21 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_merge_arch_attributes): Update for
attribute renaming.
(elf_backend_obj_attrs_section): Change to ".c6xabi.attributes".
2010-10-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elf-bfd.h (struct elf_backend_data): New member
static_tls_alignment.
* elfxx-target.h (elf_backend_static_tls_alignment): Provide
default.
(elfNN_bed): Initialize static_tls_alignment.
* elflink.c (bfd_elf_final_link): Don't round end of TLS section
if static TLS has special alignment requirements.
* elf32-i386.c (elf_i386_tpoff): Define bed, static_tls_size.
Consider static_tls_alignment.
(elf_backend_static_tls_alignment): Redefine for Solaris 2.
Undef again for VxWorks.
* elf64-x86-64.c (elf64_x86_64_tpoff): Define bed,
static_tls_size.
Consider static_tls_alignment.
(elf_backend_static_tls_alignment): Redefine for Solaris 2.
Undef again for Intel L1OM.
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
2010-10-11 Alan Modra <amodra@gmail.com>
* elf32-frv.c (elf32_frv_relocate_section): Set "name" for global syms.
(elf32_frvfdpic_finish_dynamic_sections): Don't crash on
__ROFIXUP_END__ defined in shared lib.
2010-10-11 Thomas Schwinge <thomas@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate)
(elf32_arm_relocate_section): Handle relocations against STN_UNDEF.
2010-10-11 Dave Korn <dave.korn.cygwin@gmail.com>
* elflink.c (_bfd_elf_link_output_relocs): Delete unused variable
"output_rel_hdr".
2010-10-09 John Tytgat <john@bass-software.com>
* reloc.c (BFD_RELOC_ARM_HVC): Add.
* libbfd.h: Regenerate.
2010-10-08 Kai Tietz <kai.tietz@onevision.com>
* pei-x86_64.c (find_next_xdata_or_end): Removed.
(pex64_dump_xdata): Remove arguments stop, onaline,
and pdata. New argument endx. Print term "none"
instead of misleading "CFA".
(sort_xdata_arr): New function.
(pex64_bfd_print_pdata): Use binary search/sort for unwind-RVAs
instead of searching quadratic.
2010-10-08 Pierre Muller <muller@ics.u-strasbg.fr>
Alan Modra <amodra@gmail.com>
Fix build with -DDEBUG=7
* elf.c (_bfd_elf_symbol_from_bfd_symbol): Remove call
to deleted function elf_symbol_flags. Add typecast to avoid warning.
* elf32-rx.c (dump_symbol) : Rename to..
(rx_dump_symbol): ..this to avoid link errors.
* elflink.c (elf_link_input_bfd): Add typecast to avoid warnings.
(bfd_elf_perform_complex_relocation): Likewise.
* elf32-xtensa.c (print_action_list): Likewise.
2010-10-06 Nathan Sidwell <nathan@codesourcery.com>
* elf32-arm.c (elf32_arm_stub_long_branch_any_arm_pic,
elf32_arm_stub_long_branch_any_arm_pic): Use a consistent name for
ip/r12.
(arm_type_of_stub): Remove superfluous braces.
2010-10-04 Bernd Schmidt <bernds@codesourcery.com>
* elf-bfd.h (struct bfd_elf_section_reloc_data): New structure.
(struct bfd_elf_section_data): New members REL and RELA; delete
members REL_HDR, REL_HDR2, REL_COUNT, REL_COUNT2, REL_IDX,
REL_IDX2, REL_HASHES.
(_bfd_elf_init_reloc_shdr): Adjust declaration.
(_bfd_elf_single_rel_hdr): Declare.
(RELOC_AGAINST_DISCARDED_SECTION): Use it.
* elf.c (bfd_section_from_shdr): Adjusted to match changes in
data structures.
(_bfd_elf_init_reloc_shdr): New arg RELDATA. Remove arg REL_HDR.
All callers changed. Allocate memory for the Elf_Internal_Shdr
structure.
(_bfd_elf_single_rel_hdr): New function.
(struct fake_section_arg): New structure.
(elf_fake_section): Expect to see a pointer to it in the third
argument. If doing a relocatable link, allocate both REL and RELA
sections as needed.
(assign_section_numbers): Adjusted to match changes in
data structures.
(_bfd_elf_compute_section_file_positions): Call elf_fake_sections
with a struct fake_section_args argument.
* elfcode.h (elf_write_relocs): Adjusted to match changes in
data structures.
(elf_slurp_reloc_table): Likewise.
* elflink.c (_bfd_elf_link_read_relocs): Likewise.
(_bfd_elf_link_size_reloc_section): Remove arg REL_HDR, replace with
RELDATA. Remove argument O. All callers changed. Remove code to
discover the right rel_hdr and count.
(_bfd_elf_link_output_relocs): Adjusted to match changes in
data structures.
(elf_link_adjust_relocs): Remove args REL_HDR, COUNT and REL_HASH;
replace with RELDATA. All callers changed.
(elf_link_input_bfd): Correctly generate rel_hash data when both
REL and RELA sections are present.
(elf_reloc_link_order): Adjusted to match changes in
data structures.
(bfd_elf_final_link): Simplify code to count relocs. Free the
hashes array for both REL and RELA.
(get_dynamic_reloc_section_name): Use _bfd_elf_single_reloc_hdr
* elf32-m32r.c (m32r_elf_fake_sections, elf_backend_fake_sections):
Delete.
* elf32-tic6x.c (elf32_tic6x_fake_sections, elf_backend_fake_sections):
Delete.
(elf32_tic6x_rel_relocation_p): Adjusted to match changes in
data structures.
* elf32-microblaze.c (microblaze_elf_check_relocs): Use
_bfd_elf_single_rel_hdr.
* elf32-ppc.c (ppc_elf_relax_section): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-hppa.c (get_reloc_section): Likewise.
* elf64-mips.c (mips_elf64_slurp_reloc_table): Adjusted to match
changes in data structures.
(mips_elf64_write_relocs): Use _bfd_elf_single_rel_hdr.
* elf64-ppc.c (ppc64_elf_edit_opd): Likewise.
(ppc64_elf_edit_toc): Likewise.
(get_relocs): Adjusted to match changes in data structures.
Allocate an Elf_Internal_Shdr structure if necessary.
(ppc64_elf_finish_dynamic_sections): Use _bfd_elf_single_rel_hdr.
* elf64-sparc.c (elf64_sparc_slurp_reloc_table): Adjusted to match
changes in data structures.
* elfxx-ia64.c (get_reloc_section): Use _bfd_elf_single_rel_hdr.
* elfxx-mips.c (MIPS_RELOC_RELA_P): Remove macro.
(mips_elf_rel_relocation_p): Adjusted to match changes in data
structures.
(_bfd_mips_elf_relocate_section): Use mips_elf_rel_relocation_p rather
than MIPS_RELOC_RELOCA_P.
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Use
_bfd_elf_single_rel_hdr.
(_bfd_sparc_elf_relocate_section): Likewise.
2010-10-01 Thomas Schwinge <thomas@codesourcery.com>
* elf32-arm.c (elf32_arm_size_stubs): Don't choke on local symbols in
SHN_UNDEF, SHN_ABS, SHN_COMMON.
2010-09-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* elf32-i386.c (elf_i386_size_dynamic_sections): Don't
allocate .got.plt section if there are no GOT nor PLT
entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Li.kewise.
* elflink.c (_bfd_elf_define_linkage_sym): Clear non_elf.
2010-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
2010-09-24 Thomas Schwinge <thomas@codesourcery.com>
* elf32-arm.c, elf32-cris.c, elf32-hppa.c, elf32-i370.c, elf32-m32r.c,
elf32-m68k.c, elf32-microblaze.c, elf32-ppc.c, elf32-score.c,
elf32-score7.c, elf32-sh.c, elf32-vax.c, elf32-xtensa.c, elf64-alpha.c,
elf64-hppa.c, elf64-mips.c, elf64-ppc.c, elf64-sparc.c, elfcode.h,
elflink.c, elfxx-ia64.c, elfxx-mips.c: Use STN_UNDEF when referring to
the zero symbol index.
* elflink.c (bfd_elf_reloc_symbol_deleted_p): Compare the symbol index
to STN_UNDEF, not SHN_UNDEF.
2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_fake_sections): New function.
(elf_backend_fake_sections): Define.
2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* bfd-in2.h (BFD_RELOC_ARM_HVC): New enum value.
2010-09-23 Alan Modra <amodra@gmail.com>
* cpu-d10v.c: Make bits_per_address 18 for all arch_info entries.
2010-09-23 Alan Modra <amodra@gmail.com>
* elf.c (_bfd_elf_init_private_section_data): Allow for SEC_RELOC
difference between input and output section.
2010-09-22 Kai Tietz <kai.tietz@onevision.com>
* coffcode.h (sec_to_styp_flags): Adjust debug
sections to be conform to pe-coff specification
and avoid marking them as excluded.
(styp_to_sec_flags): Doing reverse mapping.
* peXXigen.c (_bfd_XXi_final_link_postscript): Add handling for
setting IAT directory entry.
2010-09-20 Richard Henderson <rth@redhat.com>
* elf64-alpha.c (elf64_alpha_howto_table): Use bfd_elf_generic_reloc.
2010-09-19 Richard Sandiford <rdsandiford@googlemail.com>
* elfxx-mips.c (mips_elf_link_hash_entry): Add got_only_for_calls.
(mips_elf_link_hash_newfunc): Initialize it.
(mips_elf_record_global_got_symbol): Add a for_call parameter.
(mips_elf_count_got_symbols): Check SYMBOL_CALLS_LOCAL rather
than SYMBOL_REFERENCES_LOCAL if the GOT entry is only used for calls.
Try to remove .got entries in favour of .got.plt entries on VxWorks.
(_bfd_mips_elf_check_relocs): Do not try to avoid allocating
a global GOT entry for VxWorks calls. Update uses of
mips_elf_record_global_got_symbol.
(allocate_dynrelocs): Set got_only_for_calls to false if the GOT
entry is used for dynamic relocations.
2010-09-19 Richard Sandiford <rdsandiford@googlemail.com>
* elfxx-mips.c (mips_got_entry): Adjust commentary.
(mips_elf_create_local_got_entry): If given a symbol, check that it
has been assigned to the local part of the GOT.
(mips_elf_count_got_symbols): Take the bfd_link_info as argument
instead of the master GOT. Put all locally-binding symbols in
the local area.
(mips_elf_make_got_per_bfd): Use global_got_area to decide whether
a symbol lives in the local or global area.
(mips_elf_local_relocation_p): Remove check_forced argument and
retain only the !check_forced behavior.
(mips_elf_calculate_relocation): Adjust call accordingly.
Use global_got_area to decide whether an output relocation
should be local or global. Explicitly decay R_MIPS_GOT_PAGE
into R_MIPS_GOT_DISP where appropriate. Fix selection of
local vs. global semantics for R_MIPS*_26. Remove redundant
reevaluation of what is stored in was_local_p.
(mips_elf_create_dynamic_relocation): Use global_got_area to decide
whether the relocation should be against a global or local symbol.
(mips_elf_lay_out_got): Update the GOT traversal after the above
change to mips_elf_count_got_symbols.
(mips_elf_adjust_addend): Adjust call to mips_elf_local_relocation_p.
(_bfd_mips_elf_relocate_section): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Use global_got_area to decide
whether the symbol has a global got entry.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
2010-09-19 Richard Sandiford <rdsandiford@googlemail.com>
* elfxx-mips.c (allocate_dynrelocs): Don't add relocation symbols
to the global GOT on VxWorks.
2010-09-19 Richard Sandiford <rdsandiford@googlemail.com>
* elfxx-mips.c (_bfd_mips_elf_check_relocs): On VxWorks,
exclude __GOTT_BASE__ and __GOTT_INDEX__ from the warning
about HI/LO relocations in shared objects.
2010-09-16 Alan Modra <amodra@gmail.com>
* elf32-spu.c (spu_elf_size_sections): Omit fixups for non-alloc
sections.
(spu_elf_create_sections): Mark .fixup with SEC_LINKER_CREATED and
set dynobj.
(spu_elf_finish_dynamic_sections): New function.
(elf_backend_finish_dynamic_sections): Define.
2010-09-16 Alan Modra <amodra@gmail.com>
* elf.c (bfd_elf_get_default_section_type): Don't test SEC_NEVER_LOAD.
* elflink.c (elf_link_input_bfd): Likewise.
2010-09-15 Kai Tietz <kai.tietz@onevision.com>
* pei-x86_64.c (pex64_get_unwind_info): Reorgnized.
(pex64_get_scope_entry): Removed.
(find_next_xdata_or_end): New helper.
(pex64_dump_xdata): Reworked.
(pex64_bfd_print_pdata): Add checking for
valid pdata sorting and values. Reworked
output.
2010-09-15 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/12004
* plugin.c (bfd_plugin_object_p): Handle NULL iostream.
2010-09-14 Kai Tietz <kai.tietz@onevision.com>
* pe-x86_64.c (COFF_SECTION_ALIGNMENT_ENTRIES): Make
.rdata, .data, and .text partial matched section names.
* pei-x86_64.c: Likewise.
* peXXigen.c (sort_x64_pdata): New helper.
(_bfd_XXi_final_link_postscript): Do pdata sorting.
2010-09-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11998
* elf.c (assign_file_positions_for_load_sections): Don't warn
zero LMA adjustment.
2010-09-09 Bernd Schmidt <bernds@codesourcery.com>
* elflink.c (bfd_elf_final_link): Correct calculation of
max_external_reloc_size.
2010-09-07 Alan Modra <amodra@gmail.com>
Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
* peXXigen.c: Whitespace.
(pe_print_idata): Correct section limit calculations. Tidy array
indexing.
(_bfd_XX_print_ce_compressed_pdata): Don't leak memory.
2010-09-02 Richard Henderson <rth@redhat.com>
* config.bfd (x86_64-*-mingw*): Select 32-bit pei vectors too.
2010-09-01 Pedro Alves <pedro@codesourcery.com>
* netbsd-core.c (netbsd_core_core_file_pid): Renamed to ...
(netbsd_core_file_pid): ... this.
2010-09-01 Tristan Gingold <gingold@adacore.com>
* coffcode.h (coff_slurp_line_table): Add a cast.
(coff_slurp_reloc_table): Ditto.
2010-08-30 Gunther Nikl <gnikl@users.sourceforge.net>
* cisco-core.c (cisco_core_file_pid): Define.
2010-08-30 Alan Modra <amodra@gmail.com>
PR binutils/11953
* elf.c (copy_elf_program_header): Calculate map->header_size
from lowest_section, not first_section. Validate program
header p_paddr against section lma. Find lowest_section in
second loop over headers.
2010-08-28 Alan Modra <amodra@gmail.com>
* elflink.c (_bfd_elf_dynamic_symbol_p): Rename param. Make
common syms local.
(_bfd_elf_symbol_refs_local_p): Expand comment.
(elf_link_output_extsym): Fix style nit.
2010-08-26 Nathan Sidwell <nathan@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link): Process stub sections
exactly once.
2010-08-25 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11939
* elflink.c (elf_link_add_object_symbols): Don't set
unique_global for non-ELF hash link table.
2010-08-25 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11944
* elf-bfd.h (elf_backend_data): Add target_id.
(bfd_elf_make_generic_object): Renamed to ...
(bfd_elf_make_object): This.
* elf.c (bfd_elf_make_generic_object): Removed.
(bfd_elf_make_object): New.
(bfd_elf_mkcorefile): Really treat it as an object file.
* elf-m10300.c (ELF_TARGET_ID): New.
* elf32-arm.c (ELF_TARGET_ID): Likewise.
* elf32-bfin.c (ELF_TARGET_ID): Likewise.
* elf32-cris.c (ELF_TARGET_ID): Likewise.
* elf32-frv.c (ELF_TARGET_ID): Likewise.
* elf32-i386.c (ELF_TARGET_ID): Likewise.
* elf32-lm32.c (ELF_TARGET_ID): Likewise.
* elf32-m32r.c (ELF_TARGET_ID): Likewise.
* elf32-m68hc11.c (ELF_TARGET_ID): Likewise.
* elf32-m68hc12.c (ELF_TARGET_ID): Likewise.
* elf32-m68k.c (ELF_TARGET_ID): Likewise.
* elf32-microblaze.c (ELF_TARGET_ID): Likewise.
* elf32-ppc.c (ELF_TARGET_ID): Likewise.
* elf32-s390.c (ELF_TARGET_ID): Likewise.
* elf32-sh.c (ELF_TARGET_ID): Likewise.
* elf32-sparc.c (ELF_TARGET_ID): Likewise.
* elf32-spu.c (ELF_TARGET_ID): Likewise.
* elf32-tic6x.c (ELF_TARGET_ID): Likewise.
* elf32-xtensa.c (ELF_TARGET_ID): Likewise.
* elf64-alpha.c (ELF_TARGET_ID): Likewise.
* elf64-hppa.c (ELF_TARGET_ID): Likewise.
* elf64-ppc.c (ELF_TARGET_ID): Likewise.
* elf64-s390.c (ELF_TARGET_ID): Likewise.
* elf64-x86-64.c (ELF_TARGET_ID): Likewise.
* elfxx-ia64.c (ELF_TARGET_ID): Likewise.
* elf32-hppa.c (elf32_hppa_mkobject): Removed.
(bfd_elf32_mkobject): Likewise.
(ELF_TARGET_ID): New.
* elf32-mips.c (ELF_TARGET_ID): New.
(bfd_elf32_mkobject): Removed.
* elf64-mips.c (ELF_TARGET_ID): New.
(bfd_elf64_mkobject): Removed.
* elfn32-mips.c (ELF_TARGET_ID): New.
(bfd_elf32_mkobject): Removed.
* elfxx-mips.c (_bfd_mips_elf_mkobject): Removed.
* elfxx-mips.h (_bfd_mips_elf_mkobject): Likewise.
* elfxx-target.h (bfd_elfNN_mkobject): Default to
bfd_elf_make_object.
(ELF_TARGET_ID): New. Default to GENERIC_ELF_DATA.
(elfNN_bed): Initialize target_id.
2010-08-25 Julian Brown <julian@codesourcery.com>
* elf32-arm.c (arm_stub_required_alignment): New.
(arm_build_one_stub): Use above to partition stubs.
(make_branch_to_a8_stub): Use arm_stub_a8_veneer_lwm not
arm_stub_a8_veneer_b_cond.
2010-08-25 Alan Modra <amodra@gmail.com>
* aout-arm.c (MY(bfd_reloc_type_lookup)): Use bfd_arch_bits_per_address.
* aout-ns32k.c (MY(bfd_reloc_type_lookup)): Likewise.
* aoutx.h (NAME(aout,reloc_type_lookup)): Likewise.
* coff-arm.c (coff_arm_reloc_type_lookup): Likewise.
* elf-hppa.h (elf_hppa_reloc_final_type): Likewise.
* reloc.c (bfd_default_reloc_type_lookup): Likewise.
* riscix.c (riscix_reloc_type_lookup): Likewise.
2010-08-25 Alan Modra <amodra@gmail.com>
* elf.c (_bfd_elf_map_sections_to_segments): Don't load program
headers if any loaded section wraps the address space. Simplify
~(m-1) to -m. Use lma rather than vma when determining whether
note sections are adjacent.
2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11933
* elflink.c (elf_link_add_object_symbols): Don't check relocation
if input ELF object ID doesn't match output.
2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
* merge.c (sec_merge_emit): Revert the last checkin.
2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
* elf32-sh.c (sh_elf_relocate_section): Handle non-ELF output
BFD.
2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
* elf32-m68k.c (bfd_elf_m68k_set_target_options): Don't set GOT
options unless an m68k hash table has been found.
2010-08-20 Nick Clifton <nickc@redhat.com>
* merge.c (sec_merge_emit): Do not zero pad sections that do not
have an alignment.
2010-08-18 Pedro Alves <pedro@codesourcery.com>
PR corefile/8210
* bfd-in2.h: Regenerate.
* corefile.c (bfd_core_file_pid): New.
* targets.c (BFD_JUMP_TABLE_CORE): Add NAME##_core_file_pid.
(struct bfd_target) <_core_file_pid>: New.
* libbfd-in.h (_bfd_nocore_core_file_pid): Declare.
* libbfd.c (_bfd_nocore_core_file_pid): New.
* elf-bfd.h (bfd_elf32_core_file_pid, bfd_elf64_core_file_pid):
Declare.
* elfcode.h (elf_core_file_pid): New define.
* elfcore.h (elf_core_file_pid): New function.
* elf.c (elfcore_make_pid): Rewrite.
(elfcore_grok_prstatus): Only set core_pid if not set yet.
(elfcore_grok_prstatus) [!HAVE_PRSTATUS_T_PR_WHO]: Fallback to
getting the lwpid from prstat.pr_pid.
* elf64-x86-64.c (elf64_x86_64_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
(elf64_x86_64_grok_psinfo): Extract the the main process's PID,
and store it in elf_tdata's core_pid field.
* elf32-i386.c (elf_i386_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
(elf_i386_grok_psinfo): Extract the the main process's PID, and
store it in elf_tdata's core_pid field.
* elf32-am33lin.c (elf32_am33lin_grok_prstatus): Write the LWPID
to elf_tdata's core_lwpid instead of to core_pid.
* elf32-arm.c (elf32_arm_nabi_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-cris.c (cris_elf_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-frv.c (elf32_frv_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-hppa.c (elf32_hppa_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-ppc.c (ppc_elf_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-s390.c (elf_s390_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-score.c (s3_bfd_score_elf_grok_prstatus): Write the LWPID
to elf_tdata's core_lwpid instead of to core_pid.
* elf32-score7.c (s7_bfd_score_elf_grok_prstatus): Write the LWPID
to elf_tdata's core_lwpid instead of to core_pid.
* elf32-sh.c (elf32_shlin_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf32-xtensa.c (elf_xtensa_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf64-hppa.c (elf64_hppa_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf64-mips.c (elf64_mips_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elf64-ppc.c (ppc64_elf_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* elfn32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to
elf_tdata's core_lwpid instead of to core_pid.
* plugin.c (bfd_plugin_core_file_pid): New function.
* aout-target.h (MY_core_file_pid): Define.
* aout-tic30.c (MY_core_file_pid, MY_core_file_p): New defines.
* coff-rs6000.c (coff_core_file_pid): New define.
(rs6000coff_vec, pmac_xcoff_vec): Use BFD_JUMP_TABLE_CORE.
* coff64-rs6000.c (coff_core_file_pid): New define.
(rs6000coff64_vec): Use BFD_JUMP_TABLE_CORE.
(xcoff64_core_file_pid): New define.
(aix5coff64_vec): Use BFD_JUMP_TABLE_CORE.
* mach-o-target.c (bfd_mach_o_core_file_pid): New define.
* aix386-core.c (aix386_core_file_pid): New define.
* hppabsd-core.c (hppabsd_core_core_file_pid): New define.
* hpux-core.c (hpux_core_core_file_pid): New define.
* irix-core.c (irix_core_core_file_pid): New define.
* lynx-core.c (lynx_core_file_pid): New define.
* osf-core.c (osf_core_core_file_pid): New define.
* ptrace-core.c (ptrace_unix_core_file_pid): New define.
* sco5-core.c (sco5_core_file_pid): New define.
* xcoff-target.h (coff_core_file_pid): New define.
* netbsd-core.c (netbsd_core_core_file_pid): New define.
2010-08-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11913
* elf32-i386.c (elf_i386_finish_dynamic_sections): Check if
.got.plt section is discarded.
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Likewise.
2010-08-13 Nathan Sidwell <nathan@codesourcery.com>
* elf32-m69k.c (elf32_m68k_print_private_bfd_data): Detect EMAC_B
variant.
2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/11909
* Makefile.am (coff-tic4x.lo): New. Disable -Werror.
(coff-tic54x.lo): Likewise.
* Makefile.in: Regenerated.
2010-08-12 Todd Veldhuizen <todd.veldhuizen@logicblox.com>
PR ld/11843
* elflink.c (compute_bucket_count): Avoid futile long searches for
the best bucket size.
2010-08-09 Richard Henderson <rth@redhat.com>
PR ld/11891
* elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Disallow relaxing
to tlshi/lo until pos0 and pos1 are adjacent. Use the destination
register from the tldgd insn.
2010-08-09 Catherine Moore <clm@codesourcery.com>
* elfxx-mips.c (mips_elf_perform_relocation): Improve
interlinking error message.
2010-08-06 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ha_reloc_match): Allow matches to other than r2.
(ppc64_elf_relocate_section): Nop out high part insn of large toc
code sequence when the high part of offset is zero.
2010-08-04 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_build_fixups): Write the EICP.
(alpha_vms_bfd_final_link): Explicitly forbid relocatable links.
Clear the SEC_RELOC flag.
2010-08-04 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_create_eisd_for_section): Make writable
sections with relocs.
(alpha_vms_add_fixup_lp): Set SEC_RELOC flag.
(alpha_vms_add_fixup_ca): Ditto.
(alpha_vms_add_fixup_qr): Ditto.
Add comments.
2010-08-04 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_create_eisd_for_section): Do not make
CODE sections writable.
2010-08-04 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_add_lw_fixup): Renamed to ...
(alpha_vms_add_fixup_lr): ... this for consistency.
(alpha_vms_add_qw_fixup): Removed.
Fix some comments.
(vms_get_symbol_info): Adjust type for unknown sections.
2010-08-04 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Use the canonical absolute
section for any absolute section. Remove some debugging code.
2010-08-03 DJ Delorie <dj@redhat.com>
* elf32-m32c.c (ELF_MAXPAGESIZE): Change page size to 256 bytes.
2010-08-03 Tristan Gingold <gingold@adacore.com>
* vms-misc.c (vms_convert_to_var): Make it static.
(_bfd_vms_convert_to_var_unix_filename): Make it public.
2010-08-03 Tristan Gingold <gingold@adacore.com>
* makefile.vms (OBJS): Update list.
2010-08-03 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Do not set SEC_HAS_CONTENTS
nor SEC_RELOC for empty sections.
2010-08-03 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (evax_section_flags): Fix flags for absolute
section. Remove useless parenthesis.
2010-08-03 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (vms_lib_bread_raw): Change type of BUF argument.
(vms_lib_bread, vms_lib_bopen): Adjust.
2010-08-02 Alan Modra <amodra@gmail.com>
PR 11866
* elf.c (assign_file_positions_for_load_sections): Use p_vaddr to
calculate off_adjust rather than first section vma.
2010-07-30 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (compute_bucket_count): Add ATTRIBUTE_UNUSED to info.
2010-07-30 Anthony Green <green@moxielogic.com>
* config.bfd (targ_cpu): Add moxie-*-rtems support.
2010-07-29 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_edit_toc): Always adjust local syms in
.toc section, even when none are used in relocs.
2010-07-27 Maciej W. Rozycki <macro@codesourcery.com>
* elfxx-mips.h: Include "elf/mips.h".
(gprel16_reloc_p): New static inline function.
* elfxx-mips.c (_bfd_mips_elf_check_relocs)
[R_MIPS16_GOT16, R_MIPS_GOT16, R_MIPS_GOT_HI16, R_MIPS_GOT_LO16]:
Use got16_reloc_p.
(_bfd_mips_elf_relocate_section)[bfd_reloc_overflow]: Use
gprel16_reloc_p.
* elf32-mips.c (mips_info_to_howto_rel): Likewise.
* elfn32-mips.c (mips_info_to_howto_rel): Likewise.
2010-07-27 Maciej W. Rozycki <macro@codesourcery.com>
* elf64-mips.c (mips_elf64_howto_table_rela)
[R_MIPS_TLS_DTPMOD64]: Clear partial_inplace.
[R_MIPS_TLS_DTPREL64, R_MIPS_TLS_GD, R_MIPS_TLS_LDM]: Likewise.
[R_MIPS_TLS_DTPREL_HI16, R_MIPS_TLS_DTPREL_LO16]: Likewise.
[R_MIPS_TLS_GOTTPREL, R_MIPS_TLS_TPREL64]: Likewise.
[R_MIPS_TLS_TPREL_HI16, R_MIPS_TLS_TPREL_LO16]: Likewise.
* elfn32-mips.c (elf_mips_howto_table_rela)
[R_MIPS_TLS_DTPMOD32]: Likewise.
[R_MIPS_TLS_DTPREL32, R_MIPS_TLS_GD, R_MIPS_TLS_LDM]: Likewise.
[R_MIPS_TLS_DTPREL_HI16, R_MIPS_TLS_DTPREL_LO16]: Likewise.
[R_MIPS_TLS_GOTTPREL, R_MIPS_TLS_TPREL32]: Likewise.
[R_MIPS_TLS_TPREL_HI16, R_MIPS_TLS_TPREL_LO16]: Likewise.
2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
Ina Pandit <ina.pandit@kpitcummins.com>
* archures.c (DESCRIPTION): Define bfd_mach_v850e2 and
bfd_mach_v850e2v3.
* reloc.c (bfd_architecture): Define bfd_mach_v850e2 and
bfd_mach_v850e2v3.
(BFD_RELOC_V850_16_PCREL, BFD_RELOC_V850_17_PCREL,
BFD_RELOC_V850_22_PCREL, BFD_RELOC_V850_23,
BFD_RELOC_V850_32_PCREL, BFD_RELOC_V850_32_ABS,
BFD_RELOC_V850_16_SPLIT_OFFSET, BFD_RELOC_V850_16_S1,
BFD_RELOC_V850_LO16_SPLIT_OFFSET, BFD_RELOC_V850_SDA_15_16_OFFSET,
BFD_RELOC_V850_ZDA_16_16_OFFSET, BFD_RELOC_V850_CALLT_15_16_OFFSET,
BFD_RELOC_V850_32_GOTPCREL, BFD_RELOC_V850_16_GOT,
BFD_RELOC_V850_32_GOT, BFD_RELOC_V850_22_PLT_PCREL,
BFD_RELOC_V850_32_PLT_PCREL, BFD_RELOC_V850_COPY,
BFD_RELOC_V850_GLOB_DAT, BFD_RELOC_V850_JMP_SLOT,
BFD_RELOC_V850_RELATIVE, BFD_RELOC_V850_16_GOTOFF,
BFD_RELOC_V850_32_GOTOFF, BFD_RELOC_V850_CODE,
BFD_RELOC_V850_DATA): New relocations for V850 target.
* config.bfd: Match all v850 targets.
* cpu-v850.c (arch_info_struct): Define V850e2 and V850e2v3.
* elf32-v850.c (v850_elf_check_relocs): Check the newly added
relocations.
(v850_elf_perform_relocation ): Update the newly added
relocations.
(v850_elf_howto_t): Update the specifications of added
relocations.
(v850_elf_reloc_map): Update the relocation mappings.
(v850_elf_final_link_relocate): Maps added relocation into the
appropriate howto structure.
(v850_elf_object_p): Add support for V850E2 and V850E2V3.
(v850_elf_final_write_processing): Likewise.
(v850_elf_merge_private_bfd_data): Likewise.
(v850_elf_print_private_bfd_data): Likewise.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
2010-07-23 Alan Modra <amodra@gmail.com>
* archive.c (_bfd_archive_bsd44_construct_extended_name_table):
Correct format specifier.
2010-07-22 Alan Modra <amodra@gmail.com>
* ecoff.c: Don't include aout/ranlib.h.
(_bfd_ecoff_slurp_armap): Use correct struct for ardata->symdefs.
(_bfd_ecoff_write_armap): Output ar_date and ar_size using
_bfd_ar_spacepad.
2010-07-22 Alan Modra <amodra@gmail.com>
* aoutx.h (some_aout_object_p): Don't set EXEC_P for files with
relocs.
2010-07-20 Alan Modra <amodra@gmail.com>
* elf.c (assign_file_positions_for_load_sections): Check that
zero size sections are allocated in segments too.
(assign_file_positions_for_non_load_sections): Warn if zero
size alloc sections are found here.
(copy_elf_program_header): Don't drop zero size sections from
segment map.
(copy_private_bfd_data): Check for changes in zero size sections.
2010-07-17 Alan Modra <amodra@gmail.com>
* elf.c (_bfd_elf_map_sections_to_segments): Force new segment
for sections with overlapping LMAs.
(assign_file_positions_for_load_sections): Catch overlap for
sections that wrap around the address space. Replace a
warning that duplicates ld's --check-sections error with a
warning that lma has been adjusted for overlapping sections.
2010-07-14 Cary Coutant <ccoutant@google.com>
PR ld/11817
* dwarf2.c (read_section): Revert patch for compressed debug sections.
(find_line): Likewise.
(read_and_uncompress_section): Remove.
2010-07-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812
* elf32-i386.c (elf_i386_size_dynamic_sections): Don't
allocate .got.plt section if there are no GOT nor PLT
entries.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Likewise.
2010-07-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11791
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Support
garbage collection against STT_GNU_IFUNC symbols.
* elf32-i386.c (elf_i386_get_local_sym_hash): Don't set
elf.plt.offset/elf.got.offset to -1.
(elf_i386_tls_transition): Skip TLS transition for functions.
(elf_i386_gc_sweep_hook): Support STT_GNU_IFUNC symbols.
* elf64-x86-64.c (elf64_x86_64_get_local_sym_hash): Don't set
elf.plt.offset/elf.got.offset to -1.
(elf64_x86_64_tls_transition): Skip TLS transition for functions.
(elf64_x86_64_gc_sweep_hook): Support STT_GNU_IFUNC symbols.
2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Re-indent.
(elf_i386_relocate_section): Likewise.
2010-07-06 H.J. Lu <hongjiu.lu@intel.com>
* dwarf2.c (add_line_info): Initialize prev_line.
2010-07-06 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_relax_section): Insert branch around
trampolines only for .init and .fini sections.
2010-07-05 Alan Modra <amodra@gmail.com>
* elf32-ppc.c: Formatting.
(ppc_elf_finish_dynamic_sections): Don't make plt_entry var static.
2010-07-03 Cary Coutant <ccoutant@google.com>
* compress.c (bfd_uncompress_section_contents): Add ATTRIBUTE_UNUSED.
* dwarf2.c (read_and_uncompress_section): New function.
(read_section): Call it.
(find_line): Likewise.
2010-07-01 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_edit_toc): Use SYMBOL_CALLS_LOCAL rather
than SYMBOL_REFERENCES_LOCAL.
(ppc64_elf_relocate_section): Likewise.
2010-07-01 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_edit_toc): Keep toc entries for ifuncs.
2010-06-29 Alan Modra <amodra@gmail.com>
* cpu-maxq.c: Delete file.
* coff-maxq.c: Delete file.
* Makefile.am: Remove references to maxq.
* archures.c: Likewise.
* coffcode.h: Likewise.
* configure.in: Likewise.
* targets.c: Likewise.
* config.bfd: Move maxq from obsolete to removed.
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
* configure: Regenerate.
* libbfd.h: Regenerate.
* po/SRC-POTFILES.in: Regenerate.
2010-06-28 Alan Modra <amodra@gmail.com>
* compress.c (bfd_uncompress_section_contents): Use ATTRIBUTE_UNUSED
to silence gcc warning.
2010-06-27 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (get_tls_mask): Don't segfault on NULL elf_section_data.
(group_sections): Likewise.
2010-06-27 Alan Modra <amodra@gmail.com>
* bout.c (aligncode): Delete set but unused variables.
* coff-mcore.c (coff_mcore_relocate_section): Likewise.
* coff-ppc.c (ppc_record_toc_entry): Likewise.
(coff_ppc_relocate_section): Likewise.
* coff-rs6000.c (xcoff_complain_overflow_bitfield_func): Likewise.
* elf-m10200.c (mn10200_elf_relax_delete_bytes): Likewise.
* elf-m10300.c (mn10300_elf_final_link_relocate): Likewise.
(mn10300_elf_relax_section): Likewise.
* elf32-arm.c (arm_build_one_stub, arm_size_one_stub): Likewise.
(record_vfp11_erratum_veneer): Likewise.
(bfd_elf32_arm_vfp11_erratum_scan): Likewise.
(elf32_arm_final_link_relocate): Likewise.
(elf32_arm_check_relocs, arm_map_one_stub): Likewise.
* elf32-avr.c (elf32_avr_relax_delete_bytes): Likewise.
(elf32_avr_relax_section): Likewise.
(avr_mark_stub_not_to_be_necessary): Likewise.
* elf32-bfin.c (_bfin_create_got_section): Likewise.
* elf32-cr16.c (cr16_elf_final_link_relocate): Likewise.
(elf32_cr16_relax_delete_bytes): Likewise.
* elf32-cr16c.c (cr16c_elf_final_link_relocate): Likewise.
* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
* elf32-crx.c (elf32_crx_relax_delete_bytes): Likewise.
* elf32-h8300.c (elf32_h8_relax_section): Likewise.
(elf32_h8_relax_delete_bytes): Likewise.
* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
* elf32-i370.c (i370_elf_check_relocs): Likewise.
(elf_relocate_section): Likewise.
* elf32-ip2k.c (adjust_all_relocations): Likewise.
(ip2k_elf_relax_section): Likewise.
* elf32-lm32.c (lm32_elf_relocate_section): Likewise.
(lm32_elf_check_relocs): Likewise.
(lm32_elf_finish_dynamic_sections): Likewise.
(lm32_elf_finish_dynamic_symbol): Likewise.
* elf32-m32c.c (m32c_offset_for_reloc): Likewise.
(m32c_elf_relax_delete_bytes): Likewise.
* elf32-m32r.c (m32r_elf_finish_dynamic_symbol): Likewise.
(m32r_elf_finish_dynamic_sections): Likewise.
(m32r_elf_check_relocs, m32r_elf_fake_sections): Likewise.
* elf32-m68hc11.c (m68hc11_elf_relax_section): Likewise.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
* elf32-microblaze.c (microblaze_elf_relocate_section): Likewise.
(microblaze_elf_check_relocs): Likewise.
(microblaze_elf_finish_dynamic_symbol): Likewise.
* elf32-msp430.c (msp430_elf_relax_delete_bytes): Likewise.
* elf32-ppc.c (ppc_elf_tls_optimize): Likewise.
* elf32-rx.c (rx_elf_relocate_section): Likewise.
(elf32_rx_relax_delete_bytes, rx_offset_for_reloc): Likewise.
(elf32_rx_relax_section): Likewise.
* elf32-score.c (score_elf_got_offset_from_index): Likewise.
(score_elf_final_link_relocate): Likewise.
(s3_bfd_score_elf_relocate_section): Likewise.
* elf32-score7.c (score_elf_got_offset_from_index): Likewise.
(s7_bfd_score_elf_relocate_section): Likewise.
* elf32-sh.c (sh_elf_check_relocs): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf32-v850.c (v850_elf_check_relocs): Likewise.
(find_remembered_hi16s_reloc): Likewise.
* elf32-vax.c (elf32_vax_merge_private_bfd_data): Likewise.
(elf_vax_relocate_section): Likewise.
* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
* elf32-xtensa.c (xlate_offset_with_removed_text): Likewise.
(move_literal): Likewise.
* elf64-hppa.c (elf64_hppa_section_from_shdr): Likewise.
(elf64_hppa_check_relocs): Likewise.
(elf64_hppa_finish_dynamic_symbol): Likewise.
(elf64_hppa_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_reloc, mmix_elf_relax_section): Likewise.
* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
(ppc64_elf_edit_opd, ppc64_elf_edit_toc): Likewise.
* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Likewise.
(elfNN_vms_section_from_shdr): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
(_bfd_sparc_elf_relocate_section): Likewise.
* hp300hpux.c (slurp_symbol_table): Likewise.
* i386lynx.c (swap_std_reloc_out, swap_std_reloc_in): Likewise.
* mach-o.c (bfd_mach_o_write_thread): Likewise.
* mmo.c (mmo_scan, mmo_write_symbols_and_terminator): Likewise.
* nlm32-sparc.c (nlm_sparc_read_reloc): Likewise.
* pdp11.c (pdp11_aout_link_input_section): Likewise.
(aout_link_input_section, aout_link_input_bfd): Likewise.
* pe-mips.c (mips_swap_reloc_out): Likewise.
(coff_pe_mips_relocate_section): Likewise.
* som.c (som_bfd_ar_write_symbol_stuff): Likewise.
* vms-alpha.c (_bfd_vms_slurp_egsd): Likewise.
* xsym.c (bfd_sym_fetch_type_information_table_ent): Likewise.
* coff-i860.c (i860_reloc_processing): Avoid set but unused warning.
* coffcode.h (coff_compute_section_file_positions): Likewise.
(coff_slurp_reloc_table): Likewise.
* cpu-arm.c (arm_check_note): Likewise.
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-bfin.c (elf32_bfin_merge_private_bfd_data): Likewise.
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-moxie.c (moxie_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-sh64.c (_bfd_sh_align_load_span): Likewise.
* ieee.c (parse_expression): Likewise.
(ieee_slurp_external_symbols, drop_int): Likewise.
* peXXigen.c (pe_print_pdata): Likewise.
* versados.c (process_esd): Likewise.
2010-06-25 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_write_egsd): Check absolute section with
its flags. Create an absolute section if needed.
2010-06-25 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_write_egsd): Set target_index field of
sections. Mark .vmsdebug section as SEC_DEBUGGING. Do not create
dummy psect anymore. Adjust.
(_bfd_vms_write_eeom): Adjust (use target_index instead of index)
(_bfd_vms_write_etir): Ditto.
(start_etir_or_etbt_record): Test for SEC_DEBUGGING instead of
section name. Adjust.
2010-06-25 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_write_exec): Set linktime field.
2010-06-25 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (toc_skip_enum): Define.
(ppc64_elf_edit_toc): Use two low bits of skip array as markers.
Optimize largetoc sequences.
(adjust_toc_syms): Update for skip array change.
(ppc64_elf_relocate_section): Handle R_PPC64_LO_DS_OPT.
2010-06-25 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (is_static_defined): New function.
(get_tls_mask, ppc_type_of_stub): Use it here.
(ppc64_elf_edit_opd): Ensure we only attempt to edit ppc64 input.
(ppc64_elf_tls_setup): Typo fix.
(adjust_toc_syms): Correctly handle symbols defined past the end
of the toc. Move syms on removed entries to next entry rather
than to start of toc.
(ppc64_elf_edit_toc): Likewise. Ensure we only attempt to
edit ppc64 input. Allocate one extra word in skip array.
Honour info->keep_memory when reading relocs if we can.
Adjust toc relocs after adjusting symbols.
2010-06-23 Nathan Sidwell <nathan@codesourcery.com>
* archive64.c (bfd_elf64_archive_write_armap): Fix buffer overrun
when scaning map.
2010-06-17 Tristan Gingold <gingold@adacore.com>
* Makefile.am (BFD32_BACKENDS_CFILES): Move vms-alpha.c to ...
(BFD64_BACKENDS_CFILES): ... here.
(BFD32_BACKENDS): Move vms-alpha.lo to ...
(BFD64_BACKENDS): ... here.
* Makefile.in: Regenerate.
2010-06-15 Joseph Myers <joseph@codesourcery.com>
* elf-bfd.h (LEAST_KNOWN_OBJ_ATTRIBUTE): Decrease to 2.
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type,
elf32_tic6x_merge_arch_attributes, elf32_tic6x_merge_attributes,
elf32_tic6x_merge_private_bfd_data): New.
(bfd_elf32_bfd_merge_private_bfd_data,
elf_backend_obj_attrs_arg_type, elf_backend_obj_attrs_section,
elf_backend_obj_attrs_section_type, elf_backend_obj_attrs_vendor):
Define.
* elf32-tic6x.h (elf32_tic6x_merge_arch_attributes): Declare.
2010-06-15 Joseph Myers <joseph@codesourcery.com>
* elf-bfd.h (LEAST_KNOWN_OBJ_ATTRIBUTE): Define.
(struct elf_backend_data): Update comment on obj_attrs_order.
* elf-attrs.c (vendor_obj_attr_size, vendor_set_obj_attr_contents,
_bfd_elf_copy_obj_attributes): Use LEAST_KNOWN_OBJ_ATTRIBUTE
instead of hardcoded 4.
* elf32-arm.c (elf32_arm_obj_attrs_order): Use
LEAST_KNOWN_OBJ_ATTRIBUTE and LEAST_KNOWN_OBJ_ATTRIBUTE + 1
instead of hardcoded 4 and 5.
(elf32_arm_merge_eabi_attributes): Use LEAST_KNOWN_OBJ_ATTRIBUTE
instead of hardcoded 4.
2010-06-14 Kevin Buettner <kevinb@redhat.com>
* elf32-h8300.c (elf_symbol_leading_char): Define.
2010-06-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* vms-alpha.c (_bfd_vms_write_egsd): Make sname const.
2010-06-11 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Always set vma of absolute
sections to 0.
2010-06-11 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (evax_bfd_print_etir): Handle ETIR__C_STO_GBL_LW.
2010-06-11 Tristan Gingold <gingold@adacore.com>
* vms-misc.c (_bfd_vms_output_counted): Make VALUE argument const.
Adjust cast.
(_bfd_vms_output_dump): Make DATA argument const, adjust cast.
* vms.h (_bfd_vms_output_counted, _bfd_vms_output_dump): Adjust.
* vms-alpha.c (evax_section_flags): Make it const.
(vms_secflag_by_name): Remove unused ABFD argument.
Make SECTION_FLAGS and NAME arguments const. Clarify comment.
(vms_esecflag_by_name): Make SECTION_FLAGS and NAME arguments const.
(_bfd_vms_slurp_egsd): Adjust call to vms_secflag_by_name.
(_bfd_vms_write_egsd): Remove useless cast.
2010-06-10 Tristan Gingold <gingold@adacore.com>
* config.bfd: Remove #if/#endif so that som can be compiled on any
host.
* targets.c (_bfd_target_vector): Remove #if/#endif so that som
can be used on any host.
2010-06-10 Tristan Gingold <gingold@adacore.com>
* som.c: Can now be compiled on any host.
Include bfd headers instead of system one.
(som_compute_checksum): Parameter is now a pointer to a
som_external_header structure. Adjust.
(struct section_to_type): Field section is now const.
(R_DLT_REL, R_AUX_UNWIND, R_SEC_STMT): Removed conditional
definition.
(R_LONG_PCREL_MODE, R_N0SEL, R_N1SEL, R_LINETAB): Ditto.
(R_LINETAB_ESC, R_LTP_OVERRIDE, R_COMMENT): Ditto.
(som_swap_clock_in, som_swap_clock_out): New functions.
(som_swap_header_in, som_swap_header_out): Likewise.
(som_swap_space_dictionary_in): Likewise.
(som_swap_space_dictionary_out): Likewise.
(som_swap_subspace_dictionary_in): Likewise.
(som_swap_subspace_dictionary_record_out): Likewise.
(som_swap_aux_id_in, som_swap_aux_id_out): Likewise.
(som_swap_string_auxhdr_out): Likewise.
(som_swap_compilation_unit_out): Likewise.
(som_swap_exec_auxhdr_in): Likewise.
(som_swap_exec_auxhdr_out): Likewise.
(som_swap_lst_header_in): Likewise.
(som_object_setup): Adjust parameter type using bfd types.
(setup_sections): Likewise. Ditto for object file types.
Use intermediate variables for external representation and use the
swap functions to convert.
(som_object_p): Ditto. Remove #ifdef/#endif on always defined
macros.
(som_prep_headers): Likewise.
(som_write_symbol_strings): Likewise.
(som_begin_writing): Likewise.
(som_finish_writing): Likewise.
(som_build_and_write_symbol_table): Likewise.
(bfd_section_from_som_symbol): Likewise.
(som_slurp_symbol_table): Likewise.
(som_bfd_print_private_bfd_data): Likewise.
(bfd_som_attach_aux_hdr): Likewise. Clear the padding.
(bfd_som_attach_compilation_unit): Likewise.
(som_bfd_count_ar_symbols): Likewise.
(som_bfd_fill_in_ar_symbols): Likewise.
(som_slurp_armap): Likewise.
(som_bfd_ar_write_symbol_stuff): Likewise.
(som_write_armap): Likewise. Use _bfd_ar_spacepad instead of
sprintf to write header fields.
* som.h: Include bfd headers instead of system one.
(FILE_HDR_SIZE, AUX_HDR_SIZE): Removed.
(struct somdata): Use bfd structures instead of system ones.
(struct som_section_data_struct): Likewise.
(struct som_subspace_dictionary_record): Removed (now in
include/som/internal.h)
2010-06-10 Tristan Gingold <gingold@adacore.com>
* targets.c (bfd_target_list): Remove hp/ux compiler work-around
as bfd requires an ANSI-C compiler.
2010-06-09 Tristan Gingold <gingold@adacore.com>
* bfdio.c (bfd_bread): Fix the code to prevent reading past the
end of archive members.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* som.c (som_bfd_free_cached_info): Do not free relocations as
they were allocated with bfd_zalloc.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_write_archive_contents): Increment
for the first block.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_ia64_mkarchive): New function.
* libbfd-in.h (_bfd_vms_lib_ia64_mkarchive): Declare.
* libbfd.h: Regenerate.
* elfxx-ia64.c (bfd_elfNN_write_archive_contents): Redefine for VMS.
(bfd_elfNN_mkarchive): Ditto.
2010-06-02 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_bfd_final_link): Fix 64bit constant.
2010-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
2010-06-01 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (struct vms_private_data_struct): Add
transfer_address field. Remove unused dst_info field.
(alpha_vms_write_exec): Use transfer_address.
(_bfd_vms_write_egsd): Add a comment about LIB$INITIALIZE.
(alpha_vms_bfd_final_link): Set transfer_address.
2010-05-31 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (credat_lo, credat_hi): New fields.
(vms_read_block): Adjust comments.
(vms_write_block): New function.
(_bfd_vms_lib_archive_p): Decode majorid once. Replace some
hard-coded values with constants. Set credat_lo and credat_hi.
(_bfd_vms_lib_mkarchive): Add argument kind.
Set ver, mhd_size and type according to kind.
(_bfd_vms_lib_alpha_mkarchive): New function.
(struct lib_index): Renamed from struct vms_index
(lib_index_cmp): Renamed from vms_index_cmp. Adjusted.
(get_idxlen): Type of idx argument adjusted. Add is_elfidx
argument and handle it.
(vms_write_index): Adjust argument idx. Handle elf indexes.
(_bfd_vms_lib_build_map): Adjust type of arguments modules and res.
(_bfd_vms_lib_write_archive_contents): Add is_elfidx variable and
use it. Handle elf indexes. Set credat.
* libbfd-in.h (_bfd_vms_lib_mkarchive): Renamed to ...
(_bfd_vms_lib_alpha_mkarchive): ... this.
* libbfd.h: Regenerated.
* vms-alpha.c (vms_alpha_vec): Adjust after previous renaming.
2010-05-28 Sterling Augustine <sterling@tensilica.com>
* elf32-xtensa.c (elf_xtensa_relocate_section): Add a large amount
of code to change the bits in the instructions to match the changes
in the relocations. Declare dest_addr and sym_sec to help.
2010-05-28 Jan Kratochvil <jan.kratochvil@redhat.com>
Workaround GCC PR middle-end/4210.
* vms-misc.c (vms_time_t_to_vms_time): Use ternary operator for val[2]
and val[3].
2010-05-27 Tristan Gingold <gingold@adacore.com>
* vms-misc.c: Define __NEW_STARLET. Remove trailing spaces.
(VMS_TIME_FACTOR, VMS_TIME_OFFSET): New macros.
(vms_time_to_time_t): Use them instead of local const.
(vms_time_t_to_vms_time): New function.
(vms_get_time): Likewise.
(vms_raw_get_time): Likewise.
* vms.h (vms_time_t_to_vms_time): New declaration.
(vms_get_time): Likewise.
(vms_raw_get_time): Likewise.
2010-05-26 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c: Update comments.
(alpha_vms_write_exec): Set lnkflags. Write the GST.
(alpha_vms_link_output_symbol): New function.
(alpha_vms_bfd_final_link): Generate the VMS symbol table.
Set dst_section private field.
(alpha_vms_bfd_final_link): Remove code that set dst_section.
2010-05-26 Tristan Gingold <gingold@adacore.com>
* bfdio.c: Declare and define _bfd_memory_iovec.
(bfd_bread): Move code for BFD_IN_MEMORY...
(bfd_bwrite): ... Ditto ...
(bfd_tell): ... Ditto ...
(bfd_flush): ... Ditto ...
(bfd_stat): ... Ditto ...
(bfd_seek): ... Ditto ...
(bfd_get_size): ... Ditto ...
(bfd_mmap): ... Ditto ...
(memory_bread): ... to these new functions.
(memory_bwrite): Ditto.
(memory_btell): Ditto.
(memory_bseek): Ditto.
(memory_bflush): Ditto.
(memory_bstat): Ditto.
(memory_bmmap): Ditto.
(memory_bclose): New function.
* peicode.h (pe_ILF_build_a_bfd): Use BFD_IN_MEMORY.
* xcofflink.c (bfd_xcoff_link_generate_rtinit): Ditto.
* opncls.c (bfd_close): Do not handle BFD_IN_MEMORY case.
(bfd_make_writable): Use _bfd_memory_iovec.
* elfcode.h (bfd_from_remote_memory): Use _bfd_memory_iovec.
* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Use
_bfd_memory_iovec.
(alpha_ecoff_openr_next_archived_file): Use proxy_origin
instead of origin.
* libbfd.h: Regenerate.
2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
* config.bfd (sh-*-uclinux* | sh[12]-*-uclinux*): Add
bfd_elf32_shl_vec, and FDPIC vectors to targ_selvecs.
* configure.in: Handle FDPIC vectors.
* elf32-sh-relocs.h: Add FDPIC and movi20 relocations.
* elf32-sh.c (DEFAULT_STACK_SIZE): Define.
(SYMBOL_FUNCDESC_LOCAL): Define. Use it instead of
SYMBOL_REFERENCES_LOCAL for function descriptors.
(fdpic_object_p): New.
(sh_reloc_map): Add FDPIC and movi20 relocations.
(sh_elf_info_to_howto, sh_elf_relocate_section): Handle new invalid
range.
(struct elf_sh_plt_info): Add got20 and short_plt. Update all
definitions.
(FDPIC_PLT_ENTRY_SIZE, FDPIC_PLT_LAZY_OFFSET): Define.
(fdpic_sh_plt_entry_be, fdpic_sh_plt_entry_le, fdpic_sh_plts): New.
(FDPIC_SH2A_PLT_ENTRY_SIZE, FDPIC_SH2A_PLT_LAZY_OFFSET): Define.
(fdpic_sh2a_plt_entry_be, fdpic_sh2a_plt_entry_le)
(fdpic_sh2a_short_plt_be, fdpic_sh2a_short_plt_le, fdpic_sh2a_plts):
New.
(get_plt_info): Handle FDPIC.
(MAX_SHORT_PLT): Define.
(get_plt_index, get_plt_offset): Handle short_plt.
(union gotref): New.
(struct elf_sh_link_hash_entry): Add funcdesc, rename tls_type to
got_type and adjust all uses. Add GOT_FUNCDESC.
(struct sh_elf_obj_tdata): Add local_funcdesc. Rename
local_got_tls_type to local_got_type.
(sh_elf_local_got_type): Renamed from sh_elf_local_got_tls_type. All
users changed.
(sh_elf_local_funcdesc): Define.
(struct elf_sh_link_hash_table): Add sfuncdesc, srelfuncdesc, fdpic_p,
and srofixup.
(sh_elf_link_hash_newfunc): Initialize new fields.
(sh_elf_link_hash_table_create): Set fdpic_p.
(sh_elf_omit_section_dynsym): New.
(create_got_section): Create .got.funcdesc, .rela.got.funcdesc
and .rofixup.
(allocate_dynrelocs): Allocate local function descriptors and space
for R_SH_FUNCDESC-related relocations, and for rofixups.
Handle GOT_FUNCDESC. Create fixups. Handle GOT entries which
require function descriptors.
(sh_elf_always_size_sections): Handle PT_GNU_STACK and __stacksize.
(sh_elf_modify_program_headers): New.
(sh_elf_size_dynamic_sections): Allocate function descriptors for
local symbols. Allocate .got.funcdesc contents. Allocate rofixups.
Handle local GOT entries of type GOT_FUNCDESC. Create fixups for
local GOT entries. Ensure that FDPIC libraries always have a PLTGOT
entry in the .dynamic section.
(sh_elf_add_dyn_reloc, sh_elf_got_offset, sh_elf_initialize_funcdesc)
(sh_elf_add_rofixup, sh_elf_osec_to_segment)
(sh_elf_osec_readonly_p, install_movi20_field): New functions.
(sh_elf_relocate_section): Handle new relocations, R_SH_FUNCDESC,
R_SH_GOTFUNCDESC and R_SH_GOTOFFFUNCDESC. Use sh_elf_got_offset
and .got.plt throughout to find _GLOBAL_OFFSET_TABLE_. Add rofixup
read-only section warnings. Handle undefined weak symbols. Generate
fixups for R_SH_DIR32 and GOT entries. Check for cross-segment
relocations and clear EF_SH_PIC. Handle 20-bit relocations.
Always generate R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_gc_sweep_hook): Handle R_SH_FUNCDESC, R_SH_GOTOFF20,
R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20, and R_SH_GOTOFFFUNCDESC.
Handle 20-bit relocations.
(sh_elf_copy_indirect_symbol): Copy function descriptor reference
counts.
(sh_elf_check_relocs): Handle new relocations. Make symbols
dynamic for FDPIC relocs. Account for rofixups. Error for FDPIC
symbol mismatches. Allocate a GOT for R_SH_DIR32. Allocate fixups
for R_SH_DIR32.
(sh_elf_copy_private_data): Copy PT_GNU_STACK size.
(sh_elf_merge_private_data): Copy initial flags. Do not clobber
non-mach flags. Set EF_SH_PIC for FDPIC. Reject FDPIC mismatches.
(sh_elf_finish_dynamic_symbol): Do not handle got_funcdesc entries
here. Rename sgot to sgotplt and srel to srelplt. Handle short_plt,
FDPIC descriptors, and got20. Create R_SH_FUNCDESC_VALUE for FDPIC.
Use install_movi20_field. Rename srel to srelgot. Always generate
R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_finish_dynamic_sections): Fill in the GOT pointer in rofixup.
Do not fill in reserved GOT entries for FDPIC. Correct DT_PLTGOT.
Rename sgot to sgotplt. Assert that the right number of rofixups
and dynamic relocations were allocated.
(sh_elf_use_relative_eh_frame, sh_elf_encode_eh_address): New.
(elf_backend_omit_section_dynsym): Use sh_elf_omit_section_dynsym.
(elf_backend_can_make_relative_eh_frame)
(elf_backend_can_make_lsda_relative_eh_frame)
(elf_backend_encode_eh_address): Define.
(TARGET_BIG_SYM, TARGET_BIG_NAME, TARGET_LITTLE_SYM)
(TARGET_LITTLE_NAME, elf_backend_modify_program_headers, elf32_bed):
Redefine for FDPIC vector.
* reloc.c: Add SH FDPIC and movi20 relocations.
* targets.c (_bfd_target_vector): Add FDPIC vectors.
* configure, bfd-in2.h, libbfd.h: Regenerated.
2010-05-25 Jay Krell <jay.krell@cornell.edu>
PR ld/11624
* archive.c (_bfd_calloc_wrapper): New function.
(_bfd_add_bfd_to_archive_cache): Use it.
* configure.in: Add alpha*-*-*vms* to list of natives.
* configure: Regenerate.
* vms-misc.c: Define globalref if necessary.
(vms_convert_to_var_unix_filename): Rename to
_bfd_vms_convert_to_var_unix_filename and export.
* vms.h: Add prototype for _bfd_vms_convert_to_var_unix_filename.
* vms-alpha.c (vms_close_and_cleanup): Update invocation of
vms_convert_to_var_unix_filename.
2010-05-24 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (add_symbol_entry): New function extrated from ...
(add_symbol): ... adjusted.
2010-05-24 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Fix indentation.
(alpha_vms_write_exec): Add a comment.
(_bfd_vms_write_egsd): Ditto.
(alpha_vms_convert_symbol): Remove a blank line.
2010-05-21 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_eihs): Do not create a bfd section
for the GST.
2010-05-21 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_eisd): Set SEC_HAS_CONTENTS and
SEC_LOAD if isect has data.
(vms_get_symbol_info): Refine the condition for 'T' type.
2010-05-18 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_write_emh): New function.
(_bfd_vms_write_lmn): New function.
(_bfd_vms_write_eeom): Moved.
(hash_string): Likewise.
(_bfd_vms_length_hash_symbol): Likewise.
(_bfd_vms_write_ehdr): Code moved to _bfd_vms_write_emh
and _bfd_vms_write_lmn, and call these functions.
2010-05-18 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (evax_bfd_print_dst): Handle INCR_LINUM_L.
Add details in the messages.
(evax_bfd_print_image): Change message.
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/11600
* elf.c (_bfd_elf_make_section_from_shdr): Handle SHF_EXCLUDE
(elf_fake_sections): Likewise.
* elf32-i370.c (i370_elf_section_from_shdr): Don't handle
SHF_EXCLUDE here.
* elf32-ppc.c (ppc_elf_fake_sections): Likewise.
2010-05-17 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c: Include esgps.h and eidc.h.
(_bfd_vms_slurp_egsd): Ignore SPSC and IDC sub-records.
(evax_bfd_print_egsd_flags): New function, extracted from ...
(evax_bfd_print_egsd): ..., calls evax_bfd_print_egsd_flags. Handles
EGSD__C_SPSC and EGSD__C_IDC.
2010-05-14 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (alpha_vms_object_p): Accept header size of 0.
(_bfd_vms_get_object_record): Handle align byte only in the
foreign case.
2010-05-14 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_ia64_archive_p): New function.
* libbfd-in.h (_bfd_vms_lib_ia64_archive_p): Add prototype.
* libbfd.h: Regenerate.
* configure.in (havevecs): Define HAVE_all_vecs when
--enable-targets=all is set. Use AC_SUBST on it.
(tdefaults): Do not add havevecs.
(bfd_elf64_ia64_vms_vec): Add vms-lib.lo and vms-misc.lo
* configure: Regenerate.
* Makefile.am (HAVEVECS): New variable.
(INCLUDES): Add HAVEVECS.
* Makefile.in: Regenerate.
* elfxx-ia64.c (INCLUDE_IA64_VMS): New macro, defined if vms
target is selected. Add #ifdef/#endif around vms specific code.
(bfd_elfNN_archive_p, bfd_elfNN_archive_slurp_armap,
bfd_elfNN_archive_slurp_extended_name_table,
bfd_elfNN_archive_construct_extended_name_table,
bfd_elfNN_archive_truncate_arname,
bfd_elfNN_archive_write_armap,
bfd_elfNN_archive_read_ar_hdr,
bfd_elfNN_archive_write_ar_hdr,
bfd_elfNN_archive_openr_next_archived_file,
bfd_elfNN_archive_get_elt_at_index,
bfd_elfNN_archive_generic_stat_arch_elt,
bfd_elfNN_archive_update_armap_timestamp): Define to use vms archives.
2010-05-11 Jie Zhang <jie@codesourcery.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
Tag_ABI_HardFP_use correctly.
2010-05-11 Alan Modra <amodra@gmail.com>
* coffcode.h (coff_write_object_contents): Enclose all occurrences
of hasdebug and is_reloc_section in #ifdef COFF_IMAGE_WITH_PE.
2010-05-07 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (struct a8_erratum_reloc): Add hash member. Move
sym_name to improve packing.
(cortex_a8_erratum_scan): Check for PLT entries.
(elf32_arm_size_stubs): Save the target symbol for a8 relocs.
2010-05-07 Tristan Gingold <gingold@adacore.com>
* Makefile.in: Regenerate with automake 1.11.1.
* aclocal.m4: Ditto.
2010-05-05 Nick Clifton <nickc@redhat.com>
* po/es.po: Updated Spanish translation.
2010-05-03 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (vms_lib_bopen): Fix the size threshold to read
selective_search flag.
Add comments.
* vms-alpha.c (alpha_vms_bfd_final_link): Create the DMT section
before output_has_begun is set.
2010-05-03 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c: Add comments.
(struct vms_private_data_struct): Remove image_autoextend field.
(dst_check_allocation): Removed.
(image_write): Remove call to dst_check_allocation.
(vms_slurp_debug): Do not set image_autoextend. Adjust section
size.
(_bfd_vms_slurp_object_records): Remove useless new_type variable.
(alpha_vms_write_exec): Use dst_section to get the dst section.
Write the dmt section.
(evax_bfd_print_image): Also print the dst size in hexa. Fix typo.
(alpha_vms_read_sections_content): Do not set image_autoextend.
(alpha_vms_bfd_final_link): Generate the dst.
2010-05-03 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_archive_p): Adjust for a possible empty
next array.
(vms_lib_dcx): Adjust for the above change.
2010-04-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11542
* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): New.
* elf32-i386.c (elf_i386_relocate_section): Use it.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
2010-04-30 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (vms_read_block): New function.
(vms_traverse_index): Use vms_read_block. Handle long key names.
2010-04-30 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (struct lib_tdata): Field artdata added, fields nbr_syms
and syms removed.
(struct carsym_mem): New structure.
(vms_add_index): New function.
(vms_add_indexes_from_list): New function.
(vms_traverse_index): Parameter carsym changed to carsym_mem.
Code adjusted to handle elfidx.
(vms_lib_read_index): Adjusted for vms_traverse_index changes.
Parameter NBREL is now a pointer.
(_bfd_vms_lib_archive_p): Adjust for above change. Handle ia64
archives.
(_bfd_vms_lib_mkarchive): Adjusted for changes in struct lib_tdata.
(_bfd_vms_lib_find_symbol): Ditto.
(vms_lib_bopen): Fix two typos: return FALSE in case of error,
check MHD id.
(_bfd_vms_lib_get_module): New function.
(_bfd_vms_lib_get_elt_at_index): Rewritten using the above
function.
(_bfd_vms_lib_openr_next_archived_file): Use _bfd_vms_lib_get_module.
(_bfd_vms_lib_generic_stat_arch_elt): Handle ia64 archives.
(vms_write_index): Adjust for structure renamed.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Adjust for
changes of _bfd_vms_lib_find_symbol.
2010-04-28 Kai Tietz <kai.tietz@onevision.com>
* config.bfd: Correct accidential reverted patch
about vax*-*-*vms*.
2010-04-27 Kai Tietz <kai.tietz@onevision.com>
* pe-x86_64.c (TARGET_UNDERSCORE): Set value dependent
to USE_MINGW64_LEADING_UNDERSCORES.
* pei-x86_64.c (TARGET_UNDERSCORE): Likewise.
* config.bfd: Change underscoring default for x64 mingw
to false.
* coffcode.h (coff_write_relocs): Add check that dereferenced
sym_ptr_ptr isn't NULL.
* config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
* configure: Regenerated.
* configure.in: Add option '--enable-leading-mingw64-underscores'
and define config.in variable USE_MINGW64_LEADING_UNDERSCORES.
2010-04-27 Nick Clifton <nickc@redhat.com>
PR binutils/11512
* coffgen.c (coff_find_nearest_line): Incldue the section address
of function name symbols in address comparisons.
2010-04-27 Nick Clifton <nickc@redhat.com>
* po/fr.po: Updated French translation.
2010-04-23 Alan Modra <amodra@gmail.com>
* elf.c: Replace use of ELF_IS_SECTION_IN_SEGMENT and
ELF_IS_SECTION_IN_SEGMENT_FILE with ELF_SECTION_IN_SEGMENT
throughout file.
(assign_file_positions_for_load_sections): Modify section in
segment warning to ignore overlay vmas.
* elf32-spu.c (spu_elf_object_p): Replace use of
ELF_IS_SECTION_IN_SEGMENT_MEMORY with ELF_SECTION_IN_SEGMENT.
2010-04-22 Nick Clifton <nickc@redhat.com>
* po/bfd.pot: Updated by the Translation project.
* po/vi.po: Updated Vietnamese translation.
2010-04-22 Alan Modra <amodra@gmail.com>
* elf.c (assign_file_positions_for_load_sections): Revert 2008-05-29
change. Tidy. Don't error on sections not allocated in segment.
2010-04-15 Andrew Haley <aph@redhat.com>
* bfd-in.h (elf32_arm_fix_exidx_coverage): Add new flag:
merge_exidx_entries.
* bfd-in2.h: Likewise.
* elf32-arm.c (elf32_arm_fix_exidx_coverage): Likewise. Use it to
control merging of exidx entries.
2010-04-20 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.h: New.
* elf-bfd.h (enum elf_target_id): Define TIC6X_ELF_DATA.
* elf32-tic6x.c (struct elf32_tic6x_obj_tdata, elf32_tic6x_tdata,
elf32_tic6x_howto_table_rel, elf32_tic6x_info_to_howto_rel,
elf32_tic6x_set_use_rela_p, elf32_tic6x_mkobject,
elf32_tic6x_new_section_hook, elf32_tic6x_rel_relocation_p,
bfd_elf32_mkobject, bfd_elf32_new_section_hook): New.
(elf32_tic6x_reloc_type_lookup, elf32_tic6x_reloc_name_lookup,
elf32_tic6x_relocate_section): Handle REL relocations.
(elf_info_to_howto_rel): Define to elf32_tic6x_info_to_howto_rel.
2010-04-20 Jakub Jelinek <jakub@redhat.com>
* dwarf2.c (find_abstract_instance_name, scan_unit_for_symbols): Treat
DW_AT_linkage_name the same as DW_AT_MIPS_linkage_name.
2010-04-19 Nick Clifton <nickc@redhat.com>
* archive64.c (bfd_elf64_archive_slurp_armap): Remove unused
arhdrpos variable.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Add unused
attribute to warned variable. Remove unused val, type and type2
variables.
2010-04-16 Andreas Schwab <schwab@redhat.com>
* vms-alpha.c (alpha_vms_link_add_object_symbols): Avoid breaking
strict-aliasing rules.
2010-04-16 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_eihd): Fix typo.
(_bfd_vms_get_object_record): Always assume there is a pad byte
for alignment.
* vms-lib.c: Add a few comments.
2010-04-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Support additions to
attributes in v2.08 of the ABI.
2010-04-15 Alan Modra <amodra@gmail.com>
* config.bfd (vax*-*-*vms*): Delete.
2010-04-14 Tristan Gingold <gingold@adacore.com>
* Makefile.am (BFD32_BACKENDS): Remove vms-gsd.lo, vms-hdr.lo,
vms-tir.lo, vms.lo and add vms-alpha.lo
(BFD32_BACKENDS_CFILES): Remove vms-gsd.c, vms-hdr.c,
vms-tir.c, vms.c and add vms-alpha.c
* Makefile.in: Regenerate.
* configure.in (TDEFINES): Adjust file list for vms_alpha_vec.
Remove vms_vax_vec.
* configure: Regenerate.
* targets.c (vms_vax_vec): Remove the declaration.
(_bfd_target_vector): Remove vms_vax_vec.
* vms-alpha.c: New file.
* vms-gsd.c: Removed, rewritten in vms-alpha.c
* vms-hdr.c: Ditto.
* vms-tir.c: Ditto.
* vms.c: Ditto.
* vms-misc.c: Fix indentation and comments. Replace most of
#if VMS_DEBUG/vms_debug with vms_debug2.
(_bfd_vms_hash_newfunc): Moved to vms-alpha.c
(hash_string): Ditto.
(_bfd_vms_length_hash_symbol): Ditto.
(maybe_adjust_record_pointer_for_object): Ditto.
(_bfd_vms_get_object_record): Ditto.
(vms_get_remaining_object_record): Ditto.
(_bfd_vms_push): Ditto.
(_bfd_vms_pop): Ditto.
(_bfd_vms_get_header_values): Removed.
(_bfd_vms_get_first_record): Removed.
(vms_get_remaining_image_record): Removed.
(new_symbol): Removed.
(_bfd_vms_enter_symbol): Removed.
(_bfd_vms_save_sized_string): Use memcpy instead of strncpy.
(_bfd_vms_output_begin): Remove rechead parameter. Replace bfd
parameter with struct vms_rec_wr.
(_bfd_vms_output_push): Removed and replaced by ...
(_bfd_vms_output_begin_subrec): ... new function.
(_bfd_vms_output_alignment): Replace bfd parameter with
struct vms_rec_wr, and adjust.
(_bfd_vms_output_check): Ditto
(_bfd_vms_output_byte): Ditto.
(_bfd_vms_output_short): Ditto.
(_bfd_vms_output_long): Ditto.
(_bfd_vms_output_quad): Ditto.
(_bfd_vms_output_counted): Ditto.
(_bfd_vms_output_dump): Ditto.
(_bfd_vms_output_fill): Ditto.
(_bfd_vms_output_pop): Removed and replaced by ...
(_bfd_vms_output_end_subrec): ... new function.
(_bfd_vms_output_flush): Removed.
(_bfd_vms_output_align): New function.
(_bfd_vms_output_end): Add recwr parameter. Adjust for this new
parameter.
(vms_convert_to_var): New function imported from vms.c
(vms_convert_to_var_1): Ditto.
(vms_convert_to_var_unix_filename): Ditto.
(vms_get_module_name): Ditto.
(get_vms_time_string): Ditto.
(vms_time_to_time_t): Ditto.
(vms_rawtime_to_time_t): Ditto.
* vms.h: All macros for the VMS file format are now in include/vms.
Prototypes for vms.c, vms-gsd.c, vms-misc.c, vms-hdr.c, vms-tir.c
have been removed.
(struct vms_symbol_struct, struct stack_struct): Moved to vms-alpha.c
(struct fileinfo, struct srecinfo, struct lineinfo): Ditto.
(struct funcinfo, struct vms_private_data_struct): Ditto.
(struct vms_section_data_struct): Ditto.
(struct vms_rec_rd, stryct vms_rec_wr): New declarations.
(vms_get_module_name, get_vms_time_string): New declarations.
(vms_time_to_time_t, vms_rawtime_to_time_t): Ditto.
(_bfd_vms_output_begin_subrec, _bfd_vms_output_end_subrec): Ditto.
(_bfd_vms_save_sized_string, _bfd_vms_save_counted_string): Adjusted.
(_bfd_vms_output_begin, _bfd_vms_output_alignment): Ditto.
(_bfd_vms_output_end,_bfd_vms_output_check): Ditto.
(_bfd_vms_output_byte, _bfd_vms_output_short): Ditto.
(_bfd_vms_output_long, _bfd_vms_output_quad): Ditto.
(_bfd_vms_output_counted, _bfd_vms_output_dump): Ditto.
(_bfd_vms_output_fill): Ditto.
(bfd_vms_set_section_flags): Ditto.
2010-04-14 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elflink.c (_bfd_elf_merge_symbol): Tighten up the test for early
exit due to merging the same weak symbol to test that the symbols are
actually weak.
2010-04-13 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_relocate_section): Correct NOP location
when optimizing high got_tlsgd/ld insns.
2010-04-10 H.J. Lu <hongjiu.lu@intel.com>
* hosts/x86-64linux.h (HAVE_PRPSINFO32_T): Undefine before
define.
(HAVE_PRSTATUS32_T): Likewise.
2010-04-10 H.J. Lu <hongjiu.lu@intel.com>
PR corefiles/11467
* configure.in (CORE_HEADER): New. Set to hosts/x86-64linux.h
for x86_64-*-linux*.
* config.in: Regenerated.
* configure: Likewise.
* elf.c: Include CORE_HEADER if it is defined.
2010-04-10 H.J. Lu <hongjiu.lu@intel.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* hosts/x86-64linux.h: New.
2010-04-09 Nick Clifton <nickc@redhat.com>
* aoutx.h (aout_link_input_bfd): Remove unused variable sym_count.
* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Remove unused
variables htab and hdr_info and mark info parameter as unused.
* elf.c (prep_headers): Remove unused variable i_phdrp.
(_bfd_elf_write_object_contents): Remove unused variable i_ehdrp.
* elf32-i386.c (elf_i386_relocate_section): Mark variabled warned
as unused.
* peXXigen.c (pe_print_reloc): Remove unused variable datasize.
* verilog.c (verilog_write_section): Remove unused variable
address.
2010-04-07 Alan Modra <amodra@gmail.com>
* warning.m4 (GCC_WARN_CFLAGS): Only add -Wshadow for gcc-4 and above.
* configure: Regenerate.
2010-04-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11434
* elf-bfd.h (SYMBOLIC_BIND): Don't bind unique symbol locally.
2010-04-06 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_write_archive_contents): Fix idd flags.
2010-04-05 Jakub Jelinek <jakub@redhat.com>
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Handle CIE version 4
provided that it has the expected address size and zero segment
length.
* dwarf2.c (struct line_head): Add maximum_ops_per_insn field.
(struct line_info): Add op_index field, change end_sequence type to
unsigned char.
(new_line_sorts_after): For the same address compare op_index.
(add_line_info): Add op_index argument, store it into the structure.
(decode_line_info): Complain about unknown versions of .debug_line.
Initialize maximum_ops_per_insn. Add op_index state register and
track it.
2010-04-01 Nathan Sidwell <nathan@codesourcery.com>
* elf32-ppc.c (apuinfo_set): New static var.
(ppc_elf_begin_write_processing): Set it here, always create an
APUinfo section if there were any in the inputs.
(ppc_elf_write_section): Check apuinfo_set.
(ppc_elf_final_write_processing): Likewise.
2010-04-01 Tristan Gingold <gingold@adacore.com>
* vms.h: Include time.h. Add prototypes for vms_get_module_name,
vms_time_to_time_t and vms_rawtime_to_time_t.
* vms.c (vms_alpha_vec): Add archives support.
* vms-misc.c: Include safe-ctype.h
(vms_get_module_name): New function.
(vms_time_to_time_t, vms_rawtime_to_time_t): Ditto.
* vms-hdr.c (_bfd_vms_write_hdr): Put module name creation to the
vms_get_module_name function. Use this function.
* targets.c: Declare vms_lib_txt_vec. Add it to _bfd_target_vector.
* libbfd-in.h: Add prototype for _bfd_append_relative_path.
Add prototypes for vms-lib.c
* libbfd.h: Regenerate.
* configure.in (TDEFINES): Add an entry for vms_lib_txt_vec. Add
vms-lib.lo to vms_alpha_vec.
* config.bfd (targ_cpu): Add targ_selvecs for alpha*-*-*vms*.
* configure: Regenerate.
* bfd.c: Add selective_search field.
* bfd-in2.h: Regenerate.
* archive.c (append_relative_path): Rename to
_bfd_append_relative_path and make it public.
(_bfd_get_elt_at_filepos): Adjust for above renaming.
* Makefile.am (BFD32_BACKENDS): Add vms-lib.lo
(BFD32_BACKENDS_CFILES): Add vms-lib.c
* Makefile.in: Regenerate.
2010-04-01 Jakub Jelinek <jakub@redhat.com>
* dwarf2.c (read_attribute_value): Handle CU version 4
for DW_FORM_ref_addr, handle DW_FORM_sec_offset, DW_FORM_exprloc
and DW_FORM_flag_present. For unknown form value return NULL.
(scan_unit_for_symbols): For DW_AT_location handle DW_FORM_exprloc
like DW_FORM_block.
(parse_comp_unit): Allow CU version 4.
2010-04-01 Hans-Peter Nilsson <hp@axis.com>
* elf32-cris.c (cris_elf_relocate_section): Correct first argument
to _bfd_elf_get_dynamic_reloc_section.
(elf_cris_discard_excess_dso_dynamics): Ditto.
2010-03-31 Kai Tietz <kai.tietz@onevision.com>
* coff-i386.c (in_reloc_p): Check also for R_SECREL32.
* coff-x86_64.c (in_reloc_p): Check also for R_AMD64_SECREL.
2010-03-31 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_relocate_section): Nop out optimized
TPREL16_HI and TPREL16_HA insns.
2010-03-31 Hans-Peter Nilsson <hp@axis.com>
PR ld/11458
* elf32-cris.c (elf_cris_copy_indirect_symbol): Remove invalid
assert of empty pcrel_relocs_copied on the direct symbol. Instead
of moving the list from the indirect symbol to the direct symbol,
merge into any existing list.
(cris_elf_check_relocs): Store the original section in the
pcrel_relocs_copied list, not the relocation section.
(elf_cris_discard_excess_dso_dynamics): Adjust accordingly to find
the relocation section, for reducing its size. Change the
BFD_ASSERT into a check for the section being read-only, and only
emit warnings and TEXTREL marker when there's an entry for a
read-only section.
2010-03-29 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (using_thumb_only): Handle v6-M.
2010-03-26 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_EMB_RELSDA>): Not pc-relative.
* bfd-in.h (elf_discarded_section): Clarify comment.
* reloc.c (struct reloc_howto_struct <pc_relative>): Likewise.
* bfd-in2.h: Regenerate.
2010-03-26 Matt Rice <ratmice@gmail.com>
* archive.c (_bfd_compute_and_write_armap): Allow symbols flagged
as unique in the armap.
2010-03-26 Alan Modra <amodra@gmail.com>
PR ld/11375
* elf64-ppc.c (ppc64_elf_relocate_section): Always look up a
possible stub on branches.
2010-03-25 Joseph Myers <joseph@codesourcery.com>
* Makefile.am (ALL_MACHINES): Add cpu-tic6x.lo.
(ALL_MACHINES_CFILES): Add cpu-tic6x.c.
(BFD32_BACKENDS): Add elf32-tic6x.lo.
(BFD32_BACKENDS_CFILES): Add elf32-tic6x.c.
* Makefile.in: Regenerate.
* archures.c (bfd_arch_tic6x, bfd_tic6x_arch): New.
(bfd_archures_list): Update.
* config.bfd (tic6x-*-elf): New.
* configure.in (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec):
New.
* configure: Regenerate.
* cpu-tic6x.c, elf32-tic6x.c: New.
* reloc.c (BFD_RELOC_C6000_PCR_S21, BFD_RELOC_C6000_PCR_S12,
BFD_RELOC_C6000_PCR_S10, BFD_RELOC_C6000_PCR_S7,
BFD_RELOC_C6000_ABS_S16, BFD_RELOC_C6000_ABS_L16,
BFD_RELOC_C6000_ABS_H16, BFD_RELOC_C6000_SBR_U15_B,
BFD_RELOC_C6000_SBR_U15_H, BFD_RELOC_C6000_SBR_U15_W,
BFD_RELOC_C6000_SBR_S16, BFD_RELOC_C6000_SBR_L16_B,
BFD_RELOC_C6000_SBR_L16_H, BFD_RELOC_C6000_SBR_L16_W,
BFD_RELOC_C6000_SBR_H16_B, BFD_RELOC_C6000_SBR_H16_H,
BFD_RELOC_C6000_SBR_H16_W, BFD_RELOC_C6000_SBR_GOT_U15_W,
BFD_RELOC_C6000_SBR_GOT_L16_W, BFD_RELOC_C6000_SBR_GOT_H16_W,
BFD_RELOC_C6000_DSBT_INDEX, BFD_RELOC_C6000_PREL31,
BFD_RELOC_C6000_COPY, BFD_RELOC_C6000_ALIGN,
BFD_RELOC_C6000_FPHEAD, BFD_RELOC_C6000_NOCMP): New.
* targets.c (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec): New.
(_bfd_target_vector): Update.
* bfd-in2.h, libbfd.h: Regenerate.
2010-03-24 H.J. Lu <hongjiu.lu@intel.com>
* aout-target.h: Update copyright year.
* aout-tic30.c: Likewise.
* coff-alpha.c: Likewise.
* coff-rs6000.c: Likewise.
* coff64-rs6000.c: Likewise.
* elf64-mips.c: Likewise.
* ieee.c: Likewise.
* libecoff.h: Likewise.
* mach-o-target.c: Likewise.
* mach-o.c: Likewise.
* oasys.c: Likewise.
* targets.c: Likewise.
2010-03-24 H.J. Lu <hongjiu.lu@intel.com>
* libbfd-in.h: Update copyright year.
2010-03-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11413
* elflink.c (_bfd_elf_add_default_symbol): Check !executable
instead of shared.
2010-03-19 Jie Zhang <jie@codesourcery.com>
* elf32-arm.c (struct section_list): Remove.
(section_list): Remove typedef.
(record_section_with_arm_elf_section_data): Remove.
(find_arm_elf_section_entry): Remove.
(get_arm_elf_section_data): Use is_arm_elf.
(unrecord_section_with_arm_elf_section_data): Remove.
(elf32_arm_new_section_hook): Don't call
record_section_with_arm_elf_section_data.
(elf32_arm_write_section): Set mapcount to -1 when
the map has been used. Don't call
unrecord_section_with_arm_elf_section_data.
(unrecord_section_via_map_over_sections): Remove.
(elf32_arm_close_and_cleanup): Remove.
(elf32_arm_bfd_free_cached_info): Remove.
(bfd_elf32_close_and_cleanup): Don't define.
(bfd_elf32_bfd_free_cached_info): Don't define.
2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/11396
* libcoff-in.h (pe_tdata): Add dont_strip_reloc.
* libcoff.h: Regenerated.
* peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Clear F_RELFLG
if dont_strip_reloc is set.
(_bfd_XX_bfd_copy_private_bfd_data_common): Set
dont_strip_reloc on output if there is no .reloc and
IMAGE_FILE_RELOCS_STRIPPED isn't set in input.
2010-03-18 Wei Guozhi <carrot@google.com>
PR gas/11323
* elf32-arm.c (elf32_arm_reloc_map): Map BFD_RELOC_ARM_GOT_PREL to
R_ARM_GOT_PREL.
* reloc.c (BFD_RELOC_ARM_GOT_PREL): New ARM relocation.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
2010-03-17 H.J. Lu <hongjiu.lu@intel.com>
* reloc.c (BFD_RELOC_SPU_PIC18): Removed.
(BFD_RELOC_SPU_STUB): Likewise.
2010-03-17 Jie Zhang <jie@codesourcery.com>
* elf.c (assign_file_positions_for_load_sections): Avoid
overflow.
2010-03-17 Alan Modra <amodra@gmail.com>
PR binutils/11382
* plugin.c (bfd_plugin_object_p): Pass iostream to fileno using
proper type.
2010-03-17 Alan Modra <amodra@gmail.com>
* elf32-arm.c (cortex_a8_erratum_scan): Warning fix.
2010-03-16 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (struct ppc_link_hash_table): Add do_toc_opt.
(ppc64_elf_edit_toc): Set it here.
(ha_reloc_match): New function.
(ppc64_elf_relocate_section): Optimize bigtoc insn sequences.
2010-03-15 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_has_small_toc_reloc): New function.
* elf64-ppc.h (ppc64_elf_has_small_toc_reloc): Declare.
2010-03-14 Alan Modra <amodra@gmail.com>
PR ld/11378
* elf64-ppc.h (ppc64_elf_check_init_fini): Declare.
* elf64-ppc.c (call_check_done): Define.
(ppc64_elf_add_symbol_hook): Substitute bfd_get_section_name macro.
(ppc64_elf_check_relocs, ppc64_elf_size_dynamic_sections): Likewise.
(ppc64_elf_finish_multitoc_partition): Remove unnecessary check.
(toc_adjusting_stub_needed): Use call_check_done rather than toc_off.
Simplify return logic. Iterate over all .init and .fini fragments
by recursion. Set makes_toc_func_call here..
(ppc64_elf_next_input_section): ..rather than here.
(check_pasted_section, ppc64_elf_check_init_fini): New functions.
2010-03-13 Alan Modra <amodra@gmail.com>
PR ld/11375
* elf64-ppc.c (ppc_type_of_stub): Always set *hash to the
function descriptor symbol if there is one, not just for plt stubs.
(ppc64_elf_relocate_section): Use fdh on all ppc_get_stub_entry calls.
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elflink.c (bfd_elf_size_dynamic_sections): Don't emit base
version twice.
Skip it when constructing def.vd_next.
* elf32-i386.c (TARGET_LITTLE_SYM): Redefine to
bfd_elf32_i386_sol2_vec.
(TARGET_LITTLE_NAME): Redefine to elf32-i386-sol2.
(elf32_bed): Redefine to elf32_i386_sol2_bed.
(elf_backend_want_plt_sym): Redefine to 1.
* elf64-x86-64.c (TARGET_LITTLE_SYM): Redefine to
bfd_elf64_x86_64_sol2_vec.
(TARGET_LITTLE_NAME): Redefine to elf64-x86-64-sol2.
(elf64_bed): Redefine to elf64_x86_64_sol2_bed.
(elf_backend_want_plt_sym): Redefine to 1.
* config.bfd (i[3-7]86-*-solaris2*): Set targ_defvec to
bfd_elf32_i386_sol2_vec.
Replace bfd_elf64_x86_64_vec by bfd_elf64_x86_64_sol2_vec in
targ64_selvecs.
(x86_64-*-solaris2*): Set targ_defvec to bfd_elf32_i386_sol2_vec.
Replace bfd_elf64_x86_64_vec by bfd_elf64_x86_64_sol2_vec in
targ_selvecs.
* configure.in: Handle bfd_elf32_i386_sol2_vec,
bfd_elf64_x86_64_sol2_vec.
* configure: Regenerate.
* targets.c (bfd_elf32_i386_sol2_vec): Declare.
(bfd_elf64_x86_64_sol2_vec): Declare.
(_bfd_target_vector): Add bfd_elf32_i386_sol2_vec,
bfd_elf64_x86_64_sol2_vec.
2010-03-04 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (elf32_arm_output_arch_local_syms): Skip non-program
sections.
2010-03-04 Alan Modra <amodra@gmail.com>
PR 11302
* dwarf2.c (read_abbrevs): Return NULL on alloc failures.
(read_attribute_value, decode_line_info): Likewise.
(add_line_info, read_rangelist): Return FALSE on alloc failures.
(arange_add, sort_line_sequences): Likewise.
(find_abstract_instance_name): Handle failures from called funcs.
(scan_unit_for_symbols, parse_comp_unit, decode_line_info): Likewise.
(find_line): Realloc to a temp, and handle alloc fail.
2010-03-03 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (elf32_arm_output_arch_local_syms): Do not add
a mapping symbol to an empty section.
2010-03-02 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add a check of the
return value from the call to _bfd_elf_merge_object_attributes.
2010-03-02 Christophe Lyon <christophe.lyon@st.com>
Alan Modra <amodra@gmail.com>
* elf32-arm.c (a8_erratum_fix): Add st_type field to record the
destination mode of the a8 stub.
(elf32_arm_link_hash_table): Add top_id field.
(elf32_arm_link_hash_table_create): Initialize top_id.
(arm_type_of_stub): Update prototype, st_type can now be updated
by this function. Actual destination address in case of PLT is
computed here, to help factorizing code.
(elf32_arm_stub_name): Update prototype, use stub_type additional
parameter to build stub name.
(elf32_arm_get_stub_entry): Update prototype, use stub_type
additional parameter to build stub entry.
(arm_build_one_stub): Use bfd_put_16/bfd_put_32 instead of
put_thumb_insn/put_arm_insn as BE8 encoding is now handled later.
Call elf32_arm_final_link_relocate to process all in-stub
relocations.
(elf32_arm_setup_section_lists): Update top_id.
(cortex_a8_erratum_scan): Record stub destination mode.
(elf32_arm_size_stubs): Update call to arm_type_of_stub according
to new prototype.
(elf32_arm_final_link_relocate): Enable processing of in-stub
REL32 relocations. Rely on arm_type_of_stub to detect if a stub is
needed, enabling code factorization.
(elf32_arm_final_link): Process stub sections.
(elf32_arm_output_map_sym): Add entry to code/data map.
2010-03-01 David S. Miller <davem@davemloft.net>
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): When STT_GNU_IFUNC and
h->def_regular, set h->ref_regular.
(allocate_dynrelocs): Only force output of STT_GNU_IFUNC plt entries
and dynamic relocations if h->ref_regular.
* elfxx-sparc.c (struct elf_reloc_map): Delete.
(sparc_reloc_map): Delete.
(_bfd_sparc_elf_reloc_type_lookup): Explicitly handle each
relocation type in switch statements.
2010-02-25 Alan Modra <amodra@gmail.com>
PR ld/11304
* elf.c (_bfd_elf_init_private_section_data): Rename need_group
to final_link and invert. For final link allow some flags to
differ. Don't specially allow flags to be all zero.
2010-02-24 Alan Modra <amodra@gmail.com>
PR binutils/10858
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Ise
SYMBOL_REFERENCES_LOCAL to exclude entries from the dynamic symbol
table.
2010-02-23 Andrew Zabolotny <anpaza@mail.ru>
PR binutils/11297
* elf32-avr.c (elf_avr_howto_table): Add R_AVR_8.
(avr_reloc_map): Map BFD_RELOC_8 to R_AVR_8.
2010-02-22 Alan Modra <amodra@gmail.com>
* reloc.c (bfd_check_overflow): When forming addrmask, shift
fieldmask left by rightshift.
(_bfd_relocate_contents): Likewise. Use rightshift addrmask in all
overflow checks.
2010-02-20 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Don't check
STT_GNU_IFUNC on large common symbol.
2010-02-18 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_add_symbol_hook): Don't set
has_ifunc_symbols if the symbol comes from a shared library.
* elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
* elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
* elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
* elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
* elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Likewise.
2010-02-19 Alan Modra <amodra@gmail.com>
* elf.c (_bfd_elf_fixup_group_sections): New function, split out from..
(_bfd_elf_copy_private_header_data): ..here.
* elflink.c (_bfd_elf_size_group_sections): New function.
(bfd_elf_size_dynamic_sections): Call it.
* elf-bfd.h (_bfd_elf_size_group_sections): Declare.
(_bfd_elf_fixup_group_sections): Declare.
2010-02-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add support for
merging Tag_DIV_use, Tag_MPextension_use, and
Tag_MPextension_use_legacy tags.
2010-02-18 Alan Modra <amodra@gmail.com>
* elf.c (bfd_elf_set_group_contents): Revert accidental 2009-01-15
commit. Don't write zeros for removed group members.
(_bfd_elf_copy_private_header_data): Adjust size of group section
when group members are removed by objcopy.
2010-02-15 Dave Korn <dave.korn.cygwin@gmail.com>
PR binutils/11280
* configure.host (*-*-solaris2.11): Add host define to select
valid default code page for windres/windmc on solaris.
2010-02-15 Nick Clifton <nickc@redhat.com>
* po/vi.po: Updated Vietnamese translation.
2010-02-12 Daniel Gutson <dgutson@codesourcery.com>
* elf32-arm.c (elf32_arm_output_arch_local_syms): add
missing mapping symbol to data only sections.
2010-02-11 David S. Miller <davem@davemloft.net>
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): For R_SPARC_GOTDATA_OP_HIX22
and R_SPARC_GOTDATA_OP_LOX10, only bump the GOT refcount for global
symbols.
(_bfd_sparc_elf_gc_sweep_hook): Likewise only decrement the GOT count for
these relocs on global symbols.
(gdopoff): New.
(_bfd_sparc_elf_relocate_section): Perform GOTDATA optimizations on
local symbol references which are not STT_GNU_IFUNC. Handle
relocation of them like R_SPARC_HIX22 and R_SPARC_LOX10 respectively,
and deal with negative vs. non-negative values properly.
2010-02-09 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Adjust addend for
non-external relocation.
2010-02-09 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (merge_got_entries): Move earlier in file.
(allocate_dynrelocs): Merge got entries here if not doing multi-toc.
(ppc64_elf_size_dynamic_sections): Similarly merge tlsld_got.
(ppc64_elf_layout_multitoc): Don't resize if we have already
merged got entries.
2010-02-09 Michael Holzheu <holzheu@de.ibm.com>
* elf-bfd.h (elfcore_write_s390_timer, elfcore_write_s390_todcmp,
elfcore_write_s390_todpreg, elfcore_write_s390_ctrs,
elfcore_write_s390_prefix): New.
* elf.c (elfcore_write_s390_timer, elfcore_write_s390_todcmp,
elfcore_write_s390_todpreg, elfcore_write_s390_ctrs,
elfcore_write_s390_prefix): New.
(elfcore_grok_note): Handle NT_S390_TIMER, NT_S390_TODCMP,
NT_S390_TODPREG, NT_S390_CTRS and NT_S390_PREFIX.
(elfcore_write_register_note): Handle .reg-s390-timer,
.reg-s390-todcmp, .reg-s390-todpreg, .reg-s390-ctrs,
.reg-s390-prefix section.
2010-02-09 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (struct got_entry): Make tls_type and is_indirect
unsigned char. Update variables and code using them throughout file.
(struct ppc_link_hash_entry): Likewise for tls_mask.
* elf64-ppc.c (ppc64_elf_layout_multitoc): Don't merge local got ents.
* elf64-ppc.c (has_small_toc_reloc): Don't define.
(makes_toc_func_call, call_check_in_progress): Shuffle flags.
(struct ppc64_elf_obj_tdata): Add has_small_toc_reloc. Update
code setting the flag.
(ppc64_elf_next_toc_section): Group big-toc sections in
0x80008000 chunks.
2010-02-08 David S. Miller <davem@davemloft.net>
* elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Remove sgot,
srelgot, splt, srelplt, and sgotplt members in favor of generic copies.
* elfxx-sparc.c (create_got_section): Delete.
(_bfd_sparc_elf_create_dynamic_sections): Don't call, the dynamic
section creator does that work for us. Use ->elf.foo instead of
->foo where applicable.
(_bfd_sparc_elf_check_relocs): Use ->elf.foo instead of ->foo
where applicable.
(allocate_dynrelocs): Likewise.
(_bfd_sparc_elf_size_dynamic_sections): Likewise.
(_bfd_sparc_elf_relocate_section): Likewise.
(sparc_vxworks_build_plt_entry): Likewise.
(_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
(sparc_finish_dyn): Likewise.
(sparc_vxworks_finish_exec_plt): Likewise.
(sparc_vxworks_finish_shared_plt): Likewise.
(_bfd_sparc_elf_finish_dynamic_sections): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Use the SYMBOL_*
macros for visibilty and locality checks.
(_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
(allocate_dynrelocs): Likewise.
(_bfd_sparc_elf_relocate_section): Likewise.
(_bfd_sparc_elf_finish_dynamic_symbol):Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Remove set
but never used local var 'dynobj'.
* elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Handle
nocopyreloc.
* reloc.c (BFD_RELOC_SPARC_JMP_IREL): New.
(BFD_RELOC_SPARC_IRELATIVE): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add loc_hash_table
and loc_hash_memory.
(_bfd_sparc_elf_link_hash_table_free): Declare.
* elf32-sparc.c (elf32_sparc_add_symbol_hook): New.
(elf_backend_add_symbol_hook, elf_backend_post_process_headers,
bfd_elf32_bfd_link_hash_table_free): Define.
* elf64-sparc.c (elf64_sparc_add_symbol_hook): Set
has_ifunc_symbols if STT_GNU_IFUNC.
(bfd_elf64_bfd_link_hash_table_free): Define.
(elf_backend_post_process_headers): Define always.
* elfxx-sparc.c (sparc_jmp_irel_howto, sparc_irelative_howto): New.
(sparc_reloc_map): Add entries for new IFUNC relocs.
(_bfd_sparc_elf_reloc_type_lookup): Handle new IFUNC relocs.
(_bfd_sparc_elf_info_to_howto_ptr): Likewise.
(elf_sparc_local_htab_hash, elf_sparc_local_htab_eq,
elf_sparc_get_local_sym_hash): New.
(_bfd_sparc_elf_create_dynamic_sections): Move PLT ops initialization
from here...
(_bfd_sparc_elf_link_hash_table_create): ... to here. Allocate
local hash table.
(_bfd_sparc_elf_link_hash_table_free): New.
(create_ifunc_sections): New.
(_bfd_sparc_elf_check_relocs): Unconditionally assign htab->elf.dynobj
and call create_ifunc_sections(). For local STT_GNU_IFUNC symbols
cons up a fake local hash table entry for it. Unconditionally add
a PLT refcount for STT_GNU_IFUNC symbols when h->def_regular. Count
dyn relocs for ifunc.
(_bfd_sparc_elf_adjust_dynamic_symbol): Handle ifunc.
(allocate_dynrelocs): Unconditionally emit a PLT entry when
STT_GNU_IFUNC and h->def_regular. Count GOT dyn relocs for ifunc.
(allocate_local_dynrelocs): New function.
(_bfd_sparc_elf_size_dynamic_sections): Invoke it over the local hash
table. Emit dynamic relocs to irelplt when not shared. Treat iplt
like splt.
(_bfd_sparc_elf_relocate_section): Handle ifunc relocations by hand.
(_bfd_sparc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc
plt in iplt/irelplt.
2010-02-08 Richard Sandiford <r.sandiford@uk.ibm.com>
* xcofflink.c (_bfd_xcoff_bfd_final_link): When calculating
max_contents_size, only consider sections whose contents must
be swapped in.
2010-02-09 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (allocate_dynrelocs): Remove unused got structs here..
(ppc64_elf_size_dynamic_sections): ..and here..
(merge_got_entries): ..rather than here.
2010-02-09 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (struct ppc_link_hash_table): Add do_multi_toc.
(has_small_toc_reloc): Define.
(ppc64_elf_check_relocs): Set the above flags.
(ppc64_elf_edit_opd): Delete obfd param.
(ppc64_elf_tls_optimize): Likewise.
(ppc64_elf_edit_toc): Likewise.
(ppc64_elf_tls_setup): Likewise. Add no_multi_toc param.
* elf64-ppc.h: Update prototypes.
2010-02-08 Alan Modra <amodra@gmail.com>
* section.c (struct bfd_section): Delete has_tls_reloc,
has_tls_get_addr_call, has_gp_reloc, need_finalize_relax, reloc_done.
Add sec_flg0 thru sec_flg5.
(BFD_FAKE_SECTION): Update for changed flags.
* ecoff.c (bfd_debug_section): Likewise.
* elf32-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define.
* elf64-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define.
(has_toc_reloc, makes_toc_func_call, call_check_in_progress): Update.
* elf32-xtensa.c (reloc_done): Define.
* elfxx-ia64.c (skip_relax_pass_0, skip_relax_pass_1): Update.
* bfd-in2.h: Regenerate.
2010-02-08 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern
for non-scattered relocations.
2010-02-08 Nathan Sidwell <nathan@codesourcery.com>
* elf32-ppc.c (ppc_elf_begin_write_processing): Allow empty
apuinfo sections, only scan input sections once and reuse the
buffer.
2010-02-08 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* archures.c (bfd_mach_ppc_titan): Define.
* bfd-in2.h: Regenerate.
* cpu-powerpc.c (bfd_powerpc_archs): Add titan entry.
2010-02-08 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_check_relocs): Remove dead ifunc code.
2010-02-05 Sterling Augustine <sterling@tensilica.com>
* elf.c (assign_file_positions_for_load_sections) Update lma of
section if necessary. Fixes Bugzilla 11219.
2010-02-05 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c: Remove trailing white spaces.
* elf64-x86-64.c: Likewise.
2010-02-03 Nick Clifton <nickc@redhat.com>
* elf-bfd.h (emum elf_object_id): Rename to elf_target_id. Add
entries for other architectures.
(struct elf_link_hash_table): Add hash_table_id field.
(elf_hash_table_id): New accessor macro.
* elflink.c (_bfd_elf_link_hash_table_init): Add target_id
parameter.
* elf-m10300.c (elf32_mn10300_hash_table): Check table id before
returning cast pointer.
(elf32_mn10300_link_hash_table_create): Identify new table as
containing MN10300 extensions.
(mn10300_elf_relax_section): Check pointer returned by
elf32_mn10300_hash_table.
* elf32-arm.c: Likewise, except using ARM extensions.
* elf32-avr.c: Likewise, except using AVR extensions.
* elf32-bfin.c: Likewise, except using BFIN extensions.
* elf32-cris.c: Likewise, except using CRIS extensions.
* elf32-frv.c: Likewise, except using FRV extensions.
* elf32-hppa.c: Likewise, except using HPPA32 extensions.
* elf32-i386.c: Likewise, except using I386 extensions.
* elf32-lm32.c: Likewise, except using LM32 extensions.
* elf32-m32r.c: Likewise, except using M32RM extensions.
* elf32-m68hc11.c: Likewise, except using M68HC11 extensions.
* elf32-m68hc1x.c: Likewise, except using M68HC11 extensions.
* elf32-m68hc1x.h: Likewise, except using M68HC11 extensions.
* elf32-m68k.c: Likewise, except using M68K extensions.
* elf32-microblaze.c: Likewise, except using MICROBLAZE extensions.
* elf32-ppc.c: Likewise, except using PPC32 extensions.
* elf32-s390.c: Likewise, except using S390 extensions.
* elf32-sh.c: Likewise, except using SH extensions.
* elf32-spu.c: Likewise, except using SPU extensions.
* elf32-xtensa.c: Likewise, except using XTENSA extensions.
* elf64-alpha.c: Likewise, except using ALPHA extensions.
* elf64-hppa.c: Likewise, except using HPPA64 extensions.
* elf64-ppc.c: Likewise, except using PPC64 extensions.
* elf64-s390.c: Likewise, except using S390 extensions.
* elf64-x86-64.c: Likewise, except using X86_64 extensions.
* elfxx-ia64.c: Likewise, except using IA64 extensions.
* elfxx-mips.c: Likewise, except using MIPS extensions.
* elfxx-sparc.c: Likewise, except using SPARC extensions.
* elfxx-sparc.h: Likewise, except using SPARC extensions.
* elf32-cr16.c (struct elf32_cr16_link_hash_table): Delete
redundant structure.
(elf32_cr16_hash_table): Delete unused macro.
(elf32_cr16_link_hash_traverse): Delete unused macro.
* elf32-score.c: Likewise.
* elf32-score7.c: Likewise.
* elf32-vax.c: Likewise.
* elf64-sh64.c: Likewise.
2010-02-03 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (struct plt_entry): Move earlier in file.
(struct got_entry): Likewise. Add is_indirect and got.ent fields.
(struct ppc64_elf_obj_tdata): Change tlsld_got to be a struct got_entry.
Update all uses.
(struct ppc_link_hash_table): Add got_reli_size and second_toc_pass.
Remove no_multi_toc.
(update_local_sym_info, ppc64_elf_check_relocs): Clear is_indirect
when allocating a new struct got_entry.
(allocate_got): New function, extracted from..
(allocate_dynrelocs): ..here. Abort on got entry in non-ppc64 bfd.
(ppc64_elf_size_dynamic_sections): Track got relocs allocated in
.reliplt by got_reli_size. Set owner on ppc64_tlsld_got entries.
(ppc64_elf_setup_section_lists): Remove output_bfd param and
no_multi_toc, add add_stub_section and layout_sections_again. Stash
new params in htab. Extract some code to..
(ppc64_elf_start_multitoc_partition): ..here. New function.
(ppc64_elf_next_toc_section): Check for linker script errors. Handle
second pass toc scan.
(merge_got_entries, merge_global_got, reallocate_got): New functions.
(ppc64_elf_reinit_toc): Rename to..
(ppc64_elf_finish_multitoc_partition): ..this.
(ppc64_elf_layout_multitoc): New function.
(ppc64_elf_size_stubs): Delete output_bfd, add_stub_section and
layout_sections_again params.
(ppc64_elf_relocate_section): Handle indirect got entries.
* elf64-ppc.h: Update prototypes. Declare new functions.
2010-02-02 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (elfcore_write_xstatereg): New.
* elf.c (elfcore_grok_xstatereg): New.
(elfcore_write_xstatereg): Likewise.
(elfcore_grok_note): Handle NT_X86_XSTATE.
(elfcore_write_register_note): Handle .reg-xstate section.
2010-02-01 Tristan Gingold <gingold@adacore.com>
* som.c (som_write_ar_hdr): Define this macro.
2010-01-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the
linkage table pointer to use the global table pointer if not doing
a shared link.
2010-01-29 Joel Brobecker <brobecker@adacore.com>
* elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
if it has already been set.
2010-01-27 Tristan Gingold <gingold@adacore.com>
* vms.h: Remove trailing spaces.
(struct hdr_struct): Remove unused hdr_c_cpr field.
(enum file_format_enum): Add comments.
* vms.c (vms_bfd_print_private_bfd_data): New function that
replaces the macro.
Remove trailing spaces.
* vms-misc.c: Improve comments.
(_bfd_vms_get_object_record): Also handle files without pads.
* vms-hdr.c (_bfd_vms_write_dbg): Fix format string.
* vms-gsd.c (struct flagdescstruct): Make name field const.
(gsyflagdesc): Fix typo.
2010-01-27 Alan Modra <amodra@gmail.com>
PR ld/11217
* elf64-ppc.c (struct ppc_link_hash_table): Add toc_bfd, toc_first_sec.
(ppc64_elf_setup_section_lists): Init them.
(ppc64_elf_next_toc_section): Don't partition multi-toc between .got
and .toc on the same input file.
(ppc64_elf_relocate_section): Correct GOT entry offset.
2010-01-26 Tristan Gingold <gingold@adacore.com>
* targets.c (BFD_JUMP_TABLE_ARCHIVE): Add initializer for write_ar_hdr.
(bfd_target): Add _bfd_write_ar_hdr_fn field.
* archive.c (is_bsd44_extended_name): New macro.
(_bfd_generic_read_ar_hdr_mag): Use it. Add extra_size.
(bfd_slurp_armap): Also check for "__.SYMDEF" as a BSD4.4 extended
name.
(_bfd_archive_bsd44_construct_extended_name_table): New function.
(_bfd_generic_write_ar_hdr): Ditto.
(_bfd_bsd44_write_ar_hdr): Ditto.
(_bfd_write_archive_contents): Call _bfd_write_ar_hdr.
(bsd_write_armap): Adjust firstreal computation.
* libbfd-in.h (struct areltdata): Add extra_size field.
(_bfd_generic_write_ar_hdr): Add prototype.
(_bfd_bsd44_write_ar_hdr): Ditto.
(_bfd_write_ar_hdr): Define.
(_bfd_noarchive_write_ar_hdr): Ditto.
(_bfd_archive_bsd_write_ar_hdr): Ditto.
(_bfd_archive_coff_write_ar_hdr): Ditto.
(_bfd_archive_bsd44_slurp_armap): Ditto.
(_bfd_archive_bsd44_slurp_extended_name_table): Ditto.
(_bfd_archive_bsd44_construct_extended_name_table): New prototype.
(_bfd_archive_bsd44_truncate_arname): Ditto.
(_bfd_archive_bsd44_write_armap): Ditto.
(_bfd_archive_bsd44_read_ar_hdr): Ditto.
(_bfd_archive_bsd44_write_ar_hdr): Ditto.
(_bfd_archive_bsd44_openr_next_archived_file): Ditto.
(_bfd_archive_bsd44_get_elt_at_index): Ditto.
(_bfd_archive_bsd44_generic_stat_arch_elt): Ditto.
(_bfd_archive_bsd44_update_armap_timestamp): Ditto.
* libbfd.h: Regenerate.
* oasys.c (oasys_write_ar_hdr): Define.
* libecoff.h (_bfd_ecoff_write_ar_hdr): Define.
* ieee.c (ieee_write_ar_hdr): Define.
* elf64-mips.c (bfd_elf64_archive_write_ar_hdr): Define.
* coff-rs6000.c (rs6000coff_vec): Adjust for write_ar_hdr field.
(bfd_pmac_xcoff_backend_data): Ditto.
* coff64-rs6000.c (rs6000coff64_vec): Ditto.
(bfd_xcoff_aix5_backend_data): Ditto.
* coff-alpha.c (alpha_ecoff_write_ar_hdr): Define.
* aout-target.h (MY_write_ar_hdr): Define it if not defined.
* aout-tic30.c (MY_write_ar_hdr): Ditto.
* mach-o-target.c (TARGET_NAME): Use _bfd_archive_bsd44 archive.
(bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr)
(bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table)
(bfd_mach_o_construct_extended_name_table)
(bfd_mach_o_truncate_arname, bfd_mach_o_write_armap)
(bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt)
(bfd_mach_o_update_armap_timestamp): Moved to mach-o.c
* mach-o.c (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr)
(bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table)
(bfd_mach_o_construct_extended_name_table)
(bfd_mach_o_truncate_arname, bfd_mach_o_write_armap)
(bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt)
(bfd_mach_o_update_armap_timestamp): Moved from mach-o-target.c
* bfd-in2.h: Regenerate.
2010-01-26 Alan Modra <amodra@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
PR ld/11218
* elflink.c (elf_link_output_extsym): Do not ignore undefined
symbols with ref_regular set when gc_sections is active.
2010-01-25 Alan Modra <amodra@gmail.com>
PR ld/11217
* elf64-ppc.c (ppc64_elf_tls_optimize): Optimize tls sequences
with relocations against undefined weak symbols.
(ppc64_elf_relocate_section): Don't optimize calls to undefined
weak functions if the symbol is dynamic.
(ppc64_elf_relocate_section): Edit tprel tls sequences.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
(_bfd_elf_ppc_at_tprel_transform): New function.
* bfd-in.h (_bfd_elf_ppc_at_tprel_transform): Declare.
* bfd-in2.h: Regenerate.
2010-01-23 Richard Sandiford <r.sandiford@uk.ibm.com>
* coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1.
(_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE.
* coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and
bitsize to 1.
(xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE.
2010-01-21 Nick Clifton <nickc@redhat.com>
* elflink.c (elf_link_add_object_symbols): Look up name of
undefined symbol both before and after versioning has been
applied. Do not bother with symbols that are weakly undefined.
2010-01-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* elf32-s390.c (elf32_s390_merge_private_bfd_data): New function.
(bfd_elf32_bfd_merge_private_bfd_data): New macro definition.
2010-01-19 Cary Coutant <ccoutant@google.com>
* dwarf2.c (read_attribute_value): Add DW_FORM_ref_sig8.
2010-01-19 Daisuke Hatayama <d.hatayama@jp.fujitsu.com>
Alan Modra <amodra@gmail.com>
* elfcode.h (elf_swap_ehdr_out): Handle e_phnum > 0xffff.
(elf_object_p): Read e_phnum extension.
(elf_write_shdrs_and_ehdr): Write e_phnum extension.
* elfcore.h (elf_core_file_p): Read e_phnum extension. Sanity check
that we can read last program header.
2010-01-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
R_ARM_THM_CALL entry.
(elf32_arm_final_link_relocate): Correct calculation of
reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
or R_ARM_THM_JUMP24 relocation.
2010-01-18 Alan Modra <amodra@gmail.com>
PR 11168
* coffcode.h (coff_compute_section_file_positions): Move Rs6000COFF_C
block past vars in COFF_IMAGE_WITH_PE block. Report error on more
than 32k sections.
2010-01-15 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix compilation warning on gcc-3.4.
* vms-tir.c (start_etir_record, sto_imm): Rename the prototype
parameter index to sec_index according to the function definition.
2010-01-13 Chao-ying Fu <fu@mips.com>
* elfxx-mips.c (JR_TO_B_P): New define to transform JR to B.
It is true for all CPUs.
(jal_reloc_p): New function.
(mips_elf_calculate_relocation): Rename require_jalxp to
cross_mode_jump_p.
Update comment for CROSS_MODE_JUMP_P.
Set up cross_mode_jump_p based on the mode change.
(mips_elf_perform_relocation): Rename require_jalx to cross_mode_jump_p.
Update comment for CROSS_MODE_JUMP_P.
Test cross_mode_jump_p and jal_reloc_p to turn jal to jalx.
Use !cross_mode_jump_p to guard conversion.
Convert "jr t9" to "b", if possible.
(_bfd_mips_elf_relocate_section): Rename require_jalx to
cross_mode_jump_p.
Pass &cross_mode_jump_p to call mips_elf_calculate_relocation.
Pass cross_mode_jump_p to call mips_elf_perform_relocation.
2010-01-13 Nick Clifton <nickc@redhat.com>
* cpu-m32c.c (m32c_scan): New function. Ensures that a scan for
"m32c" returns the m32c arch_info_struct and not the m16c
arch_info_struct.
(arch_info_struct): Use the new scan function.
(bfd_m32c_arch): Likewise.
2010-01-13 Tristan Gingold <gingold@adacore.com>
* config.bfd: Remove duplicated target vector for i386-*-darwin.
Appends new arch instead of overriding.
Use mach_o_x86_64_vec for x86_64-*-darwin.
* configure.in: Add mach_o_x86_64_vec.
* configure: Regenerate.
* targets.c: Declare mach_o_x86_64_vec, add it to _bfd_target_vector.
* Makefile.am (BFD64_BACKENDS): Add mach-o-x86-64.lo
(BFD64_BACKENDS_CFILES): Add mach-o-x86-64.c
* Makefile.in: Regenerate.
* mach-o-x86-64.c: New file.
2010-01-13 Tristan Gingold <gingold@adacore.com>
* reloc.c: Add MACH_O_X86_64 relocations.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
2010-01-13 Tristan Gingold <gingold@adacore.com>
* archive.c (normalize): Use lbasename.
(bfd_bsd_truncate_arname): Ditto.
(bfd_gnu_truncate_arname): Ditto.
2010-01-12 Tristan Gingold <gingold@adacore.com>
* makefile.vms (CFLAGS): Turns warnings into informational messages.
2010-01-11 Tristan Gingold <gingold@adacore.com>
* mach-o.h: Add x86-64 relocation types.
2010-01-11 Tristan Gingold <gingold@adacore.com>
* mach-o.h (bfd_mach_o_backend_data): Add arch field.
(bfd_mach_o_set_arch_mach): New prototype.
* mach-o.c (bfd_mach_o_mkobject): Define with bfd_mach_o_gen_mkobject.
(bfd_mach_o_set_arch_mach): New function.
(bfd_mach_o_gen_mkobject): New function.
Set TARGET_ARCHITECTURE for the generic back-ends.
* mach-o-target.c (bfd_mach_o_set_arch_mach): Remove define.
Check that TARGET_ARCHITECTURE is defined.
Add TARGET_ARCHITECTURE in TARGET_NAME_BACKEND structure.
* mach-o-i386.c (TARGET_ARCHITECTURE): Define.
2010-01-11 Tristan Gingold <gingold@adacore.com>
* archive.c (bfd_slurp_armap): Also check for Mach-O sorted armap.
2010-01-11 Nick Clifton <nickc@redhat.com>
* elf32-v850.c (v850_elf_perform_relocation): Fix overflow
handling of R_V850_HI16_S relocation.
2010-01-11 Alan Modra <amodra@gmail.com>
PR 11103
* dwarf1.c (parse_die): Correct FORM_STRING data pointer increment.
2010-01-11 Alan Modra <amodra@gmail.com>
PR 6832
* dwarf2.c (struct comp_unit): Add sec_info_ptr.
(find_abstract_instance_name): Use it.
(parse_comp_unit): Set it.
2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.in: Regenerate.
* configure: Regenerate.
2010-01-08 Tristan Gingold <gingold@adacore.com>
* archive.c: Remove bfd_special_undocumented_glue.
2010-01-08 Alan Modra <amodra@gmail.com>
PR ld/11133
* elf32-cr16.c (elf32_cr16_gc_mark_hook): Call _bfd_elf_gc_mark_hook.
* elf32-microblaze.c (microblaze_elf_gc_mark_hook): Likewise.
* elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11138
* elflink.c (elf_link_check_versioned_symbol): Don't abort if
a symbol referenced by DSO is is defined in a non-shared object
and forced local.
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11133
* elflink.c (_bfd_elf_gc_mark_hook): Check section XXX for
undefined __start_XXX/__stop_XXX in all input files and set
SEC_KEEP.
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11143
* elflink.c (elf_gc_sweep): Keep SHT_NOTE section.
2010-01-04 Daniel Gutson <dgutson@codesourcery.com>
* bfd.m4 (BFD_HAVE_SYS_PROCFS_TYPE): Define _STRUCTURE_PROC
before including procfs.h.
(BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise.
* configure.in: Added autoconf probe for the pr_fpreg member.
* configure: Regenerated.
* config.in: Regenerated.
* elf.c: Define _STRUCTURE_PROC before including procfs.h.
2010-01-04 Joel Brobecker <brobecker@adacore.com>
Fix -Wshadow warnings in dwarf2.c (seen on alpha-tru64).
* dwarf2.c (concat_filename): Rename dirname with dir_name
to void shadowing the dirname function.
Rename subdirname with subdir_name to stay consistent with
the new dir_name variable name.
2010-01-04 Edmar Wienskoski <edmar@freescale.com>
* archures.c: Add bfd_mach_ppc_e500mc64.
* bfd-in2.h: Regenerate.
* cpu-powerpc.c (bfd_powerpc_archs): Add entry for
bfd_mach_ppc_e500mc64.
2010-01-01 Joel Brobecker <brobecker@adacore.com>
Fix -Wshadow warnings (seen on ppc-aix)
* xcofflink.c: Replace finfo by flinfo throughout.
For older changes see ChangeLog-2009
Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End: