blob: af3cbd419717eabedd027261ae918725ba921912 [file] [log] [blame]
2006-12-31 H.J. Lu <>
* bfd.c (bfd_record_phdr): Call bfd_zalloc instead of bfd_alloc
to allocate elf_segment_map.
2006-12-29 H.J. Lu <>
* elflink.c (elf_link_add_object_symbols): Remember the symbol
size only if it is defined.
2006-12-25 Kazu Hirata <>
* archures.c (bfd_mach_cpu32_fido): New.
(bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_a,
bfd_mach_mcf_isa_a_mac, bfd_mach_mcf_isa_a_emac,
bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac,
bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_b_nousp,
bfd_mach_mcf_isa_b_nousp_mac, bfd_mach_mcf_isa_b_nousp_emac,
bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac,
bfd_mach_mcf_isa_b_emac, bfd_mach_mcf_isa_b_float,
bfd_mach_mcf_isa_b_float_mac, bfd_mach_mcf_isa_b_float_emac):
Increment the defined values.
* bfd-in2.h: Regenerate.
* cpu-m68k.c (arch_info_struct): Add en entry for
* elf32-m68k.c (elf32_m68k_object_p): Handle
(elf32_m68k_merge_private_bfd_data): Use EF_M68K_CPU32_MASK.
(elf32_m68k_print_private_bfd_data): Handle
2006-12-25 Mei Ligang <>
* elf32-score.c (score_elf_got_lo16_reloc): Change some variables
type from unsigned to signed.
(score_elf_final_link_relocate): Fix bugs of handling relocation
(_bfd_score_elf_relocate_section): Handle R_SCORE_GOT_LO16
2006-12-23 Jakub Jelinek <>
* elf-bfd.h (struct elf_backend_data): Add as_needed_cleanup hook.
* elfxx-target.h (elf_backend_as_needed_cleanup): Define.
(elfNN_bed): Add as_needed_cleanup hook.
* elflink.c (elf_link_add_object_symbols): Call it when reverting
hash table changes for unneeded --as-needed input.
* elf64-ppc64.c (elf_backend_as_needed_cleanup): Define.
(ppc64_elf_as_needed_cleanup): New function.
2006-12-19 Kazu Hirata <>
* elf32-m68k.c (elf32_m68k_object_p,
elf32_m68k_print_private_bfd_data): Use EF_M68K_ARCH_MASK to
extract architecture mask.
2006-12-19 Nathan Sidwell <>
* elf.c (assign_file_positions_for_load_sections): Adjust p_vaddr
by p_vaddr_offset. Copy alignment & use if it is valid.
(rewrite_elf_program_headers): Cope with leading padding in a
segment that does not contain file or program headers.
(copy_elf_program_header): Likewise.
2006-12-15 Mark Kettenis <>
* config.bfd: (sh*-*-openbsd*): Add target.
* (sh*-*-openbsd*): Set COREFILE to netbsd-core.lo.
* configure: Regenerate.
2006-12-15 Alan Modra <>
* opncls.c (bfd_openr_iovec): Add "stat" parameter.
(struct opncls): Add "stat" field.
(opncls_bstat): Call vec->stat.
* bfd-in2.h: Regenerate.
* elf32-spu.c (spu_elf_open_builtin_lib): Adjust.
2006-12-14 Alan Modra <>
* elf-bfd.h (struct bfd_elf_section_data): Clarify sec_group
and next_in_group usage.
2006-12-14 Alan Modra <>
PR 3704
* bfdio.c (bfd_bread): Don't read past end of archive elements.
2006-12-12 Daniel Jacobowitz <>
* doc/ (bfd_TEXINFOS): Set.
( bfd.dvi bfd.html): Delete rule.
* doc/ Regenerated.
2006-12-11 Daniel Jacobowitz <>
* doc/ ( Remove srcdir prefix.
(DISTCLEANFILES): Pretend to add info file.
* po/Make-in ( Put gmo files in objdir.
* configure,, doc/ Regenerated.
2006-12-11 Eric Botcazou <>
* elflink.c (bfd_elf_gc_sections): Also search for corresponding
sections with .gnu.linkonce.t. prefix.
2006-12-07 Kazu Hirata <>
* elf32-m68k.c: Update uses of EF_M68K_*.
2006-12-07 H.J. Lu <>
PR ld/3666
* elflink.c (elf_link_add_object_symbols): Keep symbol
visibility for symbols from discarded section.
2006-12-06 Alan Modra <>
* elf64-alpha.c (elf64_alpha_merge_symbol_attribute): New function.
(elf_backend_merge_symbol_attribute): Define.
2006-12-04 Jan Beulich <>
* elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
.eh_frame_hdr section from here anymore.
(bfd_elf_size_dynamic_sections): Call _bfd_elf_maybe_strip_eh_frame_hdr
a little earlier.
2006-12-01 H.J. Lu <>
PR binutils/3609
* elf.c (rewrite_elf_program_header): Preserve segment physical
address in the output segment if the first section in the
corresponding input segment is null.
2006-12-01 Nick Clifton <>
PR 3609
* elf.c (rewrite_elf_program_header): Do not use the first_section
pointer if it is null.
2006-11-29 Paul Brook <>
* elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
section is present.
(allocate_dynrelocs): Only add export stub for symbols defined in
this object.
2006-11-29 Paul Brook <>
* elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
section is present.
(allocate_dynrelocs): Only add export stub for symbols defined in
this object.
2006-11-29 Paul Brook <>
Julian Brown <>
* elf32-arm.c (copy_eabi_attributes): Correct starting offset.
(elf32_arm_merge_eabi_attributes): Mark output as initialized.
Only set Tag_CPU_name and Tag_ABI_PCS_R9_use if input attribute
is present.
2006-11-27 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_special_sections): Add
2006-11-24 H.J. Lu <>
(rewrite_elf_program_header): Don't preserve segment physical
address in the output segment if the first section in the
corresponding input segment is removed.
2006-11-22 Alan Modra <>
* pef.c (bfd_pef_make_empty_symbol): Delete function. Define instead.
* xsym.c (bfd_sym_make_empty_symbol): Likewise.
* xsym.h (bfd_sym_make_empty_symbol): Delete.
2006-11-21 Greg McGary <>
* elf32-ppc.c (ppc_elf_relocate_section): Fixup D field
at proper offset in little-endian mode.
* elf64-ppc.c (ppc_elf_relocate_section): Likewise.
2006-11-21 Jakub Jelinek <>
* elf-eh-frame.c (struct cie): New type.
(cie_compare): Removed.
(cie_eq, cie_hash, cie_compute_hash): New functions.
(_bfd_elf_discard_section_eh_frame): Rewrite not to rely on FDEs
pointing only to last CIE and allow merging of any duplicate CIEs,
not just duplicate consecutive CIEs.
(_bfd_elf_discard_section_eh_frame_hdr): Delete cies hash table.
* elf-bfd.h (struct cie_header, struct cie): Removed.
(struct eh_frame_sec_info): Remove alloced field.
(struct eh_frame_hdr_info): Remove last_cie, last_cie_sec
and last_cie_inf fields. Add cies field.
2006-11-20 Alan Modra <>
* bfd-in.h (struct stat): Don't typedef.
* bfdio.c (bfd_get_size): Return a file_ptr.
* cisco-core.c (cisco_core_file_validate): Use bfd_size_type for nread.
* mmo.c (mmo_scan): Use file_ptr for curpos.
* trad-core.c (trad_unix_core): Don't cast statbuf.st_size to
unsigned long.
* bfd-in2.h: Regenerate.
2006-11-20 Alan Modra <>
PR 3532
* bfd-in.h (struct bfd_hash_table): Reorganize. Add "frozen".
* hash.c (bfd_hash_table_init_n): Init frozen.
(bfd_hash_lookup): Don't grow if frozen.
(bfd_hash_traverse): Freeze hash table during traversal.
* bfd-in2.h: Regenerate.
2006-11-18 Alan Modra <>
* elflink.c (_bfd_elf_check_kept_section): Test for kept group
section. Save result of checks in kept_section.
(_bfd_elf_section_already_linked): Tidy. Correct comments.
Ignore all group member sections. Handle special matching of
single-member groups against linkonce sections via their group
section. When such a match is found, set kept_section to the
group member section rather than to the group.
2006-11-14 Phil Lello <>
* peXXigen.c: Updates for PE/COFF V8.0, and clarification
(dir_names): Added CLR Runtime Header to dir_names[].
(_bfd_XX_print_private_bfd_data_common): Added EFI_ROM and XBOX
subsystem names
(_bfd_XXi_swap_aouthdr_in, _bfd_XXi_swap_aouthdr_out)
(pe_print_idata, pe_print_edata)
(_bfd_XXi_final_link_postscript): Use #DEFINEs for index into
2006-11-13 Daniel Jacobowitz <>
* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
(bfd_elf32_arm_set_byteswap_code): New prototype.
* bfd-in2.h: Regenerate.
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Don't take
byteswap_code as an argument. Revert 2006-11-01 change.
(bfd_elf32_arm_set_byteswap_code): New.
(elf32_arm_size_dynamic_sections): Call
2006-11-10 Thiemo Seufer <>
* config.bfd (mips*el-sde-elf*, mips*-sde-elf*): Drop ECOFF support
for SDE configs.
2006-11-10 Nick Clifton <>
* config.bfd: Move previously obsoleted targets to the REMOVED
Add maxq-*-coff to the obsolete list.
2006-11-10 Pedro Alves <>
* pe-arm-wince.c (LOCAL_LABEL_PREFIX): Define as ".".
* pei-arm-wince.c (LOCAL_LABEL_PREFIX): Likewise.
* coff-arm.c (LOCAL_LABEL_PREFIX): Only define if not defined before.
2006-11-07 Daniel Jacobowitz <>
* elf32-arm.c (find_thumb_glue): Add ERROR_MESSAGE argument; set it
on error.
(find_arm_glue): Likewise.
(elf32_thumb_to_arm_stub, elf32_arm_create_thumb_stub)
(elf32_arm_to_thumb_stub, elf32_arm_final_link_relocate): Add
ERROR_MESSAGE argument and pass it through.
(elf32_arm_to_thumb_export_stub): Update.
(elf32_arm_relocate_section): Use ERROR_MESSAGE and reloc_dangerous.
2006-11-07 Alan Modra <>
* elf64-ppc.c (enum _ppc64_sec_type): New.
(struct _ppc64_elf_section_data): Move "t_symndx" into opd union,
and rename fields. Add sec_type and has_14bit_branch.
(struct ppc_link_hash_table): Remove has_14bit_branch.
(get_opd_info, get_tls_mask, ppc64_elf_edit_opd): Adjust.
(ppc64_elf_relocate_section): Likewise.
(ppc64_elf_check_relocs): Likewise. Set per-section has_14bit_branch.
(ppc64_elf_size_stubs): Don't set default group size here.
(group_sections): Instead do so here, and group sections using
their individual requirements.
2006-11-07 Alan Modra <>
* elf64-ppc.c (struct ppc64_elf_obj_tdata): Remove "has_dotsym"
and union.
(struct ppc_link_hash_entry): Add "next_dot_sym".
(struct ppc_link_hash_table): Add "dot_syms".
(link_hash_newfunc): Make list of syms starting with a dot.
(ppc_get_stub_entry, adjust_opd_syms): Adjust.
(ppc64_elf_add_symbol_hook): Don't set has_dotsym.
(struct add_symbol_adjust_data): Delete.
(add_symbol_adjust): Simplify params and return.
(ppc64_elf_check_directives): Just process the "dot_syms" lists,
not all syms.
2006-11-02 Daniel Jacobowitz <>
* libbfd-in.h (_bfd_clear_contents): New prototype.
* reloc.c (_bfd_clear_contents): New.
* libbfd.h: Regenerated.
* elf32-arm.c (elf32_arm_final_link_relocate): Use
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Set value to
zero for discarded symbols.
* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
2006-11-01 Thiemo Seufer <>
David Ung <>
* elf-bfd.h (local_call_stubs): New member.
* elfxx-mips.c (FN_STUB_P, CALL_STUB_P, CALL_FP_STUB_P): New macros.
(mips_elf_calculate_relocation): Handle local mips16 call stubs.
(mips16_stub_section_p): Rename from mips_elf_stub_section_p, use
the new stub macros.
(_bfd_mips_elf_check_relocs): Handle call stubs for code which
mixes mips16 and mips32 functions. Use mips16_stub_section_p. Mark
used stubs with SEC_KEEP. Use the new stub macros.
2006-11-01 Alan Modra <>
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Correct
check for PLT usage.
2006-11-01 Daniel Jacobowitz <>
* elfxx-mips.c (mips_elf_merge_gots): Always use maxcnt.
2006-10-31 Alan Modra <>
* elf.c (elfcore_write_note): Pad note descriptor to 4-byte
boundary. Tidy. Comment.
2006-10-30 H.J. Lu <>
PR ld/3111
* elf-bfd.h (elf_obj_tdata): Add symbuf.
(_bfd_elf_section_already_linked): Add struct bfd_link_info *.
(_bfd_elf_check_kept_section): Likewise.
(bfd_elf_match_symbols_in_sections): Likewise.
* elf.c (assign_section_numbers): Updated to add
struct bfd_link_info *.
(bfd_elf_match_symbols_in_sections): Updated. Cache symbol
buffer if info->reduce_memory_overheads is false.
* elflink.c (match_group_member): Updated to add
struct bfd_link_info *.
(_bfd_elf_check_kept_section): Likewise.
(elf_link_input_bfd): Likewise.
(_bfd_elf_section_already_linked): Likewise.
(bfd_elf_final_link): Free symbol buffer if
info->reduce_memory_overheads is false.
* libbfd-in.h (_bfd_nolink_section_already_linked): Add
struct bfd_link_info *.
(_bfd_generic_section_already_linked): Likewise.
* libbfd.h: Regenerated.
* linker.c (bfd_section_already_linked): Add
struct bfd_link_info *.
(_bfd_generic_section_already_linked): Likewise.
* targets.c (bfd_target): Add struct bfd_link_info * to
* bfd-in2.h: Regenerated.
2006-10-30 Alan Modra <>
* bfd.c (bfd_error_type): Add bfd_error_on_input.
(input_bfd, input_error): New static vars.
(bfd_set_error): Handle bfd_error_on_input.
(bfd_errmsg): Likewise.
(bfd_perror): Simplify.
* archive.c (_bfd_write_archive_contents): Report errors on input.
* bfd-in2.h: Regenerate.
2006-10-30 Alan Modra <>
* elf.c (elfcore_write_note): Pad to 4-byte boundary.
2006-10-28 Richard Sandiford <>
* elf32-mips.c (elf_mips_howto_table_rel): Add R_MIPS_GLOB_DAT.
* elfn32-mips.c (elf_mips_howto_table_rel): Likewise.
(elf_mips_howto_table_rela): Likewise.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
(mips_elf64_howto_table_rela): Likewise.
2006-10-26 H.J. Lu <>
* elf.c (_bfd_elf_init_private_section_data): Assert output
section ELF type instead of check if it is SHT_NULL. Copy
OS/PROC specific flags from input section to output section.
2006-10-27 Alan Modra <>
* section.c (SEC_KEEP): Update comment.
* bfd-in2.h: Regenerate.
* elflink.c (bfd_elf_gc_sections): Ignore SEC_EXCLUDE sections.
* merge.c (_bfd_merge_sections): Set SEC_KEEP on excluded sections.
* stabs.c (_bfd_discard_section_stabs): Likewise.
(_bfd_link_section_stabs): Likewise. Simplify abs_section check.
2006-10-26 Ben Elliston <>
* reloc.c (_bfd_relocate_contents): Remove explicit case 0.
* elf.c (bfd_section_from_shdr): Remove extraneous breaks.
* targets.c (find_target): Remove extraneous break.
2006-10-26 Ben Elliston <>
* coff-maxq.c (coff_maxq20_reloc): Remove unused variable `howto'.
(struct maxq_reloc_map): Unused; remove.
(maxq_reloc_map): Likewise.
(maxq_reloc_type_lookup): Remove loop over maxq_reloc_map.
2006-10-26 Ben Elliston <>
* elf.c (bfd_elf_set_dyn_lib_class): Change second argument type
from int to enum dynamic_lib_link_class lib_class.
* bfd-in.h (bfd_elf_set_dyn_lib_class): Likewise.
* bfd-in2.h: Regenerate.
2006-10-25 Alan Modra <>
Trevor Smigiel <>
Yukishige Shibata <>
Nobuhisa Fujinami <>
Takeaki Fukuoka <>
* cpu-spu.c: New file.
* elf32-spu.c: New file.
* elf32-spu.h: New file.
* archures.c: Add SPU support.
* config.bfd: Likewise.
* Likewise.
* reloc.c: Likewise.
* targets.c: Likewise.
* Likewise. Run "make dep-am".
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
* Regenerate.
* configure: Regenerate.
* po/ Regenerate.
2006-10-23 Alan Modra <>
* elf64-ppc.c (ppc64_elf_edit_opd): Clarify comment.
2006-10-23 Alan Modra <>
* elf32-score.c: Formatting.
(elf_backend_omit_section_dynsym): Define.
(score_elf_create_dynamic_relocation): Remove code copied from mips.
Don't use section syms in dynamic relocs. Remove unused param.
(score_elf_final_link_relocate): Remove unused param.
2006-10-23 Alan Modra <>
* linker.c (fix_syms): Choose best of previous and next
section based on section flags and vma.
2006-10-21 Kaz Kojima <>
* elf32-sh64.c (sh64_elf_merge_symbol_attribute): Do merging
only when the non visibility part of st_other is non-zero.
* elf64-sh64.c (sh64_elf64_merge_symbol_attribute): Likewise.
2006-10-20 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't extend
PT_DYNAMIC on GNU/Linux targets.
2006-10-20 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make the
size of .rel.dyn reflect the value of DT_RELSZ.
2006-10-20 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_additional_program_headers): Allocate
a PT_NULL header for dynamic objects.
(_bfd_mips_elf_modify_segment_map): Add it.
2006-10-19 Mei Ligang <>
* elf32-score.c (score_elf_rel_dyn_section): Replace
bfd_make_section with bfd_make_section_with_flags.
(_bfd_score_elf_create_dynamic_sections): Ditto.
(score_elf_create_got_section): Ditto.
(score_elf_final_link_relocate): Delete referrence to
2006-10-19 Richard Sandiford <>
* elfxx-mips.c (sort_dynamic_relocs): Sort relocations against the
same symbol by increasing r_offset.
(sort_dynamic_relocs_64): Likewise. Fix comparisons between very
large and very small symbol indexes.
2006-10-19 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Add DT_DEBUG
and DT_MIPS_RLD_MAP tags for position-independent executables.
Do not add DT_DEBUG to shared libraries for any MIPS target.
2006-10-18 H.J. Lu <>
PR ld/3290
* elflink.c (elf_link_add_object_symbols): Hide definitions in
debug sections.
2006-10-19 Alan Modra <>
* elf32-arm.c (bfd_elf32_arm_allocate_interworking_sect): Check,
don't set, glue section size.
(record_arm_to_thumb_glue): Set glue section size here.
(record_thumb_to_arm_glue): Likewise.
(bfd_elf32_arm_add_glue_sections_to_bfd): Formatting.
(bfd_elf32_arm_process_before_allocation): Ignore exluded sections.
2006-10-18 Roy Marples <>
* elf64-sparc.c: Add FreeBSD support.
(elf64_sparc_fbsd_post_process_headers): New function.
* targets.c (_bfd_target_vector): Add bfd_elf64_sparc_freebsd_vec.
* config.bfd (sparc64-*-freebsd*): Set targ_defvec to bfd_elf64_sparc_freebsd_vec.
* Add entry for bfd_elf64_sparc_freebsd_vec.
* configure: Regenerate.
2006-10-17 Mark Shinwell <>
* elf32-arm.c (elf32_arm_final_link_relocate): Add support for
R_ARM_THM_MOVT_BREL relocations.
2006-10-17 Mark Shinwell <>
* elf32-arm.c (elf32_arm_howto_table_1): Change offset for
R_THM_CALL to 25 and remove FIXME comment.
(using_thumb2): New function.
(elf32_arm_final_link_relocate): Cope with Thumb-2 BL encoding.
2006-10-17 Mark Shinwell <>
* elf32-arm.c (elf32_arm_final_link_relocate): Add cases
for R_ARM_ABS32_NOI and R_ARM_REL32_NOI.
(elf32_arm_gc_sweep_hook): Likewise.
(elf32_arm_check_relocs): Likewise.
(allocate_dynrelocs): Likewise.
2006-10-17 Alan Modra <>
* elf-bfd.h (struct elf_link_hash_table): Reorder. Add
text_index_section and data_index_section.
(struct elf_backend_data): Add elf_backend_init_index_section.
(_bfd_elf_init_1_index_section): Declare.
(_bfd_elf_init_2_index_sections): Declare.
* elfxx-target.h (elf_backend_init_index_section): Define.
(elfNN_bed): Init new field.
* elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
section and text_index_section plus data_index_section.
(_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
(_bfd_elf_init_1_index_section): New function.
(_bfd_elf_init_2_index_sections): New function.
(bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
(elf_link_input_bfd): When emitting relocs, use text_index_section
and data_index_section for removed sections.
* elf-m10300.c (elf_backend_omit_section_dynsym): Define.
* elf32-i386.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-xstormy16.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
and data_index_section sym for relocs against sections with no dynamic
section sym.
(elf_backend_init_index_section): Define.
* elf32-cris.c: Similarly.
* elf32-hppa.c: Similarly.
* elf32-i370.c: Similarly.
* elf32-m68k.c: Similarly.
* elf32-mips.c: Similarly.
* elf32-ppc.c: Similarly.
* elf32-s390.c: Similarly.
* elf32-sparc.c: Similarly.
* elf32-vax.c: Similarly.
* elf64-mips.c: Similarly.
* elf64-ppc.c: Similarly.
* elf64-s390.c: Similarly.
* elf64-sparc.c: Similarly.
* elf64-x86-64.c: Similarly.
* elfn32-mips.c: Similarly.
* elfxx-mips.c: Similarly.
* elfxx-sparc.c: Similarly.
* linker.c (fix_syms): Base symbols in removed sections on
previous section in preference to using absolute section.
2006-10-16 Andreas Schwab <>
* elfxx-ia64.c (addend_compare): Properly compute return value.
2006-10-15 H.J. Lu <>
PR ld/3314
* elf.c (assign_file_positions_for_non_load_sections): Don't
page align empty SHF_ALLOC sections.
2006-10-13 Jakub Jelinek <>
* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): Set
.plt sh_entsize to 0 if plt header size isn't multiple of
plt entry size or for 32-bit which adds a nop insn at the
end of the .plt section.
2006-10-12 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_action_discarded): New.
(elf_backend_action_discarded): Define.
2006-10-11 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_relocate_section): Return after
unresolvable relocation error.
(elf_xtensa_finish_dynamic_symbol): Set value of undefined, weak
symbols to zero.
2006-10-10 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Add DT_DEBUG
for PIE executables.
2006-10-03 Jakub Jelinek <>
* elf-bfd.h (struct eh_cie_fde): Add set_loc pointer.
* elf-eh-frame.c (skip_cfa_op): Fix handling of DW_CFA_advance_loc.
Handle DW_CFA_{remember,restore}_state, DW_CFA_GNU_window_save,
(skip_non_nops): Record number of DW_CFA_set_loc ops.
(_bfd_elf_discard_section_eh_frame): Require skip_non_nops recognizes
all ops. If there are any DW_CFA_set_loc ops and they are pcrel
or going to be pcrel, compute set_loc array.
(_bfd_elf_eh_frame_section_offset): If make_relative, kill relocations
against DW_CFA_set_loc operands.
(_bfd_elf_write_section_eh_frame): Handle DW_CFA_set_loc adjusting.
2006-10-02 Daniel Jacobowitz <>
* elflink.c (_bfd_elf_merge_symbol): Discard references to TLS
symbols from the --just-syms file.
2006-10-01 Alan Modra <>
* elf64-ppc.c (ppc64_elf_build_stubs): Test glink size for
existence of PLT.
2006-09-29 H.J. Lu <>
PR ld/3283
* elf64-x86-64.c (elf64_x86_64_relocate_section): Don't ignore
relocation overflow on branches to undefweaks.
2006-09-29 Alan Modra <>
* po/ Regenerate.
* po/ Regenerate.
2006-09-29 Danny Smith <>
PR 3276
* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Enable 16 byte
alignment for .data$, .rdata$ and .text$ sections so that sse
and sse2 code will work for linkonce sections too.
2006-09-28 Alan Modra <>
* elflink.c (_bfd_elf_gc_mark_hook): New function.
* elf-bfd.h (_bfd_elf_gc_mark_hook): Declare.
* elfxx-target.h (elf_backend_gc_mark_hook): Default to above.
* elf-m10300.c (mn10300_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
* elf32-arm.c (elf32_arm_gc_mark_hook): Likewise.
* elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
* elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
* elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
* elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
* elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
* elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
* elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
* elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
* elf32-score.c (_bfd_score_elf_gc_mark_hook): Likewise.
* elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
* elf32-vax.c (elf_vax_gc_mark_hook): Likewise.
* elf32-xtensa.c (elf_xtensa_gc_mark_hook): Likewise.
* elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
* elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
* elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
* elfxx-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Likewise.
* elf32-bfin.c (bfin_gc_mark_hook): Likewise.
(bfinfdpic_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define for elf32-bfinfdpic.
* elf32-d10v.c (elf32_d10v_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(elf32_d10v_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-fr30.c (fr30_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(fr30_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-frv.c (elf32_frv_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(elf32_frv_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-iq2000.c (iq2000_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(iq2000_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Use
(openrisc_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-v850.c (v850_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(v850_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Use
(xstormy16_elf_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf64-sh64.c (sh_elf64_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
(sh_elf64_gc_sweep_hook): Delete.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-avr.c (elf32_avr_gc_mark_hook): Delete.
(elf32_avr_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-cr16c.c (elf32_cr16c_gc_mark_hook): Delete.
(elf32_cr16c_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-crx.c (elf32_crx_gc_mark_hook): Delete.
(elf32_crx_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-h8300.c (elf32_h8_gc_mark_hook): Delete.
(elf32_h8_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-ip2k.c (ip2k_elf_gc_mark_hook): Delete.
(ip2k_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-m32c.c (m32c_elf_gc_mark_hook, m32c_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-m68hc11.c (elf_backend_gc_mark_hook): Don't define.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-m68hc12.c (elf_backend_gc_mark_hook): Don't define.
(elf_backend_gc_sweep_hook): Don't define.
* elf32-m68hc1x.c (elf32_m68hc11_gc_mark_hook): Delete.
(elf32_m68hc11_gc_sweep_hook): Delete.
* elf32-m68hc1x.h (elf32_m68hc11_gc_mark_hook): Delete.
(elf32_m68hc11_gc_sweep_hook): Delete.
* elf32-msp430.c (elf32_msp430_gc_mark_hook): Delete.
(elf32_msp430_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
* elf32-mt.c (mt_elf_gc_mark_hook, mt_elf_gc_sweep_hook): Delete.
(elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
2006-09-25 Pedro Alves <>
* bfd-in.h (CONST_STRNCPY) : Delete.
* bfd-in2.h : Regenerate.
* elflink.c (bfd_elf_gc_sections) : Use LITMEMCPY. Don't manually
calculate string lengths.
* nlmcode.h (nlm_swap_auxiliary_headers_in) : Use LITMEMCPY.
2006-09-26 H.J. Lu <>
PR ld/3223
PR ld/3267
* elf.c (assign_file_positions_for_non_load_sections): Don't
warn zero size allocated sections.
2006-09-27 Alan Modra <>
* elf32-score.c (_bfd_score_elf_relocate_section): Move assignment
to "name" so that compiler realizes it is never uninitialized.
Use bfd_elf_sym_name.
2006-09-26 H.J. Lu <>
PR binutils/3262
* elf.c (rewrite_elf_program_header): Use bfd_zalloc instead of
bfd_alloc to allocate segment map.
(copy_elf_program_header): Likewise.
2006-09-26 Mark Shinwell <>
Joseph Myers <>
Ian Lance Taylor <>
Ben Elliston <>
* archures.c: Add definition for bfd_mach_arm_iWMMXt2.
* cpu-arm.c (processors): Add bfd_mach_arm_iWMMXt2.
(arch_info_struct, bfd_arm_update_notes): Likewise.
(architectures): Likewise.
(bfd_arm_merge_machines): Check for iWMMXt2.
* bfd-in2.h: Rebuild.
2006-09-24 H.J. Lu <>
* configure: Regenerated.
2006-09-22 Alan Modra <>
* elfcode.h (elf_swap_symbol_in): Return bfd_boolean. Don't abort
on error.
* elf-bfd.h (elf_size_info <swap_symbol_in>): Adjust decl.
(bfd_elf32_swap_symbol_in, bfd_elf64_swap_symbol_in): Likewise.
* elf.c (bfd_elf_get_elf_syms): Test return of swap_symbol_in,
and report error.
* elf32-arm.c (elf32_arm_swap_symbol_in): Return bfd_boolean.
2006-09-20 Martin Schwidefsky <>
* elf32-s390.c (elf_s390_relocate_section): Remove check for code
section in LD to LE linker relaxation for R_390_TLS_LDO32.
* elf64-s390.c (elf_s390_relocate_section): Likewise for
2006-09-20 Kai Tietz <>
* Added new target-vectors x86_64coff_vec,
x86_64pe_vec, and x86_64pei_vec.
* configure: Regenerate.
* config.bfd: Adjusted x86_64 target architecture detection.
* bfd.c: Add for new target "coff-x86-64"
(bfd_get_sign_extend): Add target vector idents for pe-x86-64. and pei-x86-64.
* coff-x86_64.c: Add new file for x86_64 (AMD64) coff support.
* libpei.h: Adjustments for COFF_WITH_pex64.
* coffcode.h: Add for new target machine, architecture, signature, and internal
signature handler.
* Add new files to target-all and define make-rule for pex64igen.c
* Regenerate.
* pe-x86_64.c: Add for new target "pe-x86-64".
* pei-x86_64.c: Add for new target "pei-x86-64".
* peicode.h: Adjusts for new targets.
(coff_swap_filehdr_out): Set for this target to
(SIZEOF_IDATA4): Define it as 8 byte size for this target.
(SIZEOF_IDATA5): Define it as 8 byte size for this target.
(jump_table jtab): Add for AMD64MAGIC.
(pe_ILF_build_a_bfd): Adjusts for new size of SIZEOF_IDATA4 and SIZE_IDATA5.
(pe_ILF_object_p): Add coff image-file signature to internal
signature translation.
* peXXigen.c: Adjust proper include of target coff-header and
introduced target specific code
(COFF_WITH_pex64): New macro for this target.
(pe_print_idata): New dumping method for import section of PE+ files.
* targets.c: Add new target vectors declarations for x86_64 coff targets.
* coffcode.h: Support code to support the x86_64 PE magic number.
* coff-x86_64.c: New file.
2006-09-17 Hans-Peter Nilsson <>
* elf.c (special_sections_s): Revert last STRING_COMMA_LEN change
for .stabstr entry, explain why.
2006-09-17 Anton Blanchard <>
Alan Modra <>
* dwarf2.c (concat_filename): Apply DW_AT_comp_dir if dir table
entry isn't absolute.
2006-09-17 Mei Ligang <>
* cpu-score.c: New file.
* elf32-score.c: New file.
* config.bfd: Add Score target.
* Add Score files.
* Regenerate.
* archures.c: Add Score architecture.
* reloc.c: Add Score relocs.
* targets.c: Add Score target vectors.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* Add Score target.
* configure: Regenerate.
2006-09-16 Nick Clifton <>
Pedro Alves <>
* bfd-in.h (STRING_COMMA_LEN): New macro. Takes one constant
string as its argument and emits the string followed by a comma
and then the length of the string.
(CONST_STRNEQ): New macro. Checks to see if a variable string
has a constant string as its initial characters.
(CONST_STRNCPY): New macro. Copies a constant string to the start
of a variable string.
* bfd-in2.h: Regenerate.
* archive.c: Make use of the new macros.
* archive64.c: Likewise.
* bfd.c: Likewise.
* coff-ppc.c: Likewise.
* coff-stgo32.c: Likewise.
* coffcode.h: Likewise.
* cofflink.c: Likewise.
* cpu-i960.c: Likewise.
* dwarf2.c: Likewise.
* ecoff.c: Likewise.
* elf-m10300.c: Likewise.
* elf.c: Likewise.
* elf32-arm.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-iq2000.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc12.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-sh-symbian.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-vax.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-x86-64.c: Likewise.
* elflink.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-sparc.c: Likewise.
* hpux-core.c: Likewise.
* i386linux.c: Likewise.
* ieee.c: Likewise.
* libpei.h: Likewise.
* linker.c: Likewise.
* m68klinux.c: Likewise.
* mmo.c: Likewise.
* nlmcode.h: Likewise.
* osf-core.c: Likewise.
* pef.c: Likewise.
* som.c: Likewise.
* sparclinux.c: Likewise.
* vms-hdr.c: Likewise.
2006-09-14 Alan Modra <>
PR 3181
* elf.c (_bfd_elf_copy_private_header_data): Fix group members
that have had their SHT_GROUP section removed.
2006-09-12 H.J. Lu <>
PR ld/3197
* elflink.c (elf_link_output_extsym): Compute bucket only if
2006-09-10 H.J. Lu <>
PR binutils/3186
* elf.c (_bfd_elf_make_section_from_shdr): Correct length of
2006-09-08 Vladimir Prus <>
* elf32-arm.c (elf32_arm_swap_symbol_out): Remove
unconditional setting of low bit for Thumb symbol
mistakenly left behind after check for external
symbols was added. Fix comment typo.
2006-09-07 H.J. Lu <>
* elf-bfd.h (elf_link_hash_entry): Add a dynamic field.
(bfd_elf_link_mark_dynamic_symbol): New.
* elf32-i386.c (elf_i386_check_relocs): Replace info->symbolic
with SYMBOLIC_BIND (info, h).
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
(elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.
* elflink.c (bfd_elf_link_mark_dynamic_symbol): New.
(bfd_elf_record_link_assignment): Call
bfd_elf_link_mark_dynamic_symbol on new entry.
(_bfd_elf_merge_symbol): Likewise.
(_bfd_elf_export_symbol): Return if the symbol isn't exported.
(_bfd_elf_fix_symbol_flags): Replace info->symbolic with
SYMBOLIC_BIND (info, h).
(_bfd_elf_dynamic_symbol_p): Likewise.
(_bfd_elf_symbol_refs_local_p): Likewise.
(bfd_elf_size_dynamic_sections): Updated.
2006-09-05 Bibo Mao <>
PR binutils/3171
* coffcode.h (coff_write_object_contents): Set the optional
header magic number to PE32PMAGIC instead of ZMAGIC for ia64.
2006-09-04 Mark Shinwell <>
* elf32-arm.c (elf32_arm_howto_table_1): Adjust entries for
R_ARM_THM_ALU_PREL_11_0 and R_ARM_THM_PC12 relocations.
(elf32_arm_final_link_relocate): Handle R_ARM_THM_ALU_PREL_11_0
and R_ARM_THM_PC12 relocations.
2006-08-24 Bob Wilson <>
* elf32-xtensa.c (xtensa_get_property_section_name): Delete.
(xtensa_get_property_section): New.
(xtensa_read_table_entries): Use xtensa_get_property_section.
(relax_property_section, xtensa_get_property_predef_flags): Handle
group name suffixes in property section names.
(match_section_group): New.
2006-08-23 Frediano Ziglio <>
* archive.c (hpux_uid_gid_encode): Fix thinko decrementing "cnt"
2006-08-22 Daniel Jacobowitz <>
* elf32-arm.c (elf32_arm_copy_indirect_symbol): Only copy
plt_thumb_refcount from indirect symbols.
2006-08-22 Alan Modra <>
* elf32-ppc.c (ppc_elf_relocate_section): Correct GOT and PLT HA
reloc handling.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
2006-08-21 Mark Shinwell <>
* elf32-arm.c (elf32_arm_link_hash_table): Correct typo in
comment for target1_is_rel.
2006-08-21 Pedro Alves <>
* Add rules to build pe-arm-wince.lo
and pei-arm-wince.lo objects.
* Regenerate.
* pe-arm-wince.c: New file.
* pei-arm-wince.c: New file.
* pei-arm.c: Remove ARM_WINCE block.
* pe-arm.c: Remove ARM_WINCE block. Rename
bfd_arm_pe_get_bfd_for_interworking, and
bfd_arm_pe_process_before_allocation to
bfd_armpe_get_bfd_for_interworking, and
bfd_armpe_process_before_allocation. Move them before
including bfd.h.
* bfd.c: ARM wince bfd format names were renamed. Adjust.
* coff-arm.c [ARM_WINCE]: Adjust so Windows CE doesn't end up
with unexpected/conflicting relocs.
* targets.c: The arm-wince-pe target got its own new vector.
* config.bfd: Likewise.
* Likewise.
* configure: Regenerate.
2006-08-18 Paul Brook <>
* elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue.
(elf32_arm_link_hash_newfunc): Initialize export_glue.
(record_arm_to_thumb_glue): Return stub symbol.
(elf32_arm_create_thumb_stub): New function.
(elf32_arm_to_thumb_stub): Use it.
(elf32_arm_to_thumb_export_stub): New function.
(elf32_arm_begin_write_processing): New function.
(allocate_dynrelocs): Allocate Arm stubs.
(elf_backend_begin_write_processing): Define.
(elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED.
Call elf32_arm_begin_write_processing.
2006-08-17 Alan Modra <>
* elf64-ppc.c (create_linkage_sections): Align .glink to 8 bytes.
(ppc64_elf_build_stubs): Use new lazy linking stub.
2006-08-17 Alan Modra <>
* elf64-ppc.c (ppc64_elf_size_stubs): Ignore non-code sections.
2006-08-16 H.J. Lu <>
PR ld/3015
* elf.c (get_program_header_size): Add a PT_GNU_RELRO segment
only if there is a PT_DYNAMIC segment.
(_bfd_elf_map_sections_to_segments): Likewise.
(assign_file_positions_for_load_sections): Set PT_GNU_RELRO
segment alignment to 1.
2006-08-15 Thiemo Seufer <>
Nigel Stephens <>
* elf32-mips.c, elf64-mips.c, elfn32-mips.c
(elf_backend_merge_symbol_attribute): Define.
* elflink.c (elf_link_add_object_symbols): Merge only the ELF
visibility flags.
* elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
2006-08-15 Thiemo Seufer <>
Nigel Stephens <>
David Ung <>
* config.bfd: Add configurations for mips*el-sde-elf* and
2006-08-14 DJ Delorie <>
* elf-m10300.c (elf32_mn10300_link_hash_entry): Add value.
(elf32_mn10300_count_hash_table_entries): New.
(elf32_mn10300_list_hash_table_entries): New.
(sort_by_value): New.
(mn10300_elf_relax_section): Don't skip data sections; restrict
code-specific tests to code-specific areas so that potential
indirect calls can be detected. Check for multiple local symbols
at the same address and merge their flags.
(elf32_mn10300_link_hash_newfunc): Initialize value.
2006-08-14 Thiemo Seufer <>
* elfxx-mips.c (_bfd_mips_elf_symbol_processing,
_bfd_mips_elf_add_symbol_hook): Don't try to place small common TLS
symbols in .scommon.
2006-08-11 Thiemo Seufer <>
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Set
sh_entsize only when sgot was already initialized.
2006-08-08 DJ Delorie <>
* elf32-sh.c (sh_elf_relax_section): Allow for branches across
non-moving .align directives. Preserve any DIR32 offset when
converting bsr's to jsr's.
2006-08-08 Alan Modra <>
* elf64-ppc.c (ppc64_elf_build_stubs): Clear relbrlt reloc_count
after stubs have been built.
2006-08-07 Nick Clifton <>
* elf32-sh.c (vxworks_object_p): Only check for vxworks target
vectors if they are going to be created.
2006-08-07 Nick Clifton <>
* (bfd_elf32_shnbsd_vec): Fix typo.
* configure: Regenerate.
2006-08-07 Nick Clifton <>
* coff-arm.c (coff_arm_rtype_to_howto): Only check for ARM_SECREL
relocation types if the target is ARM_WINCE.
2006-08-05 Pedro Alves <>
* bfd.c (bfd_get_sign_extend_vma): Add cases for pe-arm-little
and pei-arm-little.
* coff-arm.c (coff_arm_rtype_to_howto) [COFF_WITH_PE]: Handle
(coff_arm_reloc_type_lookup): Map BFD_RELOC_32_SECREL to
* pei-arm.c [TARGET_UNDERSCORE]: Define for ARM_WINCE like in
2006-08-04 Marcelo Tosatti <>
* elflink.c (elf_gc_sweep): If info.print_gc_sections is true,
list removed sections to stderr.
2006-08-04 Richard Sandiford <>
Kazu Hirata <>
Phil Edwards <>
Nathan Sidwell <>
* config.bfd (sh-*-vxworks): Use bfd_elf32_shvxworks_vec and
* (bfd_elf32_sh64_vec): Add elf-vxworks.lo.
(bfd_elf32_sh64l_vec, bfd_elf32_sh64lin_vec): Likewise.
(bfd_elf32_sh64blin_vec, bfd_elf32_sh64lnbsd_vec): Likewise.
(bfd_elf32_sh64nbsd_vec, bfd_elf32_sh_vec): Likewise.
(bfd_elf32_shblin_vec, bfd_elf32_shl_vec): Likewise.
(bfd_elf32_shl_symbian_vec, bfd_elf32_shlin_vec): Likewise.
(bfd_elf32_shlnbsd_vec, bfd_elf32_shnbsd_vec): Likewise.
(bfd_elf32_shlvxworks_vec, bfd_elf32_shvxworks_vec): New stanzas.
* configure: Regenerate.
* Regenerate dependencies.
* Regenerate.
* elf-vxworks.c (elf_vxworks_gott_symbol_p): New function.
(elf_vxworks_add_symbol_hook): Use it.
(elf_vxworks_link_output_symbol_hook): Likewise. Use the hash
table entry to check for weak undefined symbols and to obtain
the original bfd.
(elf_vxworks_emit_relocs): Use target_index instead of this_idx.
* elf32-sh-relocs.h: New file, split from elf32-sh.c.
(R_SH_DIR32): Use SH_PARTIAL32 for the partial_inplace field,
SH_SRC_MASK32 for the src_mask field, and SH_ELF_RELOC for the
special_function field.
(R_SH_REL32): Use SH_PARTIAL32 and SH_SRC_MASK32 here too.
(R_SH_REL32, R_SH_TLS_GD_32, R_SH_TLS_LD_32): Likewise.
(R_SH_TLS_LDO_32, R_SH_TLS_IE_32, R_SH_TLS_LE_32): Likewise.
(R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT): Likewise.
(SH_PARTIAL32, SH_SRC_MASK32, SH_ELF_RELOC): Undefine at end of file.
* elf32-sh.c: Include elf32-vxworks.h.
(MINUS_ONE): Define.
(sh_elf_howto_table): Include elf32-sh-relocs.h with SH_PARTIAL32
set to TRUE, SH_SRC_MASK32 set to 0xffffffff, and SH_ELF_RELOC set
to sh_elf_reloc.
(sh_vxworks_howto_table): New variable. Include elf32-sh-relocs.h
with SH_PARTIAL32 set to FALSE, SH_SRC_MASK32 set to 0, and
SH_ELF_RELOC set to bfd_elf_generic_reloc.
(vxworks_object_p, get_howto_table): New functions.
(sh_elf_reloc_type_lookup): Fix typo. Use get_howto_table.
(sh_elf_info_to_howto): Use get_howto_table.
(sh_elf_relax_section): Honor the partial_inplace field of the
R_SH_DIR32 howto.
(sh_elf_relax_delete_bytes): Likewise.
(elf_sh_plt_info): New structure.
(PLT_ENTRY_SIZE): Replace both definitions with...
(ELF_PLT_ENTRY_SIZE): ...this new macro, with separate definitions for
(elf_sh_plt0_entry_be): Update sizes of both definitions accordingly.
(elf_sh_plt0_entry_le): Likewise.
(elf_sh_plt_entry_be, elf_sh_plt_entry_le): Likewise.
(elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le): Likewise.
(elf_sh_plts): New structure, with separate definitions for
(elf_sh_plt0_entry): Delete both definitions.
(elf_sh_plt_entry, elf_sh_pic_plt_entry): Likewise.
(elf_sh_sizeof_plt, elf_sh_plt_plt0_offset): Likewise.
(elf_sh_plt_temp_offset, elf_sh_plt_symbol_offset): Likewise.
(elf_sh_plt_reloc_offset): Likewise.
(movi_shori_putval): Delete in favor of...
(install_plt_field): ...this new function, with separate definitions
(get_plt_info): New function, with separate definitions
(elf_sh_plt0_linker_offset, elf_sh_plt0_gotid_offset): Delete.
(vxworks_sh_plt0_entry_be, vxworks_sh_plt0_entry_le): New constants.
(vxworks_sh_plt_entry_be, vxworks_sh_plt_entry_le): Likewise.
(vxworks_sh_pic_plt_entry_be, vxworks_sh_pic_plt_entry_le): Likewise.
(get_plt_index, get_plt_offset): New functions.
(elf_sh_link_hash_table): Add srelplt2, plt_info and vxworks_p fields.
(sh_elf_link_hash_table_create): Initialize them.
(sh_elf_create_dynamic_sections): Call
elf_vxworks_create_dynamic_sections for VxWorks.
(allocate_dynrelocs): Use htab->plt_info to get the size of PLT
entries. Allocate relocation entries in .rela.plt.unloaded if
generating a VxWorks executable.
(sh_elf_always_size_sections): New function.
(sh_elf_size_dynamic_sections): Extend .rela.plt handling to
(sh_elf_relocate_section): Use get_howto_table. Honor
partial_inplace when calculating the addend for dynamic
relocations. Use get_plt_index.
(sh_elf_finish_dynamic_symbol): Use get_plt_index, install_plt_field
and htab->plt_info. Fill in the bra .plt offset for VxWorks
executables. Populate .rela.plt.unloaded. Do not make
_GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
(sh_elf_finish_dynamic_sections): Use install_plt_field and
htab->plt_info. Handle cases where there is no special PLT header.
Populate the first relocation in .rela.plt.unloaded and fix up
the remaining entries.
(sh_elf_plt_sym_val): Use get_plt_info.
(elf_backend_always_size_sections): Define.
(TARGET_BIG_SYM, TARGET_BIG_NAME): Override for VxWorks.
(elf32_bed, elf_backend_want_plt_sym): Likewise.
(elf_symbol_leading_char, elf_backend_want_got_underscore): Likewise.
(elf_backend_grok_prstatus, elf_backend_grok_psinfo): Likewise.
(elf_backend_add_symbol_hook): Likewise.
(elf_backend_link_output_symbol_hook): Likewise.
(elf_backend_emit_relocs): Likewise.
(elf_backend_final_write_processing): Likewise.
* targets.c (bfd_elf32_shlvxworks_vec): Declare.
(bfd_elf32_shvxworks_vec): Likewise.
(_bfd_target_vector): Include bfd_elf32_shlvxworks_vec and
2006-08-02 Mark Kettenis <>
* (arm-*-openbsd*): Set COREFILE to netbsd-core.lo.
* configure: Regenerate.
2006-08-02 Petr Salinger <>
PR binutils/2983
* elf64-x86-64.c: Add FreeBSD support.
(elf64_x86_64_fbsd_post_process_headers): New function.
* targets.c (_bfd_target_vector): Add bfd_elf64_x86_64_freebsd_vec.
* config.bfd (x64_64-*-freebsd*): Add bfd_elf64_x86_64_freebsd_vec
to the targ_selvecs.
* Add entry for bfd_elf64_x86_64_freebsd_vec.
* configure: Regenerate.
2006-07-26 Andreas Schwab <>
* elfxx-ia64.c (elfNN_ia64_choose_gp): Use rawsize if set.
2006-07-26 Alan Modra <>
* elf.c (elf_modify_segment_map): Delete empty PT_LOAD segments.
* elf32-xtensa.c (elf_xtensa_modify_segment_map): Delete.
(define elf_backend_modify_segment_map): Don't define.
2006-07-25 Thiemo Seufer <>
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Allow
linking of objects for compatible machine types.
2006-07-25 Thiemo Seufer <>
* elfxx-mips.c (mips_elf_next_relocation): Tighten check to test
also for same symbol.
2006-07-25 Thiemo Seufer <>
* elfxx-mips.c (mips_elf_calculate_relocation): Remove magic constant.
2006-07-24 Michael Wetherell <>
* elf.c (bfd_section_from_shdr): Reject unrecognised OS-specific
sections only if the SHF_OS_NONCONFORMING flag is present.
2006-07-24 Nick Clifton <>
PR ld/2729
* peXXigen.c (_bfd_XXi_final_link_postscript): Check for the
existance of output sections before putting their entries into the
2006-07-20 Thiemo Seufer <>
* elf32-mips.c (mips16_jump_reloc): Remove function.
(elf_mips16_howto_table_rel): Use _bfd_mips_elf_generic_reloc
instead of mips16_jump_reloc.
* elf64_mips.c, wlfn32-mips.c (mips16_jump_reloc): Remove function.
(elf_mips16_howto_table_rel, elf_mips16_howto_table_rela): Use
_bfd_mips_elf_generic_reloc instead of mips16_jump_reloc.
2006-07-19 Alan Modra <>
* bfd-in.h (enum notice_asneeded_action): Define.
* bfd-in2.h: Regenerate.
* elflink.c (elf_link_add_object_symbols): Call linker "notice"
function with NULL name for as-needed handling.
2006-07-18 Paul Brook <>
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* reloc.c: Add BFD_RELOC_ARM_T32_ADD_IMM.
2006-07-18 Nick Clifton <>
* elfxx-mips.c (_bfd_mips_elf_common_definition): New function.
Consider SHN_MIPS_ACOMMON and SHN_MIPS_SCOMMON as being common
* elfxx-mips.h (_bfd_mips_elf_common_definition): Prototype.
2006-07-14 Jakub Jelinek <>
* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Fix cinfo.shift2 value.
2006-07-14 Mark Kettenis <>
* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Move declarations
to the start of a block.
2006-07-13 Nick Clifton <>
* coff-sh.c (_bfd_sh_align_load_span): Catch sh_insn_info()
returning a NULL value.
2006-07-12 H.J. Lu <>
PR ld/2884
* elflink.c (_bfd_elf_merge_symbol): Copy the symbol info from
the old versioned dynamic definition to the new one with
non-default visibility. Hide the symbol if it is hidden or
2006-07-12 Matthew R. Dempsky <>
* cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.
2006-07-10 Jakub Jelinek <>
* elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH.
(bfd_section_from_shdr, elf_fake_sections, assign_section_numbers):
(special_sections_g): Include .gnu.hash section.
(bfd_elf_gnu_hash): New function.
* elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes.
(struct elf_backend_data): Add elf_hash_symbol method.
* elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash
only if info->emit_hash, create .gnu.hash section if
(struct collect_gnu_hash_codes): New type.
(elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms,
_bfd_elf_hash_symbol): New functions.
(compute_bucket_count): Don't compute HASHCODES array, instead add
that and NSYMS as arguments. Use bed->s->sizeof_hash_entry
instead of bed->s->arch_size / 8. Fix .hash size estimation.
When not optimizing, use the number of hashed symbols rather than
(bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash,
and ADD DT_GNU_HASH if info->emit_gnu_hash.
(bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash,
adjust compute_bucket_count caller. Create and populate .gnu.hash
section if info->emit_gnu_hash.
(elf_link_output_extsym): Only populate .hash section if
finfo->hash_sec != NULL.
(bfd_elf_final_link): Adjust assertion. Handle DT_GNU_HASH.
* elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined.
(elfNN_bed): Add elf_backend_hash_symbol.
* elf64-x86-64.c (elf64_x86_64_hash_symbol): New function.
(elf_backend_hash_symbol): Define.
* elf32-i386.c (elf_i386_hash_symbol): New function.
(elf_backend_hash_symbol): Define.
2006-07-05 Nick Clifton <>
PR ld/2659
* cofflink.c (_bfd_coff_link_input_bfd): Fix selection of aux
entry when multiple definitions of a symbol are encountered.
2006-06-30 H.J. Lu <>
* elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax
instead of 2 nops.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
(elf64_x86_64_plt0_entry): Use nopl 0(%rax) instead of 4 nops.
2006-06-29 Jakub Jelinek <>
PR ld/2513
GOT_TLS_IE_MASK, elf_i386_check_relocs, allocate_dynrelocs): Revert
2006-04-08 changes.
(elf_i386_relocate_section): Likewise. For GD->IE transition
change subl into addl whenever tls_type is GOT_TLS_IE_POS.
2006-06-23 Alan Modra <>
PR ld/2754
* elf.c (bfd_elf_mkobject): Don't alloc if already done. Set
program_header_size to -1.
(_bfd_elf_map_sections_to_segments): Adjust program_header_size check.
(assign_file_positions_for_load_sections ): Likewise.
(_bfd_elf_sizeof_headers): Use saved program_header_size if
* elf32-arm.c (elf32_arm_mkobject): Call bfd_elf_mkobject, don't
alloc if already done.
* elf32-i386.c (elf_i386_mkobject): Likewise.
* elf32-ppc.c (ppc_elf_mkobject): Likewise.
* elf32-s390.c (elf_s390_mkobject): Likewise.
* elf32-sh.c (sh_elf_mkobject): Likewise.
* elf64-alpha.c (elf64_alpha_mkobject): Likewise.
* elf64-ppc.c (ppc64_elf_mkobject): Likewise.
* elf64-s390.c (elf_s390_mkobject): Likewise.
* elf64-x86-64.c (elf64_x86_64_mkobject): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_mkobject): Likewise.
2006-06-20 Jakub Jelinek <>
* elflink.c (elf_link_add_object_symbols): Don't create .tcommon
section for relocatable link.
2006-06-21 Alan Modra <>
* elf-bfd.h (struct elf_backend_data): Add
* elfxx-target.h (elf_backend_modify_program_headers): Define.
(elfNN_bed): Init new field.
* elf.c (elf_modify_segment_map): Remove comment.
(assign_file_positions_for_load_sections): Only call
elf_modify_segment_map for objcopy/strip.
(assign_file_positions_except_relocs): Call
* elf32-frv.c (elf32_frvfdpic_always_size_sections): Don't make
.stack section.
(elf32_frvfdpic_modify_segment_map): Delete.
(elf32_frvfdpic_modify_program_headers): New.
(elf_backend_modify_segment_map): Don't define.
(elf_backend_modify_program_headers): Define.
* elf32-bfin.c (elf32_bfinfdpic_always_size_sections): Don't make
.stack section.
(elf32_bfinfdpic_modify_segment_map): Delete.
(elf32_bfinfdpic_modify_program_headers): New.
(elf_backend_modify_segment_map): Don't define.
(elf_backend_modify_program_headers): Define.
* elfxx-ia64.c (elfNN_ia64_modify_program_headers): New function.
Split out from..
(elf_backend_modify_program_headers): Define.
2006-06-20 Jakub Jelinek <>
* bfd.c (bfd_record_phdr): Clear p_align and p_align_valid fields.
* elf.c (_bfd_elf_link_hash_table_init): Clear hplt field.
2006-06-20 Alan Modra <>
* elf-bfd.h: Formatting.
(_bfd_elf_map_sections_to_segments): Declare.
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame_hdr): Don't
clear program_header_size.
* elf.c (get_program_header_size): Move. Don't use or set saved
program_header_size here.
(elf_modify_segment_map): New function. Split out from..
(assign_file_positions_for_load_sections): Assert
header size is correct. Remove dead code.
(_bfd_elf_map_sections_to_segments): Rename from
map_sections_to_segments. Make global. Use get_program_header_size
when we need estimate of header size. Call elf_modify_segment_map.
Set program_header_size.
(print_segment_map): Delete.
(_bfd_elf_sizeof_headers): If segment_map available, get the
actual size.
* elf32-arm.c (elf32_arm_symbian_modify_segment_map): Make safe
for calling more than once.
* elf32-bfin.c (elf32_bfinfdpic_modify_segment_map): Likewise.
* elf32-frv.c (elf32_frvfdpic_modify_segment_map): Likewise.
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
* elf32-i370.c (elf_backend_add_symbol_hook): Delete.
(elf_backend_additional_program_headers): Delete.
(elf_backend_modify_segment_map): Delete.
* elf64-hppa.c (elf64_hppa_modify_segment_map): Convert to ISO C.
* elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
* doc/bfdint.texi: Delete SIZEOF_HEADERS difficulties.
2006-06-19 Vladimir Prus <>
* elf32-arm.c (elf32_arm_swap_symbol_out): Don't set low
bit for undefined symbols.
2006-06-19 Alan Modra <>
* elf-bfd.h (struct elf_backend_data): Add bfd_link_info pointer
(_bfd_elf_sizeof_headers): Replace bfd_boolean param with
bfd_link_info pointer.
* targets.c (struct bfd_target <_bfd_sizeof_headers>): Likewise.
* bfd.c (bfd_sizeof_headers): Tweak param name.
* aout-adobe.c (aout_adobe_sizeof_headers): Adjust.
* aoutx.h (NAME (aout, sizeof_headers)): Adjust.
* binary.c (binary_sizeof_headers): Adjust.
* bout.c (b_out_sizeof_headers): Adjust.
* coff-rs6000.c (_bfd_xcoff_sizeof_headers): Adjust.
* coff64-rs6000.c (xcoff64_sizeof_headers): Adjust.
* coffgen.c (coff_sizeof_headers): Adjust.
* ecoff.c (_bfd_ecoff_sizeof_headers): Adjust.
(ecoff_compute_section_file_positions): Adjust.
(_bfd_ecoff_write_object_contents): Adjust.
* elf.c (get_program_header_size, _bfd_elf_sizeof_headers): Adjust.
* elf32-arm.c (elf32_arm_additional_program_headers): Adjust.
* elf32-i370.c (elf_backend_additional_program_headers): Adjust.
* elf32-ppc.c (ppc_elf_additional_program_headers): Adjust.
* elf64-hppa.c (elf64_hppa_additional_program_headers): Adjust.
* elf64-x86-64.c (elf64_x86_64_additional_program_headers): Adjust.
* elfxx-ia64.c (elfNN_ia64_additional_program_headers): Adjust.
* elfxx-mips.c (_bfd_mips_elf_additional_program_headers): Adjust.
* elfxx-mips.h (_bfd_mips_elf_additional_program_headers): Adjust.
* i386msdos.c: Convert to ISO C.
(msdos_sizeof_headers): Adjust.
* i386os9k.c: Convert to ISO C.
(os9k_sizeof_headers): Adjust.
* ieee.c (ieee_sizeof_headers): Adjust.
* ihex.c (ihex_sizeof_headers): Adjust.
* libaout.h (NAME (aout, sizeof_headers)): Adjust.
* libbfd-in.h (_bfd_nolink_sizeof_headers): Adjust.
* libcoff-in.h (coff_sizeof_headers): Adjust.
* libecoff.h (_bfd_ecoff_sizeof_headers): Adjust.
* mach-o.c (bfd_mach_o_sizeof_headers): Adjust.
* mmo.c (mmo_sizeof_headers): Adjust.
* oasys.c (oasys_sizeof_headers): Adjust.
* pdp11.c (NAME (aout, sizeof_headers)): Adjust.
* pef.c (bfd_pef_sizeof_headers): Adjust.
* ppcboot.c (ppcboot_sizeof_headers): Adjust.
* som.c (som_sizeof_headers): Adjust.
* srec.c (srec_sizeof_headers): Adjust.
* tekhex.c (tekhex_sizeof_headers): Adjust.
* versados.c (versados_sizeof_headers): Adjust.
* vms.c (vms_sizeof_headers): Adjust.
* xcoff-target.h (_bfd_xcoff_sizeof_headers): Adjust.
* xsym.c (bfd_sym_sizeof_headers): Adjust.
* xsym.h (bfd_sym_sizeof_headers): Adjust.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
2006-06-15 Mark Shinwell <>
* bfd-in2.h: Regenerate.
* elf32-arm.c (R_ARM_ALU_PC_G0_NC, R_ARM_ALU_PC_G0,
R_ARM_LDC_SB_G2): New relocation types.
(R_ARM_PC13): Rename to AAELF name R_ARM_LDR_PC_G0 and
adjust HOWTO entry to be consistent with R_ARM_LDR_PC_G1
and friends.
(elf32_arm_howto_table_3): Delete; contents merged into
(elf32_arm_howto_from_type): Adjust correspondingly.
(elf32_arm_reloc_map): Extend with the above relocations.
(calculate_group_reloc_mask): New function.
(identify_add_or_sub): New function.
(elf32_arm_final_link_relocate): Support for the above
* reloc.c: Add enumeration entries for BFD_RELOC_ARM_...
codes to correspond to the above relocations.
2006-06-14 Richard Sandiford <>
* elf32-m68k.c (elf_m68k_plt_info): New structure.
(elf_m68k_plt0_entry): Add R_68K_PC32-style in-place addends.
(elf_m68k_plt_entry): Likewise.
(elf_m68k_plt_info): New table.
(CFV4E_PLT_ENTRY_SIZE): Rename to...
(CFV4E_FLAG): Delete.
(elf_cfv4e_plt0_entry): Rename to...
(elf_isab_plt0_entry): ...this. Adjust comments. Use (-6,%pc,%d0)
for the second instruction too.
(elf_cfv4e_plt_entry): Rename to...
(elf_isab_plt_entry): ...this. Adjust comments and use (-6,%pc,%d0).
(elf_isab_plt_info): New table.
(CPU32_FLAG): Delete.
(PLT_CPU32_ENTRY_SIZE): Rename to...
(CPU32_PLT_ENTRY_SIZE): ...this.
(elf_cpu32_plt0_entry): Update bounds accordingly. Add R_68K_PC32-
style in-place addends.
(elf_cpu32_plt_entry): Likewise.
(elf_cpu32_plt_info): New table.
(elf_m68k_link_hash_table): Add a plt_info field.
(elf_m68k_link_hash_table_create): Initialize it.
(elf_m68k_get_plt_info): New function.
(elf_m68k_always_size_sections): Likewise.
(elf_m68k_adjust_dynamic_symbol): Use the plt_info hash table field.
(elf_m68k_install_pc32): New function.
(elf_m68k_finish_dynamic_symbol): Factor code using plt_info and
(elf_m68k_finish_dynamic_sections): Likewise.
(elf_m68k_plt_sym_val): Use elf_m68k_get_plt_info.
(elf_backend_always_size_sections): Define.
2006-06-14 Alan Modra <>
* elflink.c (elf_link_add_object_symbols): Save and restore
struct bfd_hash_table table, size and count fields for
as-needed libs.
2006-06-12 Thiemo Seufer <>
* elf32-mips.c: Expand comment about ABI-mandated pagesize values.
(ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): define in a more obvious way.
* elf64-mips.c, elfn32-mips.c (ELF_MAXPAGESIZE): Fix value for IRIX6.
Delete old comments.
(ELF_COMMONPAGESIZE): Define in a more obvious way.
2006-06-12 Nick Clifton <>
PR binutils/2735
* elflink.c (elf_link_add_object_symbols): Fix the warning message
about mismatched alignments to allow for the case where the common
alignment has been deduced from the section alignment.
* bfd.c (_bfd_default_error_handler): Update comment to explain
why bfd and asection varargs are out of order. Explicitly catch
and abort on NULL bfd and asection arguments.
2006-06-11 Richard Sandiford <>
Thiemo Seufer <>
* elfxx-mips.c (mips_elf_link_hash_table): Add function_stub_size.
(STUB_ORI): New macro.
(STUB_LI16U): Fix formatting.
(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->function_stub_size
(count_section_dynsyms): New function, split out from
(_bfd_mips_elf_always_size_sections): Get a worst-case estimate
of the number of dynamic symbols needed and use it to set up
function_stub_size. Use function_stub_size rather than
MIPS_FUNCTION_STUB_SIZE to determine the size of the stub section.
Use 16-byte stubs for 0x10000 dynamic symbols.
(_bfd_mips_elf_size_dynamic_sections): Use htab->function_stub_size
instead of MIPS_FUNCTION_STUB_SIZE. Fix formatting.
(_bfd_mips_elf_finish_dynamic_symbol): Likewise. Change the
size of the stub buffer from MIPS_FUNCTION_STUB_MAX_SIZE to
MIPS_FUNCTION_STUB_BIG_SIZE. Tweak the check for unhandled dynindxes.
Use MIPS_FUNCTION_STUB_BIG_SIZE rather than a hard-coded 20.
Use STUB_ORI rather than STUB_LI16U for big stubs.
(_bfd_mips_elf_link_hash_table_create): Initialize function_stub_size.
(_bfd_mips_elf_final_link): Use count_section_dynsyms.
2006-06-09 David Ung <>
* bfd/elfxx-mips.c (mips_elf_calculate_relocation): Fix mode for stub
calling relocations.
2006-06-08 David Daney <>
* elfxx-mips.c (STUB_LI16): Removed.
(STUB_LUI): New macro.
(STUB_LI16U): Ditto.
(STUB_LI16S): Ditto.
(MIPS_FUNCTION_STUB_SIZE): Rewrote to take info parameter.
(_bfd_mips_elf_adjust_dynamic_symbol): Pass info parameter to
(_bfd_mips_elf_always_size_sections): Ditto.
(_bfd_mips_elf_size_dynamic_sections): Ditto.
(_bfd_mips_elf_finish_dynamic_sections): Ditto.
(_bfd_mips_elf_finish_dynamic_symbol): Rewrote stub generation
to allow larger symbol table indexes.
2006-06-07 Joseph S. Myers <>
* po/Make-in (pdf, ps): New dummy targets.
2006-06-06 Alan Modra <>
* hash.c (bfd_hash_lookup): Correct stray line.
* elf.c (_bfd_elf_init_private_section_data): Comment typo.
(elfcore_grok_nto_status): Use long instead of pid_t.
(elfcore_grok_nto_regs, elfcore_grok_nto_note): Likewise.
2006-06-05 Daniel Jacobowitz <>
* po/Make-in (top_builddir): Define.
2006-06-05 Alan Modra <>
* Run "make dep-am".
* Regenerate.
* Regenerate.
2006-06-02 Alan Modra <>
H.J. Lu <>
PR ld/2723
* elflink.c (bfd_elf_final_link): Don't output section symbols
for special ELF sections.
2006-06-01 Alan Modra <>
* stabs.c (_bfd_link_section_stabs): Use bfd_make_section*_with_flags
instead of bfd_make_section*.
* aix386-core.c: Likewise.
* aix5ppc-core.c: Likewise.
* aout-adobe.c: Likewise.
* aoutf1.h: Likewise.
* binary.c: Likewise.
* cisco-core.c: Likewise.
* coff-arm.c: Likewise.
* coff-h8300.c: Likewise.
* elf.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-m32c.c: Likewise.
* hppabsd-core.c: Likewise.
* hpux-core.c: Likewise.
* i386linux.c: Likewise.
* ieee.c: Likewise.
* ihex.c: Likewise.
* irix-core.c: Likewise.
* lynx-core.c: Likewise.
* m68klinux.c: Likewise.
* mach-o.c: Likewise.
* netbsd-core.c: Likewise.
* nlmcode.h: Likewise.
* opncls.c: Likewise.
* osf-core.c: Likewise.
* peXXigen.c: Likewise.
* ppcboot.c: Likewise.
* ptrace-core.c: Likewise.
* rs6000-core.c: Likewise.
* sco5-core.c: Likewise.
* sparclinux.c: Likewise.
* srec.c: Likewise.
* sunos.c: Likewise.
* trad-core.c: Likewise.
* xcofflink.c: Likewise.
* xsym.c: Likewise.
2006-05-31 Daniel Jacobowitz <>
* acinclude.m4: Include new gettext macros.
Manually substitute POFILES and GMOFILES.
*, aclocal.m4, configure, doc/ Regenerated.
2006-05-30 H.J. Lu <>
* bfd.c (bfd_emul_get_maxpagesize): New.
(bfd_elf_set_pagesize): Likewise.
(bfd_emul_set_maxpagesize): Likewise.
(bfd_emul_get_commonpagesize): Likewise.
(bfd_emul_set_commonpagesize): Likewise.
* bfd-in2.h: Regenerated.
* elf-bfd.h (elf_backend_data): Add commonpagesize.
(xvec_get_elf_backend_data): New.
(get_elf_backend_data): Use xvec_get_elf_backend_data.
* elf32-arm.c (elf32_arm_vxworks_bed): Remove const.
* elfxx-target.h (elfNN_bed): Likewise.
* elf32-arm.c (ELF_COMMONPAGESIZE): Defined.
* elf32-mips.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-ppc.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sh.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sh64.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sparc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-alpha.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-ppc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-sparc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-x86-64.c (ELF_COMMONPAGESIZE): Likewise.
* elfn32-mips.c (ELF_COMMONPAGESIZE): Likewise.
* elfxx-ia64.c (ELF_COMMONPAGESIZE): Likewise.
* elfxx-target.h (ELF_COMMONPAGESIZE): Define if not defined.
(elfNN_bed): Initialize commonpagesize with ELF_COMMONPAGESIZE.
* targets.c (bfd_find_target): Support NULL abfd.
2006-05-30 Nick Clifton <>
* po/es.po: Updated Spanish translation.
2006-05-27 Alan Modra <>
H.J. Lu <>
* elf.c (assign_file_positions_for_load_sections): Retrieve
maxpagesize from m->p_align if it is valid. Set p_vaddr,
p_paddr and p_align earlier. Revert 2006-05-19 change to p_align.
(copy_elf_program_header): Copy p_align. Set p_align_valid.
2006-05-26 H.J. Lu <>
* elf64-x86-64.c (ELF_MINPAGESIZE): Changed to 0x1000.
2006-05-25 H.J. Lu <>
* elf64-x86-64.c (ELF_MINPAGESIZE): Set to 0x100000.
2006-05-25 H.J. Lu <>
* elf64-x86-64.c (ELF_MAXPAGESIZE): Updated to 0x200000.
2006-05-26 Alan Modra <>
* elf.c (sym_is_global): Return a bfd_boolean.
(ignore_section_sym): New function.
(elf_map_symbols): Use ignore_section_sym to discard some syms.
(_bfd_elf_symbol_from_bfd_symbol): Ensure section belongs to
bfd before using elf_section_syms.
2006-05-25 H.J. Lu <>
* config.bfd: (sh-*-linux*): Treat as 64bit target.
(sh*l*-*-netbsdelf*): Likewise.
(sh-*-netbsdelf*): Likewise.
(shl*-*-elf*): Likewise.
(sh[1234]l*-*-elf*): Likewise.
(sh3el*-*-elf*): Likewise.
(shl*-*-kaos*): Likewise.
(sh-*-elf*): Likewise.
(sh[1234]*-elf*): Likewise.
(sh-*-rtems*): Likewise.
(sh-*-kaos*): Likewise.
2006-05-24 H.J. Lu <>
PR ld/1485
* config.bfd: Set want64 to true if 64bit bfd is used.
(sh-*-linux*): Use targ64_selvecs for 64bit targets.
(sh*l*-*-netbsdelf*): Likewise.
(sh-*-netbsdelf*): Likewise.
(shl*-*-elf*): Likewise.
(sh[1234]l*-*-elf*): Likewise.
(sh3el*-*-elf*): Likewise.
(shl*-*-kaos*): Likewise.
(sh-*-elf*): Likewise.
(sh[1234]*-elf*): Likewise.
(sh-*-rtems*): Likewise.
(sh-*-kaos*): Likewise.
2006-05-24 Paul Brook <>
* elf-bfd.h (elf_backend_data): Add elf_backend_output_arch_local_syms
* elf32-arm.c (output_arch_syminfo): Define.
(elf32_arm_ouput_plt_map_sym, elf32_arm_output_plt_map,
elf32_arm_output_arch_local_syms): New functions.
(elf_backend_output_arch_local_syms): Define.
* elflink.c (bfd_elf_final_link): Call
* elfxx-target.h (elf_backend_output_arch_local_syms): Provide default
(elfNN_bed): Add elf_backend_output_arch_local_syms.
2006-05-24 Paul Brook <>
* elf32-arm.c (put_arm_insn, put_thumb_insn): New functions.
(elf32_thumb_to_arm_stub, elf32_arm_to_thumb_stub,
elf32_arm_finish_dynamic_symbol): Use them.
2006-05-24 Carlos O'Donell <>
Randolph Chung <>
* elf-hppa.h (reloc_hppa_howto_table): Check bitfield for
TPREL21L/TPREL14R relocations. Handle LTOFF_TP14R relocations.
Add handling for TLS relocations.
(elf_hpp_reloc_final_type): Handle TLS relocs.
* elf32-hppa.c: Add authors for cleanup and TLS support.
(hppa_elf_local_got_tls_type, hh_name, eh_name): Define.
(elf32_hppa_link_hash_entry): Add tls_type.
(elf32_hppa_link_hash_table): Add tld_ldm_got.
(hppa_link_has_newfunc): Set tls_type.
(elf32_hppa_link_hash_table_create): Set tls_ldm_got refcount.
(hppa_stub_name): Use hh_name macro.
(elf32_hppa_copy_indirect_symbol): Copy TLS information.
(elf32_hppa_check_relocs): Call elf32_hppa_optimized_tls_reloc.
Handle TLS relocs.
(elf32_hppa_gc_sweep_hook): Likewise.
(allocate_dynrelocs): Handle TLS relocs.
(elf32_hppa_size_dynamic_sections): Count space required by TLS
relocs. Use hh_name macro.
(dtpoff_base): New function.
(tpoff): Likewise.
(elf32_hppa_optimized_tls_reloc): Likewise.
(final_link_relocate): Handle TLS relocs.
(elf32_hppa_relocate_section): Handle TLS relocs. Use eh_name
and hh_name macros.
(elf32_hppa_finish_dynamic_symbol): Setup TLS got entries. Use
hh_name and eh_name macros.
(elf32_hppa_reloc_type_clas): Handle TLS relocs.
2006-05-24 Bjoern Haase <>
* archures.c: Add bfd_mach_avr6.
* cpu-avr.c: Likewise.
New relocations.
* libbfd.h: Regenerate.
* bfd-in2.h:Regenerate.
* elf32-avr.h: New file. Protoypes for functions accessed from ld.
* elf32-avr.c: Add elf32-avr.h to include list.
(elf32_avr_stub_hash_entry): New function.
(elf32_avr_link_hash_table): New struct.
(avr_link_hash_table): Likewise.
(avr_stub_hash_entry): Likewise.
(avr_stub_hash_lookup): New function.
(stub_hash_newfunc): New function.
(elf32_avr_link_hash_table_create): New function.
(elf32_avr_link_hash_table_free): New function.
(avr_get_stub_addr): New function.
(debug_relax, debug_stubs): Add new global variables controlling
debugging printout to stdout.
(avr_pc_wrap_around): Change the type to bfd_vma.
(avr_replace_call_ret_sequences): Add a new variable controling
linkrelax optimizations.
(avr_stub_is_required_for_16_bit_reloc): New function.
Add linker hash table to parameter list. Use stub addr. if necessary.
Add linker hashtable to parameter list of avr_final_link_relocate.
(bfd_elf_avr_final_write_processing): Add support for bfd_mach_avr6.
(elf32_avr_object_p): Add support for E_AVR_MACH_AVR6.
Iterate over all sections of a bfd when adjusting relocs addends.
Evaluate avr_replace_call_ret_sequences and recalculate the size of
stub section.
(avr_stub_name): New function.
(avr_get_stub_entry): New function.
(avr_add_stub): New function.
(avr_build_one_stub): New function.
(avr_size_one_stub): New function.
(elf32_avr_setup_params): New function.
(elf32_avr_setup_section_lists): New function.
(get_local_syms): New function.
(elf32_avr_size_stubs): New function.
(bfd_elf32_bfd_link_hash_table_create): New function.
(bfd_elf32_bfd_link_hash_table_free): New function.
2006-05-23 H.J. Lu <>
PR ld/2655
PR ld/2657
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Properly
update CIE/FDE length. Don't pad to the section alignment.
2006-05-23 Jie Zhang <>
* elf32-bfin.c (bfinfdpic_relocate_section): Clear reloc for
deteted entries in .eh_frame section.
2006-05-23 Jie Zhang <>
* elf32-bfin.c (bfin_check_relocs): Use __GLOBAL_OFFSET_TABLE_
(bfin_relocate_section): Ditto.
(_bfin_create_got_section): Ditto.
(elf32_bfinfdpic_create_dynamic_sections): Use
(bfin_finish_dynamic_symbol): Use __DYNAMIC instead of _DYNAMIC.
2006-05-23 Alan Modra <>
* elf64-ppc.c (compare_symbols): Prefer strong dynamic global
function syms over other syms.
2006-05-22 Daniel Jacobowitz <>
* elflink.c (_bfd_elf_add_dynamic_entry): Remove DT_TEXTREL
(bfd_elf_final_link): Add a late DT_TEXTREL check.
* elfxx-mips.c (MIPS_ELF_READONLY_SECTION): Define.
(mips_elf_create_dynamic_relocation): Set DF_TEXTREL.
(_bfd_mips_elf_check_relocs): Delete MIPS_READONLY_SECTION.
(_bfd_mips_elf_size_dynamic_sections): Clear DF_TEXTREL after
creating DT_TEXTREL.
(_bfd_mips_elf_finish_dynamic_sections): Clear textrel markers
if no text relocations were generated.
2006-05-19 H.J. Lu <>
* elfxx-ia64.c (ELF_MAXPAGESIZE): Fix a typo in comment.
2006-05-19 Alan Modra <>
* elf.c (elf_fake_sections): Formatting.
(assign_file_positions_for_load_sections): Only add SEC_ALLOC
sections to p_memsz. Remove hack for PT_NOTE sections. Allow
section alignment to increase p_align for PT_LOAD.
(assign_file_positions_for_non_load_sections): Remove ARM BPABI
hack for PT_DYNAMIC. Instead, set p_filesz for all segments
other than PT_LOAD, and PT_NOTE in core.
2006-05-17 Alan Modra <>
* elf.c (assign_file_positions_for_segments): Split into..
(assign_file_positions_for_load_sections): ..this, and..
(assign_file_positions_for_non_load_sections): ..this new function,..
(assign_file_positions_except_relocs): ..writing program headers here.
2006-05-17 Alan Modra <>
* elflink.c (elf_gc_sweep): Don't specially keep non-alloc,
non-load sections if they have relocs.
2006-05-15 Paul Brook <>
* cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename ...
(bfd_is_arm_special_symbol_name): ... to this. Add type argument.
Check symbol name is of specified type.
* elf32-arm.c (elf32_arm_is_target_special_symbol,
arm_elf_find_function, elf32_arm_output_symbol_hook): Use
(bfd_is_arm_mapping_symbol_name): Remove prototype.
(bfd_is_arm_special_symbol_name): Add prototype.
* bfd-in2.h: Regenerate.
2006-05-15 David Heine <>
Bob Wilson <>
* elf32-xtensa.c (check_loop_aligned): Fix reversed check for
undefined opcode. Clean up assertions.
(narrow_instruction, widen_instruction): Remove "do_it" parameters.
Factor most of the code into separate functions....
(can_narrow_instruction, can_widen_instruction): New.
(prev_instr_is_a_loop): New.
(compute_ebb_proposed_actions): Combine error handling code for
decode errors. Replace call to insn_decode_len with inline code.
Use can_narrow_instruction and can_widen_instruction. Handle errors
from call to xtensa_opcode_is_loop.
(relax_section): Adjust calls to narrow_instruction and
2006-05-15 Alan Modra <>
PR 2658
* elf32-ppc.c (ppc_elf_relax_section): Don't segfault on non-pic
-shared link.
2006-05-11 Michael Matz <>
* elflink.c (match_group_member): Correctly iterate group
2006-05-11 Paul Brook <>
* elf32-arm.c (elf32_arm_reloc_map): Add MOVW and MOVT relocs.
(elf32_arm_final_link_relocate): Handle MOVW and MOVT relocs.
(elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
* reloc.c: Ditto.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
2006-05-11 Mike Bland <>
* elf.c (_bfd_elf_init_private_section_data): Don't change
section type if already set.
2006-05-10 Nick Clifton <>
PR ld/2607
* elfcode.h (valid_section_index_p): New function: Checks for a
valid section index. Allows indicies in the range SHN_LOPROC to
(elf_object_p): Use valid_section_index_p.
2006-05-11 Pedro Alves <>
* coff-arm.c (ARM_26D, ARM_32, ARM_RVA_32, ARM_SECTION,
ARM_SECREL): Mark WinCE versions of these relocs as partial
(coff_arm_relocate_section): Adjust addend for WinCE.
2006-05-10 Alan Modra <>
PR 2342
* elflink.c (_bfd_elf_default_action_discarded): Revert 2006-02-16.
2006-05-09 Nick Clifton <>
* coffcode.h (coff_write_relocs): Produce an error message if a an
out-of-range symbol index is detected in a reloc.
2006-05-09 Ben Elliston <>
* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Remove unused
local variable `dynobj'.
2006-05-05 Bjoern Haase <>
* elf32-avr.c (elf32_avr_relax_delete_bytes): Iterate over all
of the bfd's sections for the reloc-addend adjustments.
2006-05-05 Martin Schwidefsky <>
* elf32-s390.c (invalid_tls_insn): Call bfd_set_error.
(elf_s390_relocate_section): Add code to do the GD->LE and
LD->LE TLS linker optimizations if a brasl instruction is used
for the __tls_get_offset function call.
* elf64-s390.c (invalid_tls_insn): Call bfd_set_error.
2006-05-05 Alan Modra <>
* elf64-ppc.c (ppc64_elf_tls_optimize): Only optimize
R_PPC64_TPREL64 and R_PPC64_DTPMOD64 relocs when they are in
the .toc and referenced by a TLS code sequence.
(ppc64_elf_edit_toc): Cater for the unlikely situation that
.toc is the first section in a file.
2006-05-04 Andreas Schwab <>
* aoutf1.h (struct external_sparc_core): Declare c_regs as struct
regs instead of an array of int.
(struct external_solaris_bcp_core): Likewise.
(swapcore_sun3): Use offsetof instead of computing the offset
(swapcore_sparc): Likewise. Simplify reference to c_regs.
(swapcore_solaris_bcp): Likewise.
2006-05-04 Daniel Jacobowitz <>
* elfxx-mips.c (_bfd_mips_elf_hide_symbol): Adjust handling
for missing GOTs.
2006-05-04 Daniel Jacobowitz <>
* cpu-arm.c (bfd_is_arm_mapping_symbol_name): Accept more
mapping symbols.
2006-05-04 Ben Elliston <>
* coff-or32.c (bfd_section_from_shdr): Remove unused local
variable `ptr'.
* cofflink.c (process_embedded_commands): Remove unused local
variables `had_read' and `had_shared'.
* ecofflink.c (bfd_ecoff_debug_accumulate): Remove unused local
variable `fdr_adr'.
* ihex.c (ihex_read_section): Remove unused local variable `addr'.
2006-05-03 Alan Modra <>
* libbfd-in.h (_bfd_generic_new_section_hook): Declare.
* section.c (bfd_abs_symbol, bfd_com_symbol): Delete.
(bfd_und_symbol, bfd_ind_symbol): Delete.
(BFD_FAKE_SECTION): Remove SYM_PTR param, set symbol_ptr_ptr to
(STD_SECTION): Adjust.
(_bfd_generic_new_section_hook): New function, extracted from..
(bfd_make_section_old_way): Call new_section_hook for abs, com,
und and ind sections.
* elf.c (_bfd_elf_large_com_section): Adjust.
* aoutx.h (new_section_hook): Call _bfd_generic_new_section_hook.
* pdp11.c (new_section_hook): Likewise.
* coffcode.h (coff_new_section_hook): Likewise.
* ecoff.c (_bfd_ecoff_new_section_hook): Likewise.
* elf.c (_bfd_elf_new_section_hook): Likewise.
* vms.c (vms_new_section_hook): Likwise.
* elf32-arm.c (elf32_arm_new_section_hook): Check used_by_bfd isn't
already set.
* elf32-sh64.c (sh64_elf_new_section_hook): Likewise.
* elf32-xtensa.c (elf_xtensa_new_section_hook): Likewise.
* elf64-mmix.c (mmix_elf_new_section_hook): Likewise.
* elf64-ppc.c (ppc64_elf_new_section_hook): Likewise.
* elfxx-mips.c (_bfd_mips_elf_new_section_hook): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_new_section_hook): Likewise.
* ieee.c (ieee_new_section_hook): Likewise. Call
_bfd_generic_new_section_hook too.
* mmo.c (mmo_new_section_hook): Likewise.
* oasys.c (oasys_new_section_hook): Likewise.
* som.c (som_new_section_hook): Likewise.
* coff-w65.c (reloc_processing): Don't use bfd_abs_symbol.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
2006-05-03 Alan Modra <>
* hash.c (DEFAULT_SIZE): Revert last change.
(higher_prime_number): Correct test for no larger prime. Don't
abort on error, instead return 0. Depopulate primes[].
(bfd_hash_lookup): If we overflow size, refuse to grow table.
2006-05-02 Paul Brook <>
* elf32-arm.c (elf32_arm_final_link_relocate): Set thumb funciton bit
for R_ARM_REL32.
2006-05-02 Ben Elliston <>
* archive.c (bfd_generic_archive_p): Remove unused local variable
* dwarf2.c (decode_line_info): Remove unused local variable
* elfcode.h (elf_slurp_reloc_table_from_section): Remove unused
local variable `s'.
* tekhex.c (tekhex_write_object_contents): Remove unused local
variable `bytes_written'.
* aout-ns32k.c (MY_swap_std_reloc_out): Remove unused local
variable `r_addend'.
* elf32-dlx.c (dlx_rtype_to_howto): Remove breaks after returns.
* elfxx-mips.c (_bfd_elf_mips_mach): Remove breaks after returns.
(_bfd_ns32k_relocate_contents): Remove break after return.
* elf.c (bfd_section_from_shdr): Remove breaks after returns.
2006-05-02 Nick Clifton <>
* elf32-sh-symbian.c: Rename local define DEBUG to SYMBIAN_DEBUG
in order to avoid conflicts with the global DEBUG define.
2006-05-02 Alan Modra <>
* dwarf2.c: Formatting.
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Simplify
output section check.
* elf32-i370.c: Warning fixes inside #ifdef DEBUG.
* elf32-m32c.c: Similarly.
* elf32-ppc.c: Similarly.
* elf32-v850.c: Similarly.
* nlm32-sparc.c: Similarly.
* elfcode.h: Similarly.
(elf_symbol_flags): Delete.
* elflink.c (elf_link_input_bfd): Comment typo.
2006-05-01 DJ Delorie <>
* bfd-in.h (bfd_hash_table): Add count field.
* bfd-in2.h: Regenerate.
* hash.c (higher_prime_number): New.
(bfd_hash_table_inint_n): Init count field.
(bfd_hash_lookup): Grow table as needed.
2006-04-27 Kaz Kojima <>
PR binutils/2584
* tekhex.c (getvalue): Change return type to bfd_boolean and
add the new parameter. Return false if the unexpected character
is found.
(getsym): Likewise.
(first_phase): Change return type to bfd_boolean and return
false if the unexpected character is found. Replace abort
with returning false.
(pass_over): Change return type to bfd_boolean and the type of
the second argument to bfd_boolean (*) (bfd *, int, char *).
Return false if FUNC returns false.
(tekhex_object_p): Return NULL if pass_over fails.
2006-04-27 Alan Modra <>
* coff-rs6000.c (xcoff_write_archive_contents_old): Warning fix.
2006-04-26 H.J. Lu <>
PR binutils/2593
* elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
and flags if its BFD flags have been set.
(_bfd_elf_init_private_section_data): Don't copy the output ELF
section type from input if it has been set to something
2006-04-25 H.J. Lu <>
PR binutils/2467
* elf.c (_bfd_elf_close_and_cleanup): Check elf_tdata (abfd)
is NULL first.
* elf32-arm.c (elf32_arm_close_and_cleanup): Check if
abfd->sections is NULL.
(elf32_arm_bfd_free_cached_info): New.
(bfd_elf32_bfd_free_cached_info): Defined.
* elfxx-target.h (bfd_elfNN_bfd_free_cached_info): Default it
to _bfd_free_cached_info.
* libbfd-in.h (_bfd_free_cached_info): New.
* libbfd: Regenerated.
* opncls.c (_bfd_delete_bfd): Check if abfd->memory is NULL.
(_bfd_free_cached_info): New.
2006-04-21 Alan Modra <>
* elf.c (assign_file_positions_except_relocs): Move code setting
file position of non-loaded sections..
(assign_file_positions_for_segments): here.
2006-04-20 H.J. Lu <>
PR ld/2537
* elf.c (bfd_section_from_shdr): Allow sections reserved for
applications. Issue an error on sections we don't know how
to handle.
2006-04-19 Alan Modra <>
* Run "make dep-am".
* Regenerate.
2006-04-19 Alan Modra <>
* warning.m4 (--enable-werror): Format help message.
(--enable-build-warnings): Likewise.
* configure: Regenerate.
2006-04-18 Nick Clifton <>
PR 2257
* elfcode.h (elf_object_p): Allow files with corrupt e_shstrndx
fields to still be handled as ELF files.
2006-04-16 Daniel Jacobowitz <>
* po/ Regenerated.
2006-04-16 Daniel Jacobowitz <>
* Update version to 2.17.50.
* configure: Regenerated.
2006-04-14 David Heine <>
* elf32-xtensa.c (build_reloc_opcodes): New.
(compute_text_actions): Use it to decode opcodes outside inner loop.
(check_section_ebb_pcrels_fit): Add "reloc_opcodes" argument, and if
it is set, use it to get the opcodes for relocations.
(move_shared_literal): Adjust call to check_section_ebb_pcrels_fit.
2006-04-08 H.J. Lu <>
PR ld/2513
* elf32-i386.c (GOT_TLS_MASK): New macro for tls_type.
(GOT_TLS_IE_IE): Likewise.
(GOT_TLS_IE_GD): Likewise.
(GOT_TLS_IE_MASK): Likewise.
(elf_i386_check_relocs): For global symbols, set GOT_TLS_IE_GD
and GOT_TLS_IE_IE for R_386_TLS_GD and R_386_TLS_IE
(allocate_dynrelocs): If both GOT_TLS_IE_IE and GOT_TLS_IE_GD
are set, treat tls_type as GOT_TLS_IE_BOTH.
(elf_i386_relocate_section): Likewise.
2006-04-07 Randolph Chung <>
* elf64-hppa.c (elf64_hppa_grok_prstatus): New function.
(elf64_hppa_grok_psinfo): Likewise.
(elf_backend_grok_pstatus, elf_backend_grok_psinfo): Define.
2006-04-06 DJ Delorie <>
* elf32-m32c.c (m32c_elf_relocate_section): Generate a symbol for
each plt entry we create.
2006-04-06 Carlos O'Donell <>
* po/Make-in: Add install-html target.
* Rename docdir to bfddocdir. Add datarootdir, docdir
htmldir. Add install-html and install-html-recursive targets.
* Regenerate.
* AC_SUBST for datarootdir, docdir and htmldir.
* configure: Regenerate.
2006-04-06 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Skip unneeded passes
with the skip_relax_pass_0 and skip_relax_pass_1 bits in the
section structure.
2006-04-05 Bernd Schmidt <>
* elf32-bfin.c (bfinfdpic_relocs_info_hash): Sprinkle casts to
eliminate warnings.
2006-04-05 H.J. Lu <>
James E Wilson <>
PR ld/2442
* elfxx-ia64.c (elfNN_ia64_dyn_sym_info): Remove next.
(elfNN_ia64_local_hash_entry): Add count, sorted_count and
(elfNN_ia64_link_hash_entry): Likewise.
(elfNN_ia64_new_elf_hash_entry): Initialize count, sorted_count
and size.
(elfNN_ia64_hash_copy_indirect): Updated elfNN_ia64_dyn_sym_info
(elfNN_ia64_hash_hide_symbol): Likewise.
(elfNN_ia64_global_dyn_sym_thunk): Likewise.
(elfNN_ia64_local_dyn_sym_thunk): Likewise.
(elfNN_ia64_global_dyn_info_free): New function.
(elfNN_ia64_local_dyn_info_free): Likewise.
(elfNN_ia64_hash_table_free): Free local and global
(addend_compare): New function.
(sort_dyn_sym_info): Likewise.
(get_dyn_sym_info): Updated to use binary search for addend.
(elfNN_ia64_check_relocs): Scan relocations to create dynamic
relocation arrays first.
2006-04-05 Bernd Schmidt <>
* elf32-bfin.c (_bfin_create_got_section): Don't generate a _gp
2006-04-05 H.J. Lu <>
PR ld/2411
* elflink.c (check_dynsym): New.
(elf_link_output_extsym): Use it.
(bfd_elf_final_link): Likewise.
2006-04-05 H.J. Lu <>
PR ld/2404
* elflink.c (_bfd_elf_merge_symbol): Skip the default indirect
symbol from the dynamic definition with the default version if
its type and the type of existing regular definition mismatch.
2006-04-05 Richard Sandiford <>
Daniel Jacobowitz <>
* config.bfd (sparc-*-vxworks*): New stanza.
* (bfd_elf32_sparc_vxworks_vec): New stanza.
(bfd_elf32_sparc_vec, bfd_elf64_sparc_vec): Add elf-vxworks.lo.
* configure: Regenerate.
* elf32-sparc.c: Include elf-vxworks.h.
(elf32_sparc_vxworks_link_hash_table_create: New.
(elf32_sparc_vxworks_final_write_processing): New.
(TARGET_BIG_SYM): Override for VxWorks.
(bfd_elf32_bfd_link_hash_table_create): Likewise.
(elf_backend_want_got_plt, elf_backend_plt_readonly): Likewise.
(elf_backend_got_header_size, elf_backend_add_symbol_hook): Likewise.
(elf_backend_link_output_symbol_hook): Likewise.
(elf_backend_emit_relocs): Likewise.
(elf_backend_final_write_processing, elf32_bed): Likewise.
* elfxx-sparc.c: Include libiberty.h and elf-vxworks.h.
(sparc_vxworks_exec_plt0_entry, sparc_vxworks_exec_plt_entry): New.
(sparc_vxworks_shared_plt0_entry, sparc_vxworks_shared_plt_entry): New.
(_bfd_sparc_elf_link_hash_table_create): Don't initialize
build_plt_entry here.
(create_got_section): Initialize sgotplt for VxWorks.
(_bfd_sparc_elf_create_dynamic_sections): Initialize build_plt_entry,
plt_header_size and plt_entry_size, with new VxWorks-specific settings.
Call elf_vxworks_create_dynamic_sections for VxWorks.
(allocate_dynrelocs): Use plt_header_size and plt_entry_size.
Allocate room for .got.plt and .rela.plt.unloaded entries on VxWorks.
(_bfd_sparc_elf_size_dynamic_sections): Don't allocate a nop in .plt
for VxWorks. Check for the .got.plt section.
(sparc_vxworks_build_plt_entry): New function.
(_bfd_sparc_elf_finish_dynamic_symbol): Add handling of VxWorks PLTs.
absolute on VxWorks.
(sparc32_finish_dyn): Add special handling for DT_RELASZ
and DT_PLTGOT on VxWorks.
(sparc_vxworks_finish_exec_plt): New.
(sparc_vxworks_finish_shared_plt): New.
(_bfd_sparc_elf_finish_dynamic_sections): Call them.
Use plt_header_size and plt_entry_size.
* elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add is_vxworks,
srelplt2, sgotplt, plt_header_size and plt_entry_size fields.
* (elfxx-sparc.lo): Depend on elf-vxworks.h.
(elf32-sparc.lo): Likewise.
* Regenerate.
* targets.c (bfd_elf32_sparc_vxworks_vec): Declare.
(_bfd_target_vector): Add a pointer to it.
2006-03-30 Ben Elliston <>
PR ld/2267
* elflink.c (elf_fixup_link_order): Ensure `elfsec' is not a
special section number that exceeds the number of ELF sections
2006-03-27 Richard Sandiford <>
* elfxx-mips.c (mips_got_entry): Add more commentary.
(mips_elf_local_got_index): Use the hash table entry to record
the GOT index of forced-local symbols.
(mips_elf_initialize_tls_index): Rearrange code. Store the index
in either the hash table entry or the mips_got_entry, not both.
Add more commentary.
(mips_elf_multi_got): Make sure the g->next is nonnull when calling
2006-03-25 Bernd Schmidt <>
* elf32-bfin.c (bfd_const_reloc, bfd_oper_reloc, bfin_push_reloc,
RELOC_STACK_SIZE, reloc_stack, reloc_stack_tos, is_reloc_stack_empty,
reloc_stack_push, reloc_stack_pop, reloc_stack_operate,
bfin_areloc_howto_table): Delete. All
uses deleted as well.
(bfin_reloc_map): Delete all stack relocs.
(bfin_info_to_howto, bfin_bfd_reloc_type_lookup,
bfin_reloc_type_lookup): Don't support them.
(bfin_relocate_section): Don't try to handle them.
* config.bfd (bfin-*-*): Add bfd_elf32_bfinfdpic_vec.
* Likewise.
* configure: Regenerate.
* elf32-bfin.c: Include "elf/dwarf2.h" and "hashtab.h".
(BFIN_RELOC_MAX): Now 0x21.
(bfin_howto_table, bfin_reloc_map): Add FD-PIC relocs.
(bfd_elf32_bfinfdpic_vec): Declare.
(IS_FDPIC): New macro.
(struct bfinfdpic_elf_link_hash_table): New struct.
(bfinfdpic_hash_table, bfinfdpic_got_section,
bfinfdpic_gotrel_section, bfinfdpic_gotfixup_section,
bfinfdpic_plt_setion, bfinfdpic_pltrel_section,
bfinfdpic_relocs_info, bfinfdpic_got_initial_offset,
bfinfdpic_plt_initial_offset): Accessor macros for it.
(struct bfinfdpic_relocs_info): New struct.
(bfinfdpic_elf_link_hash_table_create, bfinfdpic_relocs_info_hash,
bfinfdpic_relocs_info_eq, bfinfdpics_relocs_info_find,
bfinfdpic_relocs_info_for_global, bfinfdpic_relocs_info_for_local,
bfinfdpic_pic_merge_early_relocs_info, _bfinfdpic_add_dyn_reloc,
_bfinfdpic_add_rofixup, _bfinfdpic_osec_to_segment,
_bfinfdpic_osec_readonly_p, bfinfdpic_relocate_section,
bfinfdpic_check_relocs, bfinfdpic_gc_sweep_hook,
_bfinfdpic_link_omit_section_dynsym, _bfin_create_got_section,
elf32_bfinfdpic_create_dynamic_sections, _bfinfdpic_get_fd_entry,
_bfinfdpic_compute_got_alloc_data, _bfinfdpic_get_got_entry,
_bfinfdpic_assign_got_entries, _bfinfdpic_assign_plt_entries,
elf32_bfin_object_p, bfin_elf_copy_private_bfd_data,
(struct _bfinfdpic_dynamic_got_info,
struct _bfinfdpic_dynamic_got_plt_info): New structs.
(elf32_bfin_print_private_bfd_data): Print PIC flags.
(elf32_bfin_merge_private_bfd_data): Extend to support FD-PIC.
elf_backend_got_header_size, bfd_elf32_bfd_link_hash_table_create,
elf_backend_always_size_sectinos, elf_backend_modify_segment_map,
elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
elf_backend_size_dynamic_sections, elf_backend_finish_dynamic_symbol,
elf_backend_finish_dynamic_sections, elf_backend_relocate_section,
elf_backend_can_make_relative_eh_frame, elf_backend_check_relocs,
elf_backend_can_make_ldsa_relative_eh_frame, elf_backend_may_use_rel_p,
elf_backend_may_use_rela_p, elf_backend_default_use_rela_p,
elf_backend_omit_section_dynsym): Redefine these macros and include
"elf32-target.h" again to create the elf32-bfinfdpic target.
* targets.c (bfd_elf32_bfinfdpic_vec): New bfd_target.
(_bfd_target_vector): Add it.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
2006-03-25 Richard Sandiford <>
* cpu-m68k.c (bfd_m68k_compatible): Treat ISA A+ and ISA B code as
incompatible. Likewise MAC and EMAC code.
* elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Use
bfd_get_compatible to set the new bfd architecture. Rely on it
to detect incompatibilities.
2006-03-23 Michael Matz <>
* reloc.c: Add BFD_RELOC_X86_64_GOT64, BFD_RELOC_X86_64_GOTPCREL64,
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
* elf64-x86-64.c (x86_64_elf_howto_table): Correct comment.
Add howtos for above relocs.
(x86_64_reloc_map): Add mappings for new relocs.
(elf64_x86_64_check_relocs): R_X86_64_GOT64, R_X86_64_GOTPCREL64,
R_X86_64_GOTPLT64 need a got entry. R_X86_64_GOTPLT64 also a PLT
entry. R_X86_64_GOTPC64 needs a .got section. R_X86_64_PLTOFF64
needs a PLT entry.
(elf64_x86_64_gc_sweep_hook): Reflect changes from
elf64_x86_64_check_relocs for the new relocs.
(elf64_x86_64_relocate_section): Handle new relocs.
2006-03-22 Bob Wilson <>
* elf32-xtensa.c (xtensa_read_table_entries): Remove assertion that
rel->r_addend is zero.
2006-03-22 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Fix type
of "loc".
2006-03-22 Richard Sandiford <>
Daniel Jacobowitz <>
Phil Edwards <>
Zack Weinberg <>
Mark Mitchell <>
Nathan Sidwell <>
* bfd-in2.h: Regenerate.
* config.bfd (mips*-*-vxworks*, mips*el-*-vxworks*): New stanzas.
* (bfd_elf32_bigmips_vxworks_vec): New stanza.
(bfd_elf32_littlemips_vxworks_vec): Likewise.
(bfd_elf32_bigmips_vec): Add elf-vxworks.lo.
(bfd_elf32_littlemips_vec): Likewise.
(bfd_elf32_nbigmips_vec): Likewise.
(bfd_elf32_nlittlemips_vec): Likewise.
(bfd_elf32_ntradbigmips_vec): Likewise.
(bfd_elf32_ntradlittlemips_vec): Likewise.
(bfd_elf32_tradbigmips_vec): Likewise.
(bfd_elf32_tradlittlemips_vec): Likewise.
(bfd_elf64_bigmips_vec): Likewise.
(bfd_elf64_littlemips_vec): Likewise.
(bfd_elf64_tradbigmips_vec): Likewise.
(bfd_elf64_tradlittlemips_vec): Likewise.
* elf32-mips.c: Include elf-vxworks.h.
(mips_info_to_howto_rel): Use elf_backend_mips_rtype_to_howto
instead of calling mips_elf32_rtype_to_howto directly.
(mips_vxworks_copy_howto_rela): New reloc howto.
(mips_vxworks_jump_slot_howto_rela): Likewise.
(mips_vxworks_bfd_reloc_type_lookup): New function.
(mips_vxworks_rtype_to_howto): Likewise.
(mips_vxworks_final_write_processing): Likewise.
(elf_backend_want_got_plt): Likewise.
(elf_backend_want_plt_sym): Likewise.
(elf_backend_got_symbol_offset): Likewise.
(elf_backend_want_dynbss): Likewise.
(elf_backend_may_use_rel_p): Likewise.
(elf_backend_may_use_rela_p): Likewise.
(elf_backend_default_use_rela_p): Likewise.
(elf_backend_got_header_size: Likewise.
(elf_backend_plt_readonly): Likewise.
(bfd_elf32_bfd_reloc_type_lookup): Likewise.
(elf_backend_mips_rtype_to_howto): Likewise.
(elf_backend_adjust_dynamic_symbol): Likewise.
(elf_backend_finish_dynamic_symbol): Likewise.
(bfd_elf32_bfd_link_hash_table_create): Likewise.
(elf_backend_add_symbol_hook): Likewise.
(elf_backend_link_output_symbol_hook): Likewise.
(elf_backend_emit_relocs): Likewise.
(elf_backend_final_write_processing: Likewise.
(elf_backend_additional_program_headers): Likewise.
(elf_backend_modify_segment_map): Likewise.
(elf_backend_symbol_processing): Likewise.
* elfxx-mips.c: Include elf-vxworks.h.
(mips_elf_link_hash_entry): Add is_relocation_target and
is_branch_target fields.
(mips_elf_link_hash_table): Add is_vxworks, srelbss, sdynbss, srelplt,
srelplt2, sgotplt, splt, plt_header_size and plt_entry_size fields.
(MIPS_RESERVED_GOTNO): Take a mips_elf_link_hash_table argument.
Return 3 for VxWorks.
(ELF_MIPS_GP_OFFSET): Change the argument from a bfd to a
mips_elf_link_hash_table. Return 0 for VxWorks.
(MIPS_ELF_GOT_MAX_SIZE): Change the argument from a bfd to a
mips_elf_link_hash_table. Update the call to ELF_MIPS_GP_OFFSET.
(mips_vxworks_exec_plt0_entry): New variable.
(mips_vxworks_exec_plt_entry): Likewise.
(mips_vxworks_shared_plt0_entry): Likewise.
(mips_vxworks_shared_plt_entry): Likewise.
(mips_elf_link_hash_newfunc): Initialize the new hash_entry fields.
(mips_elf_rel_dyn_section): Change the bfd argument to a
mips_elf_link_hash_table. Use MIPS_ELF_REL_DYN_NAME to get
the name of the section.
(mips_elf_initialize_tls_slots): Update the call to
(mips_elf_gotplt_index): New function.
(mips_elf_local_got_index): Add an input_section argument.
Update the call to mips_elf_create_local_got_entry.
(mips_elf_got_page): Likewise.
(mips_elf_got16_entry): Likewise.
(mips_elf_create_local_got_entry): Add bfd_link_info and input_section
arguments. Create dynamic relocations for each entry on VxWorks.
(mips_elf_merge_gots): Update the use of MIPS_ELF_GOT_MAX_SIZE.
(mips_elf_multi_got): Update the uses of MIPS_ELF_GOT_MAX_SIZE
(mips_elf_create_got_section): Update the uses of
MIPS_ELF_GOT_MAX_SIZE. Create .got.plt on VxWorks.
(is_gott_symbol): New function.
(mips_elf_calculate_relocation): Use a dynobj local variable.
Update the calls to mips_elf_local_got_index, mips_elf_got16_entry and
mips_elf_got_page_entry. Set G to the .got.plt entry when calculating
VxWorks R_MIPS_CALL* relocations. Calculate and use G for all GOT
relocations on VxWorks. Add dynamic relocations for references
to the VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols. Don't
create dynamic relocations for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64
in VxWorks executables.
(mips_elf_allocate_dynamic_relocations): Add a bfd_link_info argument.
Use MIPS_ELF_RELA_SIZE to calculate the size of a VxWorks entry.
Don't allocate a null entry on VxWorks.
(mips_elf_create_dynamic_relocation): Update the call to
mips_elf_rel_dyn_section. Use absolute rather than relative
relocations for VxWorks, and make them RELA rather than REL.
(_bfd_mips_elf_create_dynamic_sections): Don't make .dynamic
read-only on VxWorks. Update the call to mips_elf_rel_dyn_section.
Create the .plt, .rela.plt, .dynbss and .rela.bss sections on
VxWorks. Likewise create the _PROCEDURE_LINKAGE_TABLE symbol.
Call elf_vxworks_create_dynamic_sections for VxWorks and
initialize the plt_header_size and plt_entry_size fields.
(_bfd_mips_elf_check_relocs): Don't allow GOT relocations to be
used in VxWorks executables. Don't allocate dynamic relocations
for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 in VxWorks executables.
Set is_relocation_target for each symbol referenced by a relocation.
Allocate .rela.dyn entries for relocations against the special
VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols. Create GOT
entries for all VxWorks R_MIPS_GOT16 relocations. Don't allocate
a global GOT entry for symbols mentioned in VxWorks R_MIPS_CALL*,
R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 relocations. Update the calls
to mips_elf_rel_dyn_section and mips_elf_allocate_dynamic_relocations.
Set is_branch_target for symbols mentioned in R_MIPS_PC16 or R_MIPS_26
relocations. Don't set no_fn_stub on VxWorks.
(_bfd_mips_elf_adjust_dynamic_symbol): Update the call to
(_bfd_mips_vxworks_adjust_dynamic_symbol): New function.
(_bfd_mips_elf_always_size_sections): Do not allocate GOT page
entries for VxWorks, and do not create multiple GOTs.
(_bfd_mips_elf_size_dynamic_sections): Use MIPS_ELF_REL_DYN_NAME.
Handle .got specially for VxWorks. Update the uses of
MIPS_RESERVED_GOTNO and mips_elf_allocate_dynamic_relocations.
Check for sgotplt and splt. Allocate the .rel(a).dyn contents last,
once its final size is known. Set DF_TEXTREL for VxWorks. Add
tags on VxWorks. Do not add the MIPS-specific tags for VxWorks.
(_bfd_mips_vxworks_finish_dynamic_symbol): New function.
(mips_vxworks_finish_exec_plt): Likewise.
(mips_vxworks_finish_shared_plt): Likewise.
(_bfd_mips_elf_finish_dynamic_sections): Remove an unncessary call
to mips_elf_rel_dyn_section. Use a VxWorks-specific value of
and mips_elf_rel_dyn_section. Use a different GOT header for
VxWorks. Don't sort .rela.dyn on VxWorks. Finish the PLT on VxWorks.
(_bfd_mips_elf_link_hash_table_create): Initialize the new
mips_elf_link_hash_table fields.
(_bfd_mips_vxworks_link_hash_table_create): New function.
(_bfd_mips_elf_final_link): Set the GP value to _GLOBAL_OFFSET_TABLE_
on VxWorks. Update the call to ELF_MIPS_GP_OFFSET.
* elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Declare.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
(_bfd_mips_vxworks_link_hash_table_create): Likewise.
* libbfd.h: Regenerate.
* (elfxx-mips.lo): Depend on elf-vxworks.h.
(elf32-mips.lo): Likewise.
* Regenerate.
* targets.c (bfd_elf32_bigmips_vxworks_vec): Declare.
(bfd_elf32_littlemips_vxworks_vec): Likewise.
(_bfd_target_vector): Add entries for them.
2006-03-19 John David Anglin <>
* elf64-hppa.c (elf64_hppa_special_sections): Change flags for .tbss
(elf_backend_special_sections): Remove #undef.
2006-03-18 John David Anglin <>
* elf64-hppa.c (allocate_global_data_opd): Don't create an OPD entry
for undefined weak symbols.
2006-03-17 Daniel Jacobowitz <>
PR ld/2462
* elflink.c (bfd_elf_final_link): Remove
bed->elf_backend_emit_relocs from emit_relocs.
2006-03-17 Alexandre Oliva <>
* elf32-ppc.c (ppc_elf_relocate_section): Copy addend from
first relocation to the second when relaxing TLS GD to LE;
zero it out when relaxing to IE.
2006-03-17 Alan Modra <>
PR 2434
* elflink.c (elf_link_add_object_symbols): Save and restore
warning sym's linked sym.
2006-03-16 Alan Modra <>
PR 2434
* elflink.c (struct elf_smash_syms_data, elf_smash_syms): Delete.
(elf_link_add_object_symbols): Delete unnecessary locals. Rename
hash_table -> htab. Formatting. Save entire symbol table
before loading as-needed syms, and restore afterwards if lib not
needed. Use bfd_hash_allocate rather than bfd_alloc for sym
name. Free some buffers earlier.
* bfd-in.h (struct bfd_hash_table): Add entsize.
(bfd_hash_table_init, bfd_hash_table_init_n): Adjust prototype.
* elf-bfd.h (_bfd_elf_link_hash_table_init): Likewise
* hash.c (bfd_hash_table_init_n): Add entsize param, save to
hash table.
(bfd_hash_table_init): Add param, adjust calls.
* aoutx.h: Adjust all hash_table_init functions and calls.
* bfd.c: Likewise.
* coff-arm.c: Likewise.
* coff-h8300.c: Likewise.
* coff-ppc.c: Likewise.
* cofflink.c: Likewise.
* ecoff.c: Likewise.
* ecofflink.c: Likewise.
* elf-m10300.c: Likewise.
* elf-strtab.c: Likewise.
* elf.c: Likewise.
* elf32-arm.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-frv.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-vax.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-x86-64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-sparc.c: Likewise.
* i386linux.c: Likewise.
* libaout.h: Likewise.
* libbfd-in.h: Likewise.
* libcoff-in.h: Likewise.
* linker.c: Likewise.
* m68klinux.c: Likewise.
* merge.c: Likewise.
* opncls.c: Likewise.
* pdp11.c: Likewise.
* sparclinux.c: Likewise.
* stabs.c: Likewise.
* sunos.c: Likewise.
* vms.c: Likewise.
* xcofflink.c: Likewise.
* section.c (struct section_hash_entry): Move to..
* libbfd-in.h:
* Run "make dep-am"
* Regenerate.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
2006-03-16 Alan Modra <>
* elf32-ppc.c (ppc_elf_check_relocs): REL24 and REL14 relocs
against __GLOBAL_OFFSET_TABLE__ need never be dynamic. Tweak
last change to REL32 relocs so that they are counted as
possibly dynamic as per REL24 and REL14.
2006-03-16 Alan Modra <>
* elf32-ppc.c (ppc_elf_check_relocs): Don't fall into REL24
checks from REL32.
2006-03-15 Ben Elliston <>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Iterate over all
in_list elements, not just the first.
2006-03-14 Richard Sandiford <>
* elf32-mips.c (mips_elf_adjust_addend): New function, mostly split
out from...
(_bfd_mips_elf_relocate_section): Use it to adjust r_addend
for final links too.
2006-03-13 Richard Sandiford <>
* elfxx-mips.c (mips_elf_create_got_section): Initialize hgot.
2006-03-11 H.J. Lu <>
PR ld/2443
* dwarf2.c (concat_filename): Don't issue an error if file is 0.
2006-03-10 Paul Brook <>
* elf32-arm.c (INTERWORK_FLAG): Handle EABIv5.
(elf32_arm_print_private_bfd_data): Ditto.
2006-03-09 Paul Brook <>
* cpu-arm.c (bfd_is_arm_mapping_symbol_name): Recognise additional
mapping symbols.
2006-03-09 Khem Raj <>
* elf32-arm.c(elf32_arm_finish_dynamic_sections): Use unsigned
char type.
2006-03-08 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_choose_gp): Properly choose gp.
2006-03-07 Richard Sandiford <>
Daniel Jacobowitz <>
Zack Weinberg <>
Nathan Sidwell <>
Paul Brook <>
Ricardo Anguiano <>
Phil Edwards <>
* (bfd_elf32_bigarm_vec): Include elf-vxworks.lo.
(bfd_elf32_bigarm_symbian_vec): Likewise.
(bfd_elf32_bigarm_vxworks_vec): Likewise.
(bfd_elf32_littlearm_vec): Likewise.
(bfd_elf32_littlearm_symbian_vec): Likewise.
(bfd_elf32_littlearm_vxworks_vec): Likewise.
* configure: Regenerate.
* elf32-arm.c: Include libiberty.h and elf-vxworks.h.
(elf32_arm_vxworks_bed): Add forward declaration.
(elf32_arm_howto_table_1): Fix the masks for R_ASM_ABS12.
(elf32_arm_vxworks_exec_plt0_entry): New table.
(elf32_arm_vxworks_exec_plt_entry): Likewise.
(elf32_arm_vxworks_shared_plt_entry): Likewise.
(elf32_arm_link_hash_table): Add vxworks_p and srelplt2 fields.
(reloc_section_p): New function.
(create_got_section): Use RELOC_SECTION.
(elf32_arm_create_dynamic_sections): Likewise. Call
elf_vxworks_create_dynamic_sections for VxWorks targets.
Choose between the two possible values of plt_header_size
and plt_entry_size.
(elf32_arm_link_hash_table_create): Initialize vxworks_p and srelplt2.
(elf32_arm_abs12_reloc): New function.
(elf32_arm_final_link_relocate): Call it. Allow the creation of
dynamic R_ARM_ABS12 relocs on VxWorks. Use reloc_section_p,
r_addend fields of relocs. On rela targets, skip any code that
adjusts in-place addends. When using _bfd_link_final_relocate
to perform a final relocation, pass rel->r_addend as the addend
(elf32_arm_merge_private_bfd_data): If one of the bfds is a VxWorks
object, ignore flags that are not standard on VxWorks.
(elf32_arm_check_relocs): Allow the creation of dynamic R_ARM_ABS12
relocs on VxWorks. Use reloc_section_p.
(elf32_arm_adjust_dynamic_symbol): Use RELOC_SECTION and RELOC_SIZE.
(allocate_dynrelocs): Use RELOC_SIZE. Account for the size of
.rela.plt.unloaded relocs on VxWorks targets.
(elf32_arm_size_dynamic_sections): Use RELOC_SIZE. Check for
.rela.plt.unloaded as well as .rel(a).plt. Add DT_RELA* tags
instead of DT_REL* tags on RELA targets.
(elf32_arm_finish_dynamic_symbol): Use RELOC_SECTION, RELOC_SIZE
and SWAP_RELOC_OUT. Initialize r_addend fields. Handle VxWorks
PLT entries. Do not make _GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
(elf32_arm_finish_dynamic_sections): Use RELOC_SECTION, RELOC_SIZE
and SWAP_RELOC_OUT. Initialize r_addend fields. Handle DT_RELASZ
like DT_RELSZ. Handle the VxWorks form of initial PLT entry.
Correct the .rela.plt.unreloaded symbol indexes.
(elf32_arm_output_symbol_hook): Call the VxWorks version of this
hook on VxWorks targets.
(elf32_arm_vxworks_link_hash_table_create): Set vxworks_p to true.
Minor formatting tweak.
(elf32_arm_vxworks_final_write_processing): New function.
(elf_backend_add_symbol_hook): Override for VxWorks and reset
for Symbian.
(elf_backend_final_write_processing): Likewise.
(elf_backend_emit_relocs): Likewise.
(elf_backend_want_plt_sym): Likewise.
(elf_backend_may_use_rel_p): Minor formatting tweak.
(elf_backend_may_use_rela_p): Likewise.
(elf_backend_default_use_rela_p): Likewise.
(elf_backend_rela_normal): Likewise.
* (elf32-arm.lo): Depend on elf-vxworks.h.
2006-03-06 Nathan Sidwell <>
* archures.c (bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_b_nousp):
New. Adjust other variants.
(bfd_default_scan): Update.
* bfd-in2.h: Rebuilt.
* cpu-m68k.c: Adjust.
(bfd_m68k_compatible): New. Use it for architectures.
* elf32-m68k.c (elf32_m68k_object_p): Adjust.
(elf32_m68k_merge_private_bfd_data): Adjust. Correct isa-a/b
(elf32_m68k_print_private_bfd_data): Adjust.
* ieee.c (ieee_write_processor): Adjust.
2006-03-06 Alan Modra <>
* dwarf2.c: Formatting.
(add_line_info): Remove outer loop.
2006-03-05 H.J. Lu <>
Alan Modra <>
PR binutils/2338
* dwarf2.c (loadable_section): New struct.
(dwarf2_debug): Add loadable_section_count and
(new_line_sorts_after): New.
(add_line_info): Use new_line_sorts_after to compare line
(check_function_name): Removed.
(unset_sections): New.
(place_sections): New.
(_bfd_dwarf2_find_nearest_line): Updated. Call place_sections
and unset_sections on relocatable files.
(_bfd_dwarf2_find_line): Likewise.
2006-03-03 Nick Clifton <>
* cpu-avr.c: Update to ISO-C90 formatting.
* elf32-avr.c: Likewise.
2006-03-03 Bjoern Haase <>
* elf32-avr.c (avr_reloc_map): Insert BFD_RELOC_AVR_MS8_LDI
(bfd_elf_avr_final_write_processing): Set
(elf32_avr_relax_section): New function.
(elf32_avr_relax_delete_bytes): New function.
(elf32_avr_get_relocated_section_contents): New function.
(avr_pc_wrap_around): New function.
(avr_relative_distance_considering_wrap_around): New function.
(avr_final_link_relocate): Handle negative int8t_t immediate for R_AVR_LDI.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
2006-03-02 DJ Delorie <>
* elf32-m32c.c (m32c_offset_for_reloc): Fix local symbol
2006-03-02 Richard Sandiford <>
* elf32-ppc.c (is_ppc_elf_target): Return true if the target is
2006-03-02 Nick Clifton <>
* elf32-m32c.c (m32c_elf_relax_section): Initialise 'gap'.
2006-03-02 Richard Sandiford <>
* elf32-i386.c (elf_i386_create_dynamic_sections): Use
(elf_i386_size_dynamic_sections): Remove VxWorks GOT and PLT
symbol handling.
* elf32-ppc.c (ppc_elf_create_dynamic_sections): Use
(ppc_elf_size_dynamic_sections): Remove VxWorks GOT and PLT
symbol handling.
* elf-vxworks.c (elf_vxworks_create_dynamic_sections): New function.
* elf-vxworks.h (elf_vxworks_create_dynamic_sections): Declare.
2006-03-02 Richard Sandiford <>
* elf32-i386.c (elf_i386_vxworks_link_output_symbol_hook): Delete.
(elf_backend_link_output_symbol_hook): Use
elf_vxworks_link_output_symbol_hook instead.
* elf32-ppc.c (elf_i386_vxworks_link_output_symbol_hook): Delete.
(elf_backend_link_output_symbol_hook): Use
elf_vxworks_link_output_symbol_hook instead.
* elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Provide the
same interface as elf_backend_link_output_symbol_hook.
* elf-vxworks.h (elf_vxworks_link_output_symbol_hook): Update
prototype accordingly.
2006-03-02 Richard Sandiford <>
* elf32-ppc.c (ppc_elf_plt_type): New enumeration.
(ppc_elf_link_hash_table): Replace old_got and new_got with
plt_type and can_use_new_plt.
(ppc_elf_create_dynamic_sections): Add SEC_HAS_CONTENTS,
SEC_LOAD and SEC_READONLY to the VxWorks .plt flags.
(ppc_elf_check_relocs): Set can_use_new_plt instead of new_plt.
Move from plt_type == PLT_UNSET to PLT_OLD instead of setting old_plt.
(ppc_elf_select_plt_layout): Move from plt_type == PLT_UNSET to
either plt_type == PLT_OLD or plt_type == PLT_NEW. Assert that
this function should not be called for VxWorks targets.
(ppc_elf_tls_setup): Use plt_type instead of old_got.
(allocate_got): Likewise. Rearrange so that max_before_header
is only used for PLT_OLD and PLT_NEW.
(allocate_dynrelocs): Use plt_type instead of old_got and is_vxworks.
(ppc_elf_size_dynamic_sections): Likewise.
(ppc_elf_relax_section): Likewise.
(ppc_elf_relocate_section): Likewise.
(ppc_elf_finish_dynamic_symbol): Likewise.
(ppc_elf_vxworks_link_hash_table_create): Initialize plt_type.
2006-02-28 Richard Sandiford <>
* elf32-i386.c (elf_i386_link_hash_table): Add next_tls_desc_index.
(elf_i386_link_hash_table_create): Initialize it.
(elf_i386_compute_jump_table_size): Use it instead of
(allocate_dynrelocs): Likewise.
(elf_i386_size_dynamic_sections): Likewise.
(elf_i386_relocate_section): Likewise.
2006-02-27 Jakub Jelinek <>
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Handle S flag.
(_bfd_elf_write_section_eh_frame): Likewise.
2006-02-27 Carlos O'Donell <>
* po/Make-in: Add html target.
2006-02-27 Richard Sandiford <>
* elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_symbol): Use the
cached hgot entry to check for _GLOBAL_OFFSET_TABLE_.
* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Likewise.
* elf32-bfin.c (bfin_finish_dynamic_symbol): Likewise.
* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
* elf32-m32r.c (m32r_elf_finish_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_finish_dynamic_symbol): Likewise.
* elf32-sh.c (sh_elf_finish_dynamic_symbol): Likewise.
* elf32-vax.c (elf_vax_finish_dynamic_symbol): Likewise.
* elf32-xtensa.c (elf_xtensa_finish_dynamic_symbol): Likewise.
* elf64-sh64.c (sh64_elf64_finish_dynamic_symbol): Likewise.
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likewise.
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
* elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. Also use
the cached hplt entry to check for _PROCEDURE_LINKAGE_TABLE_.
* elf64-alpha.c (elf64_alpha_finish_dynamic_symbol): Likewise.
* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
* elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
2006-02-25 Richard Sandiford <>
* elf-bfd.h (elf_link_hash_table): Add hplt field.
* elflink.c (_bfd_elf_create_dynamic_sections): Initialize it.
* elf-m10300.c (_bfd_mn10300_elf_create_got_section): Likewise.
* elf32-frv.c (_frv_create_got_section): Likewise.
* elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise.
* elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
* elf64-alpha.c (elf64_alpha_create_dynamic_sections): Likewise.
* elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.
* elf32-i386.c (elf_i386_link_hash_table): Remove hgot and hplt.
(elf_i386_link_hash_table_create): Don't initialize them.
(elf_i386_size_dynamic_sections): Use the generic ELF hplt and
hgot fields.
(elf_i386_finish_dynamic_symbol): Likewise.
* elf32-ppc.c (ppc_elf_link_hash_table): Remove hplt.
(ppc_elf_size_dynamic_sections): Use the generic ELF hplt fields.
(ppc_elf_finish_dynamic_symbol): Likewise.
2006-02-24 DJ Delorie <>
* elf32-m32c.c (m32c_elf_howto_table): Add relaxation relocs.
(m32c_elf_relocate_section): Don't relocate them.
(compare_reloc): New.
(relax_reloc): Remove.
(m32c_offset_for_reloc): New.
(m16c_addr_encodings): New.
(m16c_jmpaddr_encodings): New.
(m32c_addr_encodings): New.
(m32c_elf_relax_section): Relax jumps and address displacements.
(m32c_elf_relax_delete_bytes): Adjust for internal syms. Fix up
short jumps.
* reloc.c: Add m32c relax relocs.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
2006-02-24 H.J. Lu <>
PR ld/2218
* elf-bfd.h (elf_backend_data): Add elf_backend_fixup_symbol.
(_bfd_elf_link_hash_fixup_symbol): New.
* elflink.c (_bfd_elf_link_hash_fixup_symbol): New.
(_bfd_elf_fix_symbol_flags): Call elf_backend_fixup_symbol if
it isn't NULL.
* elfxx-ia64.c (elf_backend_fixup_symbol): Defined.
* elfxx-target.h (elf_backend_fixup_symbol): New.
(elfNN_bed): Initialize elf_backend_fixup_symbol.
2006-02-23 H.J. Lu <>
* cpu-ia64-opc.c (ins_immu5b): New.
(ext_immu5b): Likewise.
(elf64_ia64_operands): Add IMMU5b.
2006-02-21 Alan Modra <>
PR ld/2218
* elf32-arm.c (allocate_dynrelocs): Ensure undef weak sym in pie
is dynamic.
* elf32-hppa.c (allocate_dynrelocs): Likewise.
* elf32-i386.c (allocate_dynrelocs): Likewise.
* elf32-s390.c (allocate_dynrelocs): Likewise.
* elf32-sh.c (allocate_dynrelocs): Likewise.
* elf64-s390.c (allocate_dynrelocs): Likewise.
* elf64-x86-64.c (allocate_dynrelocs): Likewise.
* elf32-m32r.c (allocate_dynrelocs): Likewise. Discard relocs
on undef weak with non-default visibility too.
* elfxx-sparc.c (allocate_dynrelocs): Ditto.
2006-02-21 Alan Modra <>
* bfd.c: (_bfd_default_error_handler): Don't call abort on
error, instead call _exit.
(_bfd_abort): Call _exit not xexit.
2006-02-17 Kevin Buettner <>
* elf32-frv.c (elf32_frv_grok_prstatus, elf32_frv_grok_psinfo):
New functions.
* elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.
2006-02-17 Shrirang Khisti <>
Anil Paranjape <>
Shilin Shakti <>
* Add xc16x related entry
* Regenerate
* archures.c: Add bfd_xc16x_arch
* bfd-in2.h: Regenerate
* config.bfd: Add xc16x-*-elf
* Add bfd_elf32_xc16x_vec
* configure: Regenerate.
* targets.c: Added xc16x related information
* cpu-xc16x.c: New file
* reloc.c: Add new relocations specific to xc16x:
* elf32-xc16x.c: New file.
2006-02-17 Alan Modra <>
* elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling.
* elf64-ppc.c (allocate_dynrelocs): Likewise.
2006-02-17 Alan Modra <>
PR ld/2218
* elf64-ppc.c (allocate_dynrelocs): Ensure undef weak sym is
(ppc64_elf_relocate_section): Check output reloc section size.
* elf32-ppc.c (allocate_dynrelocs): Simplify undef weak test.
2006-02-16 H.J. Lu <>
PR ld/2322
* elf.c (get_segment_type): New function.
(_bfd_elf_print_private_bfd_data): Use it.
(print_segment_map): New function.
(assign_file_positions_for_segments): Call print_segment_map
when there are not enough room for program headers.
2006-02-16 Nick Hudson <>
* config.bfd (mips*el-*-netbsd*, mips*-*-netbsd*): Use
traditional MIPS ELF targets.
2006-02-15 H.J. Lu <>
PR binutils/2338
* dwarf2.c (check_function_name): New function.
(_bfd_dwarf2_find_nearest_line): Use check_function_name to
check if function is correct.
2006-02-16 Alan Modra <>
* elflink.c (_bfd_elf_default_action_discarded): Return 0 for
debug sections.
(elf_link_input_bfd): Adjust comments.
2006-02-10 H.J. Lu <>
* elf.c (copy_private_bfd_data): Minor update.
2006-02-10 H.J. Lu <>
PR binutils/2258
* elf.c (copy_private_bfd_data): Renamed to ...
(rewrite_elf_program_header): This.
(copy_elf_program_header): New function.
(copy_private_bfd_data): Likewise.
2006-02-07 Nathan Sidwell <>
* archures.c (bfd_mach_mcf5200, bfd_mach_mcf5206e,
bfd_mach_mcf5307, bfd_mach_mcf5407, bfd_mach_mcf528x,
bfd_mach_mcfv4e, bfd_mach_mcf521x, bfd_mach_mcf5249,
bfd_mach_mcf547x, bfd_mach_mcf548x): Remove.
(bfd_mach_mcf_isa_a, bfd_mach_mcf_isa_a_div,
bfd_mach_mcf_isa_a_div_mac, bfd_mach_mcf_isa_a_div_emac,
bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac,
bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_aplus_usp,
bfd_mach_mcf_isa_aplus_usp_mac, bfd_mach_mcf_isa_aplus_usp_emac,
bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac, bfd_mach_mcf_isa_b_emac,
bfd_mach_mcf_isa_b_usp_float, bfd_mach_mcf_isa_b_usp_float_mac,
bfd_mach_mcf_isa_b_usp_float_emac): New.
(bfd_default_scan): Update coldfire mapping.
* bfd-in.h (bfd_m68k_mach_to_features,
bfd_m68k_features_to_mach): Declare.
* bfd-in2.h: Rebuilt.
* cpu-m68k.c (arch_info_struct): Add new coldfire machines,
adjust legacy names.
(m68k_arch_features): New.
bfd_m68k_features_to_mach): Define.
* elf32-m68k.c (elf32_m68k_object_p): New.
(elf32_m68k_merge_private_bfd_data): Merge the CF EF flags.
(elf32_m68k_print_private_bfd_data): Print the CF EF flags.
(elf_backend_object_p): Define.
* ieee.c (ieee_write_processor): Update coldfire machines.
* libbfd.h: Rebuilt.
2006-02-06 Steve Ellcey <>
* elfxx-ia64.c (elfNN_ia64_fake_sections): Set SHF_IA_64_HP_TLS
if SHF_TLS is set.
2006-02-05 Arnold Metselaar <>
* coff-z80.c (r_imm24): New howto.
(rtype2howto): New case R_IMM24.
(coff_z80_reloc_type_lookup): New case BFD_RELOC_24.
(extra_case): Use bfd_get_8 for R_IMM8, new case R_IMM24.
2006-02-04 Richard Sandiford <>
* elfxx-mips.c (mips_elf_initialize_tls_index): If a TLS symbol
has already been assigned a GOT index, copy that index to the
current hash table entry.
2006-02-01 Eric Botcazou <>
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
for call-to-undefweak reloc overflow.
2006-01-31 Eric Botcazou <>
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
for 32-bit relocs overflow.
2006-01-27 Paul Brook <>
* elf32-arm.c (elf32_arm_get_symbol_type): Allow STT_TLS thumb
2006-01-18 Alexandre Oliva <>
Introduce TLS descriptors for i386 and x86_64.
* libbfd.h, bfd-in2.h: Rebuilt.
* elf32-i386.c (elf_howto_table): New relocations.
(R_386_tls): Adjust.
(elf_i386_reloc_type_lookup): Map new relocations.
(struct elf_i386_link_hash_entry): Add tlsdesc_got field.
(struct elf_i386_obj_tdata): Add local_tlsdesc_gotent field.
(elf_i386_local_tlsdesc_gotent): New macro.
(struct elf_i386_link_hash_table): Add sgotplt_jump_table_size.
(elf_i386_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf_i386_link_hash_table_create): Set sgotplt_jump_table_size.
(elf_i386_tls_transition): Handle R_386_TLS_GOTDESC and
(elf_i386_check_relocs): Likewise. Allocate space for
(elf_i386_gc_sweep_hook): Handle R_386_TLS_GOTDESC and
(allocate_dynrelocs): Count function PLT relocations. Reserve
space for TLS descriptors and relocations.
(elf_i386_size_dynamic_sections): Reserve space for TLS
descriptors and relocations. Set up sgotplt_jump_table_size.
Don't zero reloc_count in srelplt.
(elf_i386_always_size_sections): New. Set up _TLS_MODULE_BASE_.
(elf_i386_relocate_section): Handle R_386_TLS_GOTDESC and
(elf_i386_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf_backend_always_size_sections): Define.
* elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_GOTPC32_TLSDESC,
(R_X86_64_standard): Adjust.
(x86_64_reloc_map): Map new relocs.
(elf64_x86_64_rtype_to_howto): New, split out of...
(elf64_x86_64_info_to_howto): ... this function, and...
(elf64_x86_64_reloc_type_lookup): ... use it to map elf_reloc_val.
(struct elf64_x86_64_link_hash_entry): Add tlsdesc_got field.
(struct elf64_x86_64_obj_tdata): Add local_tlsdesc_gotent field.
(elf64_x86_64_local_tlsdesc_gotent): New macro.
(struct elf64_x86_64_link_hash_table): Add tlsdesc_plt,
tlsdesc_got and sgotplt_jump_table_size fields.
(elf64_x86_64_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf64_x86_64_link_hash_table_create): Initialize new fields.
(elf64_x86_64_tls_transition): Handle R_X86_64_GOTPC32_TLSDESC and
(elf64_x86_64_check_relocs): Likewise. Allocate space for
(elf64_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPC32_TLSDESC and
(allocate_dynrelocs): Count function PLT relocations. Reserve
space for TLS descriptors and relocations.
(elf64_x86_64_size_dynamic_sections): Reserve space for TLS
descriptors and relocations. Set up sgotplt_jump_table_size,
tlsdesc_plt and tlsdesc_got. Make room for them. Don't zero
reloc_count in srelplt. Add dynamic entries for DT_TLSDESC_PLT
(elf64_x86_64_always_size_sections): New. Set up
(elf64_x86_64_relocate_section): Handle R_386_TLS_GOTDESC and
(elf64_x86_64_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf64_x86_64_finish_dynamic_sections): Set DT_TLSDESC_PLT and
DT_TLSDESC_GOT. Set up TLS descriptor lazy resolver PLT entry.
(elf_backend_always_size_sections): Define.
2006-01-17 H.J. Lu <>
PR binutils/2096
* dwarf2.c (comp_unit_contains_address): Update comment.
(_bfd_dwarf2_find_nearest_line): Use section's vma, instead of
lma. Return TRUE only if both comp_unit_contains_address and
comp_unit_find_nearest_line return TRUE.
(_bfd_dwarf2_find_line): Use section's vma, instead of lma.
2006-01-18 Alan Modra <>
* elf-bfd.h (struct elf_backend_data): Add gc_mark_dynamic_ref.
(bfd_elf_gc_mark_dynamic_ref_symbol): Declare.
* elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Rename from
elf_gc_mark_dynamic_ref_symbol. Make global.
(bfd_elf_gc_sections): Call bed->gc_mark_dynamic_ref.
* elfxx-target.h (elf_backend_gc_mark_dynamic_ref): Define.
(elfNN_bed): Init new field.
* elf64-ppc.c (elf_backend_gc_mark_dynamic_ref): Define.
(ppc64_elf_gc_mark_dynamic_ref): New function.
2006-01-17 Alan Modra <>
* elf64-ppc.c (ppc64_elf_gc_mark_hook): Don't hang forever in loop.
2006-01-17 Nick Clifton <>
PR binutils/2159
* elf.c (elfcore_write_pstatus): Add ATTRIBUTE_UNUSED to unused
2006-01-11 Nick Clifton <>
* elf32-arm.c (elf32_arm_output_symbol_hook): Install new entry
into the newly (re)allocated map array.
2006-01-09 Alexis Wilke <>
* peXXigen.c (tbl): Add comma after "HIGH3ADJ".
2006-01-01 Jakub Jelinek <>
* elf64-ppc.c (ppc64_elf_action_discarded): Return 0
for .toc1 section.
For older changes see ChangeLog-2005
Copyright (C) 2006 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never