blob: dc9879541a4419f011de08436aba63d45fa5b775 [file] [log] [blame]
2003-12-19 Kazuhiro Inaoka <>
Adfd m32r-linux and PIC support. Add new ABI that uses RELA.
* config.bfd (m32r*-*-linux*, m32r*le-*-linux*, m32r*le-*-*): Added.
* (bfd_elf32_m32rlin_vec, bfd_elf32_m32rlelin_vec,
bfd_elf32_m32rle_vec): Added
* configure: Regenerated.
* elf32-m32r.c (m32r_info_to_howto, m32r_elf_adjust_dynamic_symbol,
m32r_elf_size_dynamic_sections, m32r_elf_create_dynamic_sections,
m32r_elf_finish_dynamic_sections, m32r_elf_finish_dynamic_symbol,
allocate_dynrelocs, readonly_dynrelocs, m32r_elf_reloc_type_class,
m32r_elf_fake_sections): Added.
(m32r_elf_howto_table): Added
R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
(m32r_elf_relocate_section, m32r_elf_check_relocs): Changed for
New ABI.
* reloc.c: Add BFD_RELOC_M32R_GOT24, BFD_RELOC_M32R_26_PLTREL,
* targets.c (bfd_elf32_m32rlin_vec, bfd_elf32_m32rlelin_vec,
bfd_elf32_m32rle_vec): Added.
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
2003-12-19 Danny Smith <>
* coffcode.h (styp_to_sec_flags): Don't treat .reloc section
2003-12-18 Richard Sandiford <>
* elf32-mips.c (elf_mips_howto_table_rel): Replace all uses of
mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc. Use
_bfd_mips_elf_hi16_reloc for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16,
_bfd_mips_elf_lo16_reloc for R_MIPS_LO16 and R_MIPS_GNU_REL_LO16,
and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16. Change rightshift
to 16 for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16.
(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
(_bfd_mips_elf32_gprel16_reloc): Remove special case.
(mips_elf_gprel32_reloc, mips32_64bit_reloc): Likewise.
* elf64-mips.c (mips_elf64_howto_table_rel): Replace all uses of
mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc. Use
_bfd_mips_elf_hi16_reloc for R_MIPS_HI16, _bfd_mips_elf_lo16_reloc
for R_MIPS_LO16 and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.
Change R_MIPS_HI16's rightshift to 16.
(mips_elf64_howto_table_rela): Replace all uses of
mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.
Use _bfd_mips_elf_generic_reloc for R_MIPS_GOT16 as well.
(mips_elf64_hi16_reloc, mips_elf64_got16_reloc): Delete.
(mips_elf64_shift6_reloc): Remove special case. Use
_bfd_mips_elf_generic_reloc instead of returning bfd_reloc_continue.
* elfn32-mips.c (prev_reloc_section): Delete.
(prev_reloc_address, prev_reloc_addend): Delete.
(elf_mips_howto_table_rel, elf_mips_howto_table_rela): As for
(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
(mips_elf_gprel16_reloc): Delete use of GET_RELOC_ADDEND.
(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
(mips16_jump_reloc, mips16_gprel_reloc): Likewise.
(mips_elf_shift6_reloc): Likewise. Delete use of SET_RELOC_ADDEND.
* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Use
_bfd_relocate_contents to install an in-place addend.
(mips_hi16): New structure.
(mips_hi16_list): Moved from elf32-mips.c.
(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_got16_reloc): New functions.
(_bfd_mips_elf_lo16_reloc, _bfd_mips_elf_generic_reloc): New functions.
(mips_elf_calculate_relocation): Assume addend is unshifted.
(_bfd_mips_elf_relocate_section): Don't apply the howto rightshift
on top of the usual high-part shift. Don't shift the addend right
before calling mips_elf_calculate_relocation.
* elfxx-mips.h (_bfd_mips_elf_hi16_reloc): Declare.
(_bfd_mips_elf_got16_reloc, _bfd_mips_elf_lo16_reloc): Declare.
(_bfd_mips_elf_generic_reloc): Declare.
2003-12-16 Eric Youngdale <>
Nick Clifton <>
* peicode.h (pe_ILF_build_a_bfd): Only skip one instance of each
prefix character, if they are present.
2003-12-15 Dmitry Semyonov <>
Nick Clifton <>
* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Ensure that correct flags
are set on known section types.
2003-12-12 Nick Clifton <>
* po/ro.po: Updated translation.
2003-12-12 Alan Modra <>
* elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Check for
NULL dyn_h.
2003-12-11 Nick Clifton <>
2003-12-08 Richard Sandiford <>
* elfxx-mips.h, elfxx-mips.c, cpu-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-08 Alan Modra <>
* elf-bfd.h (struct elf_backend_data): Remove "bfd *" and add
"elflink_hash_entry *" param to elf_backend_link_output_symbol_hook.
Add "elflink_hash_entry *" param to elf_backend_output_arch_syms.
* elflink.h (elf_link_output_sym): Add "elflink_hash_entry *" param,
and pass to output_symbol_hook.
(elf_bfd_final_link): Adjust elf_link_output_sym calls.
(elf_link_output_extsym): Likewise.
(elf_link_input_bfd): Likewise.
* elf32-sh64.c (sh64_elf_link_output_symbol_hook): Adjust.
* elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
* elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
* elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
* elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
* elf64-sparc.c (sparc64_elf_output_arch_syms): Likewise.
* elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
Validate dynh->h against h.
* elf64-ppc.c (struct ppc_link_hash_entry): Add adjust_done bitfield.
(link_hash_newfunc): Init it.
(adjust_opd_syms): New function.
(ppc64_elf_edit_opd): Set adjust_done when global .opd sym adjusted.
Set opd.adjust for all .opd relocs. Call adjust_opd_syms.
(ppc64_elf_tls_optimize): Adjust possible .opd sym values here.
(ppc64_elf_relocate_section): Also adjust syms not a multiple of 24.
(ppc64_elf_output_symbol_hook): New function.
(elf_backend_link_output_symbol_hook): Define.
2003-12-07 Richard Sandiford <>
* elf32-mips.c, elfn32-mips.c, elf64-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-05 Dmitry Semyonov <>
* coff-arm.c (aoutarm_std_reloc_howto [ARM_WINCE]): Set
partial_inplace for these relocs to FALSE for comptability with
the MS linker.
Remap ARM_26D relocation from 5 to 0. This fixes "bad fixup" error
generated by MS linker, and brings the relocation in line the MS
PE documentation.
2003-12-04 H.J. Lu <>
* elf32-ppc.c (ppc_elf_relax_section): Don't check relax_finalizing.
2003-12-04 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Use the
need_relax_finalize field in link_info instead of
relax_finalizing to check if the relax finalize pass is being
2003-12-04 Dmitry Semyonov <>
* coff-arm.c (coff_arm_relocate_section, bfd_arm_process_before_allocation):
Change ARM26* to ARM_26* in comments to match definitions.
(coff_arm_adjust_symndx): Replace hard-coded constants with
appropriate definitions (ARM_26*).
2003-12-04 Alan Modra <>
* coff-i860.c (coff_i860_reloc_nyi): Return bfd_reloc_not_supported.
* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Warning fixes.
(mn10300_elf_relax_section): Likewise.
* nlm32-alpha.c (ONES): Define.
(nlm32_alpha_howto_table): Use it to avoid warnings.
2003-12-04 Alan Modra <>
* elf32-i386.c (elf_i386_object_p): Delete.
(elf_backend_object_p): Don't define.
* elf32-s390.c (elf_s390_object_p): No need to alloc tdata here.
* elf32-sh.c (sh_elf_object_p): Likewise.
* elf32-sparc.c (elf32_sparc_object_p): Likewise.
* elf64-alpha.c (elf64_alpha_object_p): Likewise.
* elf64-s390.c (elf_s390_object_p): Likewise.
* elf64-x86-64.c (elf64_x86_64_elf_object_p): Likewise.
2003-12-03 Kazuhiro Inaoka <>
* archures.c (bfd_mach_m32r2): Add new machine type.
* bfd-in2.h: Regenerate.
* cpu-m32r.c : Add new machine type.
* elf32-m32r.c (m32r_elf_object_p, m32r_elf_final_write_processing,
m32r_elf_merge_private_bfd_data): Add support for new machine
2003-12-03 Dave Airlie <>
* config.bfd: Add vax-linux-gnu target.
* Likewise.
* configure: Regenerate.
2003-12-03 Alan Modra <>
* ecoff.c (ecoff_link_add_archive_symbols): Update for renamed
bfd_link_hash_entry field "next" -> "und_next".
* linker.c (_bfd_link_hash_newfunc): Likewise.
(bfd_link_add_undef): Likewise.
(_bfd_generic_link_add_archive_symbols): Likewise.
(_bfd_generic_link_add_one_symbol): Likewise.
* xcofflink.c (xcoff_link_add_symbols): Likewise.
2003-12-02 Nick Clifton <>
* (ALL_LINGUAS): Add ro.
* po/ro.po: New Romanian translation.
2003-12-02 Alan Modra <>
* Run "make dep-am".
* Regenerate.
2003-12-01 Dmitry Semyonov <>
* coffcode.h (coff_compute_section_file_positions): Set page_size
to 1 instead of 0 in the case file alignment value is zero.
2003-12-01 Kazu Hirata <>
* coff-rs6000.c: Remove ARGSUSED and VARARGS.
* coff64-rs6000.c: Likewise.
* coffcode.h: Likewise.
* elf32-vax.c: Likewise.
* hash.c: Likewise.
* hppabsd-core.c: Likewise.
* hpux-core.c: Likewise.
* ihex.c: Likewise.
* netbsd-core.c: Likewise.
* osf-core.c: Likewise.
* pdp11.c: Likewise.
* ptrace-core.c: Likewise.
* sco5-core.c: Likewise.
* section.c: Likewise.
* sunos.c: Likewise.
* trad-core.c: Likewise.
2003-12-01 Alan Modra <>
* elf-bfd.h (is_elf_hash_table): Take hash tab rather than info arg.
* elf.c (_bfd_elf_merge_sections): Adjust to suit.
(_bfd_elf_link_just_syms): Likewise.
(bfd_elf_get_needed_list): Likewise.
(bfd_elf_get_runpath_list): Likewise.
(_bfd_elf_link_hash_copy_indirect): Remove unneeded parens.
* elf32-hppa.c (elf32_hppa_setup_section_lists): Don't check hash tab
creator flavour.
(elf32_hppa_set_gp): Look up output sections rather than using htab.
* elf32-i960.c: Comment fix. Formatting.
* elf32-m32r.c (m32r_elf_add_symbol_hook): Use is_elf_hash_table
rather than testing creator flavour.
* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
* elflink.c (_bfd_elf_link_create_dynamic_sections): Adjust for
is_elf_hash_table change. Remove redundant test.
(bfd_elf_record_link_assignment): Use is_elf_hash_table rather than
testing creator flavour.
(elf_link_record_local_dynamic_symbol): Adjust for is_elf_hash_table.
(_bfd_elf_fix_symbol_flags): Likewise.
(_bfd_elf_adjust_dynamic_symbol): Likewise.
* elflink.h (elf_link_add_object_symbols): Likewise. Remove redundant
checks. Use is_elf_hash_table rather than testing creator flavour.
Use hash_table throughout in place of info->hash.
(elf_add_dynamic_entry): Adjust for is_elf_hash_table change.
(NAME(bfd_elf,size_dynamic_sections)): Likewise. Remove redundant
(elf_bfd_final_link): Adjust for is_elf_hash_table change.
(elf_link_check_versioned_symbol): Use is_elf_hash_table rather than
testing creator flavour.
(elf_gc_sections): Add is_elf_hash_table check.
(elf_gc_common_finalize_got_offsets): Likewise.
(elf_bfd_discard_info): Adjust for is_elf_hash_table change. Remove
redundant check.
* elfxx-ia64.c (elfNN_ia64_relax_section): Use is_elf_hash_table
rather than testing creator flavour.
2003-11-28 Christian Groessler <>
* cpu-z8k.c: Convert to ISO C90.
* coff-z8k.c: Likewise.
2003-11-27 Alexandre Oliva <>
* elf-bfd.h (elf_backend_data::elf_backend_modify_segment_map):
Add link info argument.
* elf32-i370.c (elf_backend_modify_segment_map): Likewise.
* elf32-ppc.c (ppc_elf_modify_segment_map): Likewise.
* elf32-xtensa.c (elf_xtensa_modify_segment_map): Likewise.
* elf64-hppa.c (elf64_hppa_modify_segment_map): Likewise.
* elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
* elfxx-mips.h (_bfd_mips_elf_modify_segment_map): Likewise.
* elf.c (assign_file_positions_except_relocs,
assign_file_positions_for_segments): Likewise. Adjust calls.
2003-11-27 Mark Kettenis <>
* elf.c (elfcore_grok_netbsd_procinfo): Make a pseudosection out
of the note.
2003-11-26 Daniel Jacobowitz <>
Richard Sandiford <>
* elfxx-mips.c (mips_elf_set_global_got_offset): Don't set no_fn_stub.
(mips_elf_set_no_stub): New function.
(mips_elf_multi_got): Call it.
(_bfd_mips_elf_finish_dynamic_symbol): If a relocation is needed for
a secondary GOT entry, create an R_MIPS_32 or R_MIPS_64 relocation and
use mips_elf_create_dynamic_relocation to deal with any compatibility
issues. Store the adjusted addend in the GOT slot.
2003-11-25 Mattias EngdegÄrd <>
* stabs.c (_bfd_link_section_stabs): Skip N_EXCL stabs when
procesing N_BINCL stabs.
2003-11-25 Alan Modra <>
* elf64-ppc.c (ppc_type_of_stub): Disallow stubs other than
ppc_stub_plt_call to symbols defined in shared libs.
2003-11-22 Jakub Jelinek <>
* elf-bfd.h (ELF_LINK_POINTER_EQUALITY_NEEDED): Define new flag.
* elf.c (_bfd_elf_link_hash_copy_indirect): Copy it.
* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
(elf_i386_check_relocs): Set it.
(elf_i386_finish_dynamic_symbol): If it is not set,
clear st_value of SHN_UNDEF symbol.
2003-11-20 Jim Blandy <>
* cpu-powerpc.c (powerpc_compatible): Any ISA in the PowerPC
family is a superset of <bfd_arch_rs6000,bfd_mach_rs6k>.
2003-11-20 Martin Schwidefsky <>
* elf32-s390.c (elf_s390_relocate_section): Don't recalculate symbol
section for reloc output and subtract the output section's address
from the addend when converting a relocation into one against a
section symbol.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
2003-11-18 James E Wilson <>
* elfxx-ia64.c (get_fptr): For fptr_rel, use dynobj not abfd.
(elfNN_ia64_size_dynamic_sections): When stripping sections, check
for ia64_info->rel_fptr_sec.
2003-11-18 Alan Modra <>
* elf64-ppc.c (toc_adjusting_stub_needed): Exit early if section
size is zero.
2003-11-17 Daniel Jacobowitz <>
* elf.c (_bfd_elf_link_hash_copy_indirect): Copy
ELF_LINK_HASH_NEEDS_PLT. Fix formatting.
* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Likewise.
* elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
* elf32-sh.c (sh_elf_copy_indirect_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
* elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
* elf32-xtensa.c (elf_xtensa_copy_indirect_symbol): Remove.
(elf_backend_copy_indirect_symbol): Don't define.
2003-11-14 Daniel Jacobowitz <>
* elfxx-mips.c (mips_elf_merge_gots): Weaken assert for local
GOT entries.
2003-11-13 Martin Schwidefsky <>
* elf32-s390.c (elf_s390_relocate_section): Only convert R_390_32
to R_390_RELATIVE. Convert the other relocations against local
symbols to relocations against the start of the section.
* elf64-s390.c (elf_s390_relocate_section): Only convert R_390_64
to R_390_RELATIVE. Convert the other relocations against local
symbols to relocations against the start of the section.
2003-11-11 Nick Clifton <>
* elf-m10300.c (bfd_mn10300_elf_size_dynamic_sections): Use
info->executable not info->shared to decide if a .interp section
should be present.
* elf32-arm.h (elf32_arm_size_dynamic_sections): Likewise.
* elf32-cris.c (elf_cris_size_dynamic_sections): Likewise.
* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
* elf32-vax.c (elf_vax_size_dynamic_sections): Likewise.
* elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Likewise.
* elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise.
* elfxx-mips.c (_bfd_mips_size_dynamic_sections): Likewise.
* elflink.h (size_dynamic_sections): Likewise.
2003-11-10 Jonathan Wilson <>
* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Swap out tls pointer.
(_bfd_XXi_final_link_postscript): Look for __tks_used symbol. If
found initialise the tls data directory entry.
2003-11-07 Alan Modra <>
* elf32-ppc.c (ppc_elf_install_value): Delete.
(shared_stub_entry, stub_entry): Make them arrays of ints.
Remove initial branch.
(ppc_elf_relax_section): Write one branch around all trampolines
instead. Correct bogus R_PPC_PLTREL24 handling. Correct
branch range check. Only use shared_stub_entry when shared.
Test that branches can reach stubs. Write trampolines out at
end so that just one realloc is used. Handle little-endian
mode. Move relevant code from ppc_elf_install_value to here.
(ppc_elf_relocate_section): Move code handling RELAX32 from
ppc_elf_install_value to here.
2003-11-06 Alan Modra <>
* elf32-ppc.c (ppc_elf_howto_raw); Add entry for R_PPC_RELAX32PC.
(ppc_elf_install_value): Handle R_PPC_RELAX32PC. Merge duplicate
(shared_stub_entry): Correct opcode.
(ppc_elf_relax_section): Generate R_PPC_RELAX32PC relocs.
(ppc_elf_relocate_section): Handle them.
2003-11-05 Alan Modra <>
* elf.c (_bfd_elf_rela_local_sym): Accept asection **, and return
updated section in case of merged section.
* elf-bfd.h (_bfd_elf_rela_local_sym): Update declaration.
* elf-hppa.h (elf_hppa_relocate_section): Adjust call.
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section) Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Don't recalculate symbol
section for reloc output.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Don't recalculate everything
for R_PPC_RELAX32 reloc. Don't bother checking ppc_elf_install_value
return value.
* elf64-ppc.c (ppc64_elf_relocate_section <R_PPC64_TOC>): Sanity check
2003-11-05 Alan Modra <>
* elf32-d10v.c (extract_rel_addend, insert_rel_addend): New functions.
(elf32_d10v_relocate_section): Use them to handle -r reloc
adjustments, and in place of _bfd_elf_rela_local_sym.
* cpu-iq2000.c (arch_info_struct): Warning fix.
2003-11-05 Alan Modra <>
* elf32-hppa.c (ELIMINATE_COPY_RELOCS): Define.
(elf32_hppa_copy_indirect_symbol): Don't copy NON_GOT_REF on
(elf32_hppa_check_relocs): Use ELIMINATE_COPY_RELOCS.
(elf32_hppa_adjust_dynamic_symbol): Likewise. Copy weakdef
(allocate_dynrelocs): Use ELIMINATE_COPY_RELOCS and
SYMBOL_CALLS_LOCAL. Discard relocs for undef weak syms with
non-default visibility.
(elf32_hppa_relocate_section): Use ELIMINATE_COPY_RELOCS and
2003-11-04 Alan Modra <>
* aout-target.h, aoutf1.h, bfdio.c, bfdwin.c: Update copyright date.
* coff-apollo.c, coff-sparc.c, coff-w65.c, coff-we32k.c: Ditto.
* coff-z8k.c, coffgen.c, cpu-frv.c, cpu-h8500.c, cpu-hppa.c: Ditto.
* cpu-ia64-opc.c, cpu-m10300.c, cpu-mips.c, cpu-msp430.c: Ditto.
* cpu-rs6000.c, cpu-z8k.c, efi-app-ia32.c, elf32-am33lin.c: Ditto.
* gen-aout.c, hash.c, hp300hpux.c, init.c, mach-o.c: Ditto.
* nlm-target.h, nlm.c, som.h, stabs.c, sysdep.h, xsym.h: Ditto.
* elf-m10300.c (_bfd_mn10300_elf_create_got_section): Fix
"dereferencing type-punned pointer" warnings.
* aout-adobe.c (aout_adobe_set_section_contents): Constify location.
* aoutx.h (NAME(aout,set_section_contents)): Ditto.
* bfd-in2.h: Regenerate.
* binary.c (binary_set_section_contents): Ditto.
* bout.c (b_out_set_section_contents): Ditto.
* coff-tic54x.c (tic54x_set_section_contents): Ditto.
* coffcode.h (coff_set_section_contents): Ditto.
* ecoff.c (_bfd_ecoff_set_section_contents): Ditto.
* elf-bfd.h (_bfd_elf_set_section_contents): Ditto.
* elf.c (_bfd_elf_set_section_contents): Ditto.
* elfxx-mips.c (_bfd_mips_elf_set_section_contents): Ditto.
* elfxx-mips.h (_bfd_mips_elf_set_section_contents): Ditto.
* i386msdos.c (msdos_set_section_contents): Ditto.
* ieee.c (ieee_set_section_contents): Ditto.
* ihex.c (ihex_set_section_contents): Ditto.
* libaout.h (NAME(aout,set_section_contents)): Ditto.
* libbfd-in.h (_bfd_nowrite_set_section_contents): Ditto.
(_bfd_generic_set_section_contents): Ditto.
* libbfd.h: Regenerate.
* libbfd.c (_bfd_generic_set_section_contents): Ditto.
* libecoff.h (_bfd_ecoff_set_section_contents): Ditto.
* libnlm.h (nlmNAME(set_section_contents)): Ditto.
(struct nlm_backend_data <nlm_mangle_relocs>): Ditto.
* mmo.c (mmo_set_section_contents): Ditto.
* nlm32-alpha.c (nlm_alpha_mangle_relocs): Ditto.
* nlm32-i386.c (nlm_i386_mangle_relocs): Ditto.
* nlm32-ppc.c (nlm_powerpc_mangle_relocs): Ditto.
* nlm32-sparc.c (nlm_sparc_mangle_relocs): Ditto.
* nlmcode.h (nlm_set_section_contents): Ditto.
* oasys.c (oasys_set_section_contents): Ditto.
* pdp11.c (NAME(aout,set_section_contents)): Ditto.
* ppcboot.c (ppcboot_set_section_contents): Ditto.
* srec.c (srec_set_section_contents): Ditto.
* targets.c (BFD_JUMP_TABLE_WRITE <_bfd_set_section_contents>): Ditto.
* tekhex.c (tekhex_set_section_contents): Ditto.
(move_section_contents): Ditto.
* versados.c (versados_set_section_contents): Ditto.
* vms-misc.c (_bfd_save_vms_section): Ditto.
* vms.c (vms_set_section_contents): Ditto.
* vms.h (_bfd_save_vms_section): Ditto.
2003-11-04 Alan Modra <>
* elf64-ppc.c (ppc_size_one_stub): Size relbrlt. Accept info arg
rather than htab.
(ppc64_elf_size_stubs): Adjust ppc_size_one_stub traversal. Zero
relbrlt size.
(ppc64_elf_build_stubs): Allocate space for relbrlt.
2003-11-04 Alan Modra <>
* bfd-in.h (_bfd_elf_tls_setup): Declare.
* bfd-in2.h: Regenerate.
* elf-bfd.h (struct elf_link_tls_segment): Delete.
(struct elf_link_hash_table): Add tls_sec and tls_size.
* elf.c (_bfd_elf_link_hash_table_init): Init tls_sec and tls_size.
* elflink.c (_bfd_elf_tls_setup): New function.
* elflink.h (struct elf_final_link_info): Remove first_tls_sec.
(elf_bfd_final_link): Don't set first_tls_sec here. Update code
saving tls segment info, round segment size up.
(elf_link_output_extsym): Adjust code using tls segment info.
(elf_link_input_bfd): Likewise.
* elf32-i386.c (dtpoff_base, tpoff): Likewise.
* elf32-s390.c (dtpoff_base, tpoff): Likewise.
* elf32-sh.c (dtpoff_base, tpoff): Likewise.
* elf32-sparc.c (dtpoff_base, tpoff): Likewise.
* elf64-s390.c (dtpoff_base, tpoff): Likewise.
* elf64-x86-64.c (dtpoff_base, tpoff): Likewise.
* elfxx-ia64.c (elfNN_ia64_tprel_base): Likewise.
(elfNN_ia64_dtprel_base): Likewise.
* elf64-alpha.c (alpha_get_dtprel_base): Likewise.
(alpha_get_tprel_base): Likewise.
(struct alpha_relax_info): Remove tls_segment.
(elf64_alpha_relax_got_load): Adjust invocation of
alpha_get_dtprel_base and alpha_get_tprel_base.
(elf64_alpha_relax_tls_get_addr): Likewise.
(elf64_alpha_relax_section): Likewise.
(elf64_alpha_relocate_section): Likewise.
(elf64_alpha_relax_find_tls_segment): Delete.
* elf32-ppc.c (struct ppc_elf_link_hash_table): Remove tls_sec.
(ppc_elf_tls_setup): Call _bfd_elf_tls_setup. Return section.
(ppc_elf_relocate_section): Adjust to use elf.tls_sec.
* elf32-ppc.h (ppc_elf_tls_setup): Update.
* elf64-ppc.c (struct ppc_link_hash_table): Remove tls_sec.
(ppc64_elf_tls_setup): Call _bfd_elf_tls_setup. Return section.
(ppc64_elf_tls_optimize): Adjust to use elf.tls_sec.
(ppc64_elf_relocate_section): Likewise.
* elf64-ppc.h (ppc64_elf_tls_setup): Update.
2003-11-03 Daniel Jacobowitz <>
* elf-bfd.h (struct elf_backend_data): Remove plt_header_size.
* elf-m10300.c (elf_backend_plt_header_size): Don't define.
* elf32-arm.h (elf_backend_plt_header_size): Don't define.
* elf32-cris.c (elf_backend_plt_header_size): Don't define.
* elf32-i386.c (elf_backend_plt_header_size): Don't define.
* elf32-mips.c (elf_backend_plt_header_size): Don't define.
* elf32-ppc.c (elf_backend_plt_header_size): Don't define.
* elf32-s390.c (elf_backend_plt_header_size): Don't define.
* elf32-sh.c (elf_backend_plt_header_size): Don't define.
* elf32-sparc.c (elf_backend_plt_header_size): Don't define.
* elf64-alpha.c (elf_backend_plt_header_size): Don't define.
* elf64-hppa.c (elf_backend_plt_header_size): Don't define.
* elf64-mips.c (elf_backend_plt_header_size): Don't define.
* elf64-ppc.c (elf_backend_plt_header_size): Don't define.
* elf64-s390.c (elf_backend_plt_header_size): Don't define.
* elf64-sh64.c (elf_backend_plt_header_size): Don't define.
* elf64-sparc.c (elf_backend_plt_header_size): Don't define.
* elf64-x86-64.c (elf_backend_plt_header_size): Don't define.
* elfn32-mips.c (elf_backend_plt_header_size): Don't define.
* elfxx-ia64.c (elf_backend_plt_header_size): Don't define.
* elfxx-target.h (elf_backend_plt_header_size): Don't define
or include in target initializer.
2003-11-03 Andrew Cagney <>
* section.c (bfd_set_section_contents): Make the "location" buffer
* bfd-in2.h: Re-generate.
2003-10-30 Andrew Cagney <>
* syms.c: Replace "struct symbol_cache_entry" with "struct
* vms.h, targets.c, section.c, reloc.c, peicode.h: Ditto.
* mipsbsd.c, elf.c, linker.c, elf-bfd.h, ecoff.c: Ditto.
* cpu-z8k.c, cpu-ns32k.c, cpu-h8500.c, bfd.c, bfd-in.h: Ditto.
* bfd-in2.h: Re-generate.
2003-10-30 Jakub Jelinek <>
* elfxx-ia64.c: Include objalloc.h, hashtab.h.
(struct elfNN_ia64_local_hash_entry): Remove root. Add id and r_sym
(struct elfNN_ia64_local_hash_table): Remove.
(struct elfNN_ia64_link_hash_table): Change loc_hash_table's type
to htab_t. Add loc_hash_memory field.
(elfNN_ia64_local_hash_table_init, elfNN_ia64_new_loc_hash_entry):
(elfNN_ia64_local_htab_hash, elfNN_ia64_local_htab_eq): New
(elfNN_ia64_hash_table_create): Use hashtab.h hashtable for
loc_hash_table. Initialize loc_hash_memory.
(elfNN_ia64_hash_table_free): New function.
(elfNN_ia64_local_hash_lookup): Remove.
(elfNN_ia64_local_dyn_sym_thunk): Change into htab_traverse
(elfNN_ia64_dyn_sym_traverse): Use htab_traverse.
(get_local_sym_hash): Use hashtab.h hashtable for loc_hash_table.
(bfd_elfNN_bfd_link_hash_table_free): Define.
2003-10-30 Alan Modra <>
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Modify versioned
symbol string in place.
2003-10-30 Jim Blandy <>
* cpu-rs6000.c (rs6000_compatible): Check the correct arch_info
object's mach field: all PowerPC machines are supersets of the
original rs6000, but not later rs6000 machines.
2003-10-30 Alan Modra <>
* dwarf2.c (struct attribute): Delete "unsnd", "snd" and "addr".
Add "val" and "sval" fields.
(read_attribute_value): Expand and adjust DW_* occurrences.
(scan_unit_for_functions, parse_comp_unit): Likewise.
2003-10-30 Phil Edwards <>
* config.bfd (arm-*-vxworks): Remove separate stanza; merge with
other common ELF triples.
(i[3-7]86-*-vxworks): Change to ELF format.
(mips*-*-windiss): New triple, add to common MIPS/ELF stanza.
(sh-*-vxworks): New stanza.
2003-10-30 Lars Knoll <>
Michael Matz <>
Jakub Jelinek <>
Alan Modra <>
* merge.c (struct sec_merge_sec_info): Update comment.
(struct sec_merge_hash_entry): Remove entsize.
(sec_merge_hash_lookup): Only adjust alignment when creating.
(sec_merge_emit): Remove register keyword.
(cmplengthentry, last4_eq, last_eq): Delete.
(strrevcmp, strrevcmp_align, is_suffix): New.
(merge_strings): Use them to implement fast suffix merging.
* elf-strtab.c (struct elf_strtab_hash_entry): Update comments.
Make "len" signed.
(_bfd_elf_strtab_add): Lose on >2G strings.
(_bfd_elf_strtab_emit): Don't emit strings with len < 0.
(cmplengthentry, last4_eq): Delete.
(strrevcmp, is_suffix): New.
(_bfd_elf_strtab_finalize): Rework to implement fast suffix merging.
2003-10-29 Daniel Jacobowitz <>
* elf32-arm.h (elf32_arm_final_link_relocate): Move check for
2003-10-29 Philip Blundell <>
* elf32-arm.h (elf32_arm_plt0_entry, elf32_arm_plt_entry): New
code sequence.
(struct elf32_arm_pcrel_relocs_copied): Rename to ...
(struct elf32_arm_relocs_copied): ... this. Count both
pcrel and non-pcrel relocs. All uses updated.
(struct elf32_arm_link_hash_table): Add pointers to dynamic linker
sections and symbol/section mapping cache.
(create_got_section): New.
(elf32_arm_create_dynamic_sections): New.
(elf_backend_create_dynamic_sections): Use it.
(elf32_arm_final_link_relocate): Support garbage collection of relocs.
(elf32_arm_check_relocs): Likewise.
(elf32_arm_adjust_dynamic_symbol): Likewise.
(elf32_arm_copy_indirect_symbol): New.
(elf32_arm_link_hash_table_create): Initialise new fields.
(elf32_arm_gc_sweep_hook): Implement.
(elf32_arm_discard_copies): Delete.
(elf32_arm_finish_dynamic_symbol): Use new PLT code.
(elf32_arm_finish_dynamic_sections): Likewise.
(elf_backend_can_refcount): Define.
(elf_backend_copy_indirect_symbol): Likewise.
(elf_backend_plt_header_size): Set to PLT_HEADER_SIZE.
2003-10-29 Alan Modra <>
* elf64-ppc.c (elf_backend_grok_prstatus): Define.
(elf_backend_grok_psinfo): Define.
(ppc64_elf_grok_prstatus, ppc64_elf_grok_psinfo): New functions.
* elf.c (_bfd_elfcore_make_pseudosection): Allow multiple
sections with the same name.
(elfcore_grok_lwpstatus): Likewise.
(elfcore_grok_win32pstatus): Likewise.
(elfcore_grok_note): Likewise.
(elfcore_grok_nto_status): Likewise.
(elfcore_grok_nto_gregs): Likewise.
2003-10-27 Daniel Jacobowitz <>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Never skip dynamic
2003-10-14 Richard Sandiford <>
* elfxx-mips.c (mips_elf_create_got_section): Initialize global_gotno.
2003-10-24 H.J. Lu <>
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Look up
hash table for real symbols.
2003-10-23 Michael Snyder <>
* section.c (asection): Fix typo in comment.
2003-10-23 Alan Modra <>
* elf64-ppc.c (get_tls_mask): Add toc_symndx param, save toc
reloc symbol index to it. Don't allow gd syms in shared libs
to be optimized.
(ppc64_elf_tls_optimize): Adjust get_tls_mask call.
(ppc64_elf_size_stubs): Likewise.
(ppc64_elf_relocate_section): Check that tls relocs are only used
with tls syms, and similarly for non-tls. Correct symbol used
when optimizing toc tls code.
2003-10-22 Nick Clifton <>
* peicode.h (coff_swap_scnhdr_in): Only remove padding when
processing an executable.
2003-10-22 Jakub Jelinek <>
* elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals
field changes.
(_bfd_elf_link_assign_sym_version): Likewise.
* elflink.h (size_dynamic_sections): Likewise.
2003-10-21 Alexandre Oliva <>,
Michael Snyder <>
* archures.c (bfd_mach_sh4a, bfd_mach_sh4al_dsp, bfd_mach_sh4_nofpu,
bfd_mach_sh4a_nofpu): New machine types.
* bfd-in2.h: Rebuilt.
* cpu-sh.c (compatible): Remove unused function.
(arch_info_struct): Add sh4a, sh4al_dsp, sh4-nofpu and sh4a-nofpu.
* elf32-sh.c (sh_elf_set_mach_from_flags): Handle them.
2003-10-21 Wouter van Heyst <>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Correct text
describing mismatched formats involving the Maverick FP type.
2003-10-21 Anil Paranjpe <>
* binary.c (binary_object_p): Pass machine flag along with
2003-10-21 Thorsten Brehm <>
* archures.c (bfd_default_scan): Add support for mcf528x.
* ieee.c (ieee_write_processor): Likewise.
2003-10-21 Peter Barada <>
Bernardo Innocenti <>
* archures.c: Add MCF528x (MCFv4) support.
* cpu-m68k.c (arch_info_struct): Likewise.
* bfd-in2.h: Regenerate.
2003-10-20 Andrew Cagney <>
* targets.c: Replace "struct sec" with "struct bfd_section"
* syms.c, sparclynx.c, section.c, opncls.c: Ditto.
* libcoff-in.h, libbfd-in.h, elfxx-target.h: Ditto.
* elf.c, coffgen.c, bfd.c, bfd-in.h, aoutf1.h: Ditto.
* aout-tic30.c, aout-target.h:
* bfd-in2.h, libcoff.h, libbfd.h: Regenerate.
2003-10-18 Hans-Peter Nilsson <>
Support linker relaxation of new R_MMIX_PUSHJ_STUBBABLE relocs.
* elf64-mmix.c (MAX_PUSHJ_STUB_SIZE): New macro.
(struct _mmix_elf_section_data): New member pjs.
(mmix_set_relaxable_size, mmix_elf_get_section_contents): New
(elf_mmix_howto_table): New entry for R_MMIX_PUSHJ_STUBBABLE.
(mmix_reloc_map): Ditto.
(mmix_elf_relocate_section): Handle R_MMIX_PUSHJ_STUBBABLE.
(mmix_final_link_relocate, mmix_elf_check_common_relocs): Ditto.
(mmix_elf_perform_relocation): Ditto. Don't mark parameter addr
(mmix_elf_check_relocs): Move early return to after
mmix_elf_check_common_relocs call.
(mmix_elf_symbol_processing): Fix cut-and-pasto in head comment.
(_bfd_mmix_before_linker_allocation): Rename from
_bfd_mmix_prepare_linker_allocated_gregs. All referers changed.
Arrange to set the initial relaxable size of sections.
(_bfd_mmix_after_linker_allocation): Rename from
(mmix_elf_relax_section): Relax a R_MMIX_PUSHJ_STUBBABLE reloc.
(bfd_elf64_get_section_contents): Define.
* libbfd.h, bfd-in2.h: Regenerate.
* reloc.c (bfd_generic_relax_section): Default-set
section->_cooked_size here.
(bfd_generic_get_relocated_section_contents): Don't set it here.
Explain why.
2003-10-17 John David Anglin <>
* elf32-hppa.c (elf32_hppa_relocate_section): Skip relocation if
output section has been discarded.
2003-10-17 Shrinivas Atre <>
* coff-h8300.c (funcvec_hash_newfunc): Handle normal mode.
(h8300_reloc16_extra_cases): Likewise.
(h8300_bfd_link_add_symbols): Likewise.
2003-10-17 Dhananjay Deshpande <>
* cpu-h8300.c (h8300sxn_info_struct): Correct address size.
(h8300sn_info_struct): Likewise.
(h8300hn_info_struct): Likewise.
2003-10-16 Pavel Roskin <>
* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't calculate image size
for sections which lack size info.
2003-10-17 Danny Smith <>
2003-10-16 H.J. Lu <>
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Also warn
undefined patterns with '*'.
2003-10-16 H.J. Lu <>
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't
use the last CIE from a different section.
(_bfd_elf_write_section_eh_frame): Don't pad beyond the raw
size of the output section.
2003-10-07 Roland McGrath <>
* elf.c (_bfd_elf_make_section_from_phdr): Set alignment_power of
new section from p_align header field.
2003-10-16 H.J. Lu <>
* elf32-xtensa.c (xtensa_read_table_entries): The external size
of entry is 8 bytes.
2003-10-15 Andrew Cagney <>
* targets.c (BFD_JUMP_TABLE_SYMBOLS): Replace NAME##_get_symtab
with NAME##_canonicalize_symtab.
* libcoff-in.h (coff_canonicalize_symtab): Update.
* xsym.h (bfd_sym_canonicalize_symtab): Update.
* elf-bfd.h (_bfd_elf_canonicalize_symtab): Update.
* coffgen.c (coff_canonicalize_symtab): Update.
* libbfd-in.h (_bfd_nosymbols_canonicalize_symtab): Update.
* libnlm.h (nlmNAME(canonicalize_symtab)): Update.
* ieee.c (ieee_vec): Update comment.
* libecoff.h (_bfd_ecoff_canonicalize_symtab): Update.
* mmo.c (mmo_canonicalize_symtab): Update.
* nlm-target.h (nlm_canonicalize_symtab): Update.
* nlmcode.h (nlm_canonicalize_symtab): Update.
* i386msdos.c (msdos_canonicalize_symtab): Update.
* hp300hpux.c (MY (canonicalize_symtab)): Update.
* oasys.c (oasys_canonicalize_symtab): Update.
* som.c (som_canonicalize_symtab): Update.
* pef.c (bfd_pef_canonicalize_symtab): Update.
* nlmcode.h (nlm_canonicalize_symtab): Update.
* xsym.c (bfd_sym_canonicalize_symtab): Update.
* vms.c (vms_canonicalize_symtab): Update.
* versados.c (versados_canonicalize_symtab): Update.
* mach-o.c (bfd_mach_o_canonicalize_symtab): Update.
* ieee.c (ieee_canonicalize_symtab): Update.
* pdp11.c (NAME(aout,canonicalize_symtab)): Update.
* reloc.c: Update comment.
* libaout.h (NAME(aout,canonicalize_symtab)): Update.
* coff64-rs6000.c (aix5coff64_vec): Update.
* coff64-rs6000.c (bfd_xcoff_aix5_backend_data): Update.
* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Update.
* aoutx.h (NAME(aout,canonicalize_symtab)): Update.
* elfxx-target.h (bfd_elfNN_canonicalize_symtab): Update.
* hp300hpux.c (MY_canonicalize_symtab): Update.
* ecoff.c (_bfd_ecoff_canonicalize_symtab): Update.
* aout-tic30.c (MY_canonicalize_symtab): Update.
* aout-target.h (MY_canonicalize_symtab): Update.
* ppcboot.c (ppcboot_canonicalize_symtab): Update.
* elf.c (_bfd_elf_canonicalize_symtab): Update.
* elfcode.h (elf_canonicalize_symtab): Update.
* ihex.c (ihex_canonicalize_symtab): Update.
* tekhex.c (tekhex_canonicalize_symtab): Update.
* binary.c (binary_canonicalize_symtab): Update.
* srec.c (srec_canonicalize_symtab): Update.
2003-10-15 Kazu Hirata <>
* elf32-h8300.c (elf_reloc_map): Fix a comment typo.
2003-10-15 Kaz Kojima <>
* elf32-sh.c (sh_elf_relocate_section): Handle R_SH_IMM_*_PCREL
(sh_elf_check_relocs): Likewise.
* elf32-sh64.c (elf_backend_merge_symbol_attribute): Define.
(sh64_elf_merge_symbol_attribute): New.
* elf64-sh64.c (elf_backend_merge_symbol_attribute): Define.
(sh64_elf64_merge_symbol_attribute): New.
2003-10-14 Kaz Kojima <>
* elf-bfd.h (struct elf_backend_data): New function pointer member
* elflink.h (elf_link_add_object_symbols): Adjust call to
elf_backend_merge_symbol_attribute if the backend defined it.
* elfxx-target.h (elf_backend_merge_symbol_attribute): New macro.
(elfNN_bed): Add that to the initializer.
2003-10-14 Bob Wilson <>
* elf32-xtensa.c (get_is_linkonce_section): Delete.
(xtensa_is_property_section, xtensa_is_littable_section): Use
XTENSA_INSN_SEC_NAME and XTENSA_LIT_SEC_NAME macros. Do not recognize
linkonce sections containing ".xt.insn" and ".xt.lit" substrings.
(xtensa_get_property_section_name): Check section name instead of
calling get_is_linkonce_section. Remove unused bfd parameter. Use
linkonce section names by appending ".xt.insn" or ".xt.lit".
(xtensa_read_table_entries): Remove bfd argument in call to
xtensa_get_property_section_name. Free section name when done.
(elf_xtensa_combine_prop_entries): Free leaking table.
2003-10-13 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Don't add
(_bfd_mips_elf_finish_dynamic_symbol): Don't handle them. Don't
handle DT_MIPS_MSYM. Set DT_RELSZ based on the number of relocations
that were needed.
(_bfd_mips_elf_modify_segment_map): Fix placement of PT_MIPS_OPTIONS.
(_bfd_mips_elf_merge_private_bfd_data): Ignore EF_MIPS_UCODE.
2003-10-13 H.J. Lu <>
* bfd-in.h (bfd_elf32_ia64_after_parse): New prototype.
(bfd_elf64_ia64_after_parse): Likewise.
* bfd-in2.h: Regenerated.
* elfxx-ia64.c (oor_ip): New.
(oor_branch_size): Likewise.
(bfd_elfNN_ia64_after_parse): Likewise.
(elfNN_ia64_relax_section): Use oor_ip if oor_branch_size
equals sizeof (oor_ip).
2003-10-12 Kaz Kojima <>
* elf64-sh64.c (sh_elf64_relocate_section): Tidy up for the
renumbering of some relocation numbers.
2003-10-11 Alan Modra <>
* coff-sh.c: Move definition of MAP and guard more code with
* section.c (bfd_get_section_size_before_reloc): Ignore reloc_done.
* bfd-in2.h: Regenerate.
2003-10-10 H.J. Lu <>
* Run "make dep-am".
* Regenerate.
* doc/ Likewise.
2003-10-09 H.J. Lu <>
* cofflink.c: Include "safe-ctype.h".
(coff_link_add_symbols): Use ISDIGIT instead of isdigit.
2003-10-08 Dave Brolley <>
On behalf of Michael Snyder <>
* archures.c: Add FRV fr550 machine.
* cpu-frv.c: Ditto.
* elf32-frv.c: Ditto.
* bfd-in2.h: Regenerate.
2003-10-08 Thiemo Seufer <>
* elfxx-mips.c (STUB_MOVE,STUB_LI16): Fix stub code
for non-SGI N64 ABI. Improve code consitency.
2003-10-07 Alexandre Oliva <>
* elf32-frv.c (elf32_frv_howto_table): Set R_FRV_LABEL16's
rightshift to 2.
2003-10-07 Nathan Sidwell <>
* libbfd-in.h (_bfd_link_section_stabs): Add string offset
* cofflink.c (coff_link_add_symbols): Deal with split stab
* elflink.h (elf_link_add_object_symbols): Deal with split stab
* stabs.c (_bfd_link_section_stabs): Add string offset parameter.
* libbfd.h: Regenerated.
* coffcode.h (coff_set_alignment_hook): With PE_COFF reloc
overflow, set reloc start position to after the count
reloc. Subtract one from num relocs. Give error on 0xffff relocs
and no overflow.
* cofflink.c (_bfd_coff_final_link): Deal with PE_COFF reloc
* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do overflow if >=
2003-10-06 H.J. Lu <>
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Pad the
last CIE/FDE if needed.
2003-10-06 Nick Clifton <>
* targets.c (_bfd_target_vector): Include bfd_elf64_sparc_vec if
BFD64 is enabled.
2003-10-06 Matt Thomas <>
* config.bfd: Move the hppa*-*-netbsd* case to the hppa*-*-linux* case.
2003-10-06 Robert Millan <>
* Match GNU/KNetBSD with new knetbsd*-gnu triplet.
* config.bfd: Likewise.
* configure: Regenerate.
2003-10-04 Christian Groessler <>
* coff-z8k.c (extra_case): Fix displacement length check for R_JR
and R_CALLR.
2003-10-04 Stephane Carrez <>
* elf32-m68hc1x.c: Update to ISO C90; replace PTR with void*.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc12.c: Likewise.
* elf32-m68hc1x.h: Likewise.
2003-10-04 Stephane Carrez <>
* elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Fix merge
of flags between HC12 and HCS12.
2003-10-04 Bryce McKinlay <>
* merge.c (_bfd_merge_sections): Set SEC_EXCLUDE flag on sections
which become empty after merging.
2003-09-30 Jakub Jelinek <>
* elfxx-ia64.c (ia64_howto_table): Fix size of R_IA64_TPREL64[LM]SB,
R_IA64_DTPREL{32,64}[LM]SB and R_IA64_DTPMOD64[LM]SB.
2003-09-30 Chris Demetriou <>
* archures.c (bfd_mach_mipsisa64r2): New define.
* bfd-in2.h: Regenerate.
* aoutx.h (NAME(aout,machine_type)): Handle bfd_mach_mipsisa64r2.
* cpu-mips.c (I_mipsisa64r2): New enum value.
(arch_info_struct): Add entry for I_mipsisa64r2.
* elfxx-mips.c (_bfd_elf_mips_mach)
(_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_64R2.
(mips_set_isa_flags): Add bfd_mach_mipsisa64r2 case.
(mips_mach_extensions): Add entry for bfd_mach_mipsisa64r2.
2003-09-29 H.J. Lu <>
* elfxx-ia64.c (elfNN_hpux_backend_symbol_processing): New.
(elf_backend_section_from_bfd_section): Defined.
2003-09-26 H.J. Lu <>
* elflink.c (elf_link_read_relocs_from_section): Add an argument
of a pointer to section. Check bad symbol index.
(_bfd_elf_link_read_relocs): Modify calls to
2003-09-23 DJ Delorie <>
* elf32-sh.c (sh_elf_howto_table): R_SH_SWITCH8,
R_SH_LOOP_START,R_SH_LOOP_END moved to "reserved" spaces,
(sh_reloc_map): Add R_SH_DIR16 and R_SH_DIR8.
(sh_elf_relocate_section): Support new relocs.
2003-09-23 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_relocate_section): Fix typo that clobbered
dynamic relocation offsets.
2003-09-23 Alan Modra <>
* simple.c (bfd_simple_get_relocated_section_contents): Free the
hash table using _bfd_generic_link_hash_table_free.
2003-09-23 Alan Modra <>
* elf-bfd.h (struct bfd_elf_special_section): Remove "suffix". Change
type of prefix_length and suffix_length to int. Rename "attributes"
to "attr". Comment.
(_bfd_elf_get_sec_type_attr): Update prototype.
* elf.c (get_special_section): Rewrite.
(_bfd_elf_get_sec_type_attr): Return struct rather than passing in
attr and type pointers.
(_bfd_elf_new_section_hook): Adjust for above.
(special_sections): Merge suffix with prefix. Set
prefix_length for all entries. Set suffix_length appropriately.
* elf32-m32r.c (m32r_elf_special_sections): Likewise.
* elf32-m68hc11.c (elf32_m68hc11_special_sections): Likewise.
* elf32-m68hc12.c (elf32_m68hc12_special_sections): Likewise.
* elf32-mcore.c (mcore_elf_special_sections): Likewise.
* elf32-sh64.c (sh64_elf_special_sections): Likewise.
* elf32-v850.c (v850_elf_special_sections): Likewise.
* elf32-xtensa.c (elf_xtensa_special_sections): Likewise.
* elf64-alpha.c (elf64_alpha_special_sections): Likewise.
* elf64-hppa.c (elf64_hppa_special_sections): Likewise.
* elf64-ppc.c (ppc64_elf_special_sections): Likewise.
* elf64-sh64.c (sh64_elf64_special_sections): Likewise.
* elfxx-ia64.c (elfNN_ia64_special_sections): Likewise.
* elfxx-mips.c (_bfd_mips_elf_special_sections): Likewise.
* elf32-ppc.c (ppc_elf_special_sections): Likewise. Fix .plt flags.
2003-09-21 Daniel Jacobowitz <>
* elf64-alpha.c (elf64_alpha_create_got_section): Initialize
->got if the section already exists.
2003-09-19 Nathan Sidwell <>
* dwarf2.c (decode_line_info): Cope with an initially empty
filename table.
2003-09-18 H.J. Lu <>
* acinclude.m4: Include ../config/accross.m4.
* aclocal.m4: Regenerated.
* (HOST_64BIT_TYPE): Remove if it is set to long
or long long.
(HOST_U_64BIT_TYPE): Remove if it is set to unsigned long long.
(host64): Remove if HOST_64BIT_TYPE is set to long.
* (HOST_64BIT_TYPE): Set according to the size of
long and long long.
(HOST_U_64BIT_TYPE): Likewise.
(host64): Likewise.
* configure: Regenerated.
2003-09-19 Alan Modra <>
* elf.c (elfcore_write_note): Don't use sizeof(Elf_External_note)
since some ABIs round up the size of the struct.
2003-09-18 H.J. Lu <>
* elflink.c (_bfd_elf_merge_symbol): Allow type change if
the old symbol is undefined and the new symbol is defined.
2003-09-18 Andreas Schwab <>
* simple.c (bfd_simple_get_relocated_section_contents): Use
_bfd_generic_link_hash_table_create instead of
2003-09-10 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_special_sections): Mark all sections
started with ".sbss" or "".sdata" as SHF_IA_64_SHORT.
2003-09-10 John David Anglin <>
Randolph Chung <>
* elf32-hppa.c (struct elf32_hppa_link_hash_entry,
hppa_link_hash_newfunc, hppa_build_one_stub,
elf32_hppa_adjust_dynamic_symbol, mark_PIC_calls, allocate_plt_static,
allocate_dynrelocs, elf32_hppa_size_dynamic_sections,
elf32_hppa_finish_dynamic_symbol): Remove pic_call field and all code
for generating import stubs for calls to statically linked PIC
(hppa_type_of_stub): Don't generate an import stub for calls to
statically linked pic functions. Generate import stubs for calls
in a shared object, to functions not in a regular file, and to
defined weak functions. Add new argument INFO.
(hppa_build_one_stub): Don't undef ADDIL_DP.
(elf32_hppa_check_relocs): Don't set SEC_HAS_GOT_REF flag.
(elf32_hppa_size_stubs): Pass info to hppa_type_of_stub.
(final_link_relocate): Change all DLTIND relocs to DPREL relocs in a
non-shared link. Convert instructions that use the linkage table
pointer, or a facsimile thereof, to use the global data pointer when
the reloc has been changed.
2003-09-08 Joel Brobecker <>
* archures.c: Add new machine names for hppa.
* bfd-in2.h: Regenerate.
* cpu-hppa.c: Use the new machine names.
2003-09-06 Stephane Carrez <>
* elf32-m68hc1x.h (struct m68hc11_elf_link_hash_table): Remove
all_local_syms member.
* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Use bfd_elf_get_elf_syms
to get the local symbols.
2003-09-06 Stephane Carrez <>
* elf32-m68hc12.c (elf32_m68hc12_special_sections): New for hc11.
(elf_backend_special_sections): Define.a
PR savannah/4950:
* elf32-m68hc11.c (elf32_m68hc11_special_sections): The .vectors
section is read-only.
2003-09-04 Nick Clifton <>
* archures.c (bfd_mach_v850e1): Define.
* bfd-in2.h: Regenerate.
* cpu-v850.h (scan): Accept bfd_mach_v850e1.
(arch_info_struct): Include an entry for bfd_mach_v850e1.
* elf32-v850.c (v850_elf_object_p): Accept E_V850E1_ARCH flag.
(v850_elf_final_write_processing): Accept bfd_mach_v850e1.
(v850_elf_print_private_bfd_data): Interpret E_V850E1_ARCH flag.
(v850_elf_merge_private_bfd_data): Allow v850e1 binaries to be
linked with v850e binaries. Mark the output as v850e.
2003-09-03 Nick Clifton <>
* cofflink.c (_bfd_coff_link_input_bfd): Do not skip section
symbols that are used in relocs.
2003-08-30 Robert Millan <>
* Match GNU/KFreeBSD with new kfreebsd*-gnu triplet.
* config.bfd: Likewise.
* configure: Regenerate.
2003-08-31 Christian Groessler <>
* elf32-i860.c (i860_howto_pc26_reloc): Finish relocation here
instead of returning bfd_reloc_continue.
2003-08-31 Andreas Jaeger <>
* merge.c: Update to ISO C90.
2003-08-27 Ian Lance Taylor <>
* Check for strtoull.
* bfd.c (bfd_scan_vma): Use strtoull when available.
* configure, Regenerate.
* Define and substitute BFD_HOST_LONG_LONG.
* bfd-in.h: Define BFD_HOST_LONG_LONG. Test it rather than
__GNUC__ when deciding whether to use long long for
* configure,, doc/, bfd-in2.h: Regenerate.
2003-08-27 Christian Groessler <>
* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc,
i860_howto_splitn_reloc, i860_howto_highadj_reloc): New
(elf32_i860_howto_table): Insert the new functions as
'special_function's in the proper reloc type entries.
2003-08-27 Richard Sandiford <>
* elf32-frv.c (elf32_frv_relocate_section): Use
2003-08-26 Michael Snyder <>
* cpu-frv.c: Remove unused enum.
2003-08-25 Maciej W. Rozycki <>
* reloc.c: Fix documentation for MIPS ELF relocations.
libbfd.h: Regenerate.
bfd-in2.h: Regenerate.
2003-08-24 Jason Eckhardt <>
* coff-i860.c (CALC_ADDEND): Define to be a no-op.
2003-08-24 Jason Eckhardt <>
* elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and
shift by 2 before storing the relocated value.
2003-08-23 Jason Eckhardt <>
* coff-i860.c (coff_i860_reloc_nyi): New function.
(howto_table): Add entries for relocations PAIR, HIGHADJ, HIGH,
(RTYPE2HOWTO): Check that the r_type is within the howto_table
before trying to access the entry.
(coff_i860_rtype_to_howto): Likewise.
(coff_i860_reloc_type_lookup): New function.
(i860_reloc_processing): New function.
(coff_bfd_reloc_type_lookup): Define macro.
(RELOC_PROCESSING): Define macro.
Minor formatting adjustments.
2003-08-23 Alan Modra <>
* elflink.h (elf_link_add_object_symbols): Don't crash on NULL owner.
2003-08-22 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_create_dynamic_sections): Align the
.got section at 8 bytes.
2003-08-21 Nick Clifton <>
* cofflink.c: Update to ISO C90 and tidy up formatting.
2003-08-21 Randolph Chung <>
* elf32-hppa.c (elf32_hppa_object_p): For elf32-hppa-linux, objects
can have OSABI=Linux or OSABI=SysV. Check for both.
* elf64-hppa.c (elf64_hppa_object_p): Likewise.
2003-08-21 Nick Clifton <>
* po/sv.po: Updated Swedish translation.
2003-08-20 Richard Sandiford <>
* elf64-mips.c (elf_backend_copy_indirect_symbol): Define.
2003-08-20 Nick Clifton <>
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): New macro used to
replace some duplicated code in most elfxx-xxxx.c files. This
version uses the new fields in bfd_link_info.
* elf-m10300.c (mn10300_elf_relocate_section): Use new macro.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf-hppa.h (elf_hppa_unmark_useless_dynamic_symbols,
elf_hppa_relocate_section): Use the new fields in
bfd_link_info structure.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.
* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
* elflink.h (elf_link_output_extsym): Fix test for reporting
undefined symbols in shared libraries. Remove redundant test
of shlib_undefined when reporting references to forced local
2003-08-18 Andreas Schwab <>
* libpei.h (bfd_pe_executable_p): Also recognize efi-app
2003-08-17 Hans-Peter Nilsson <>
* simple.c (bfd_simple_get_relocated_section_contents): Move
reloc_done hack to before first bfd_section_size call. Change all
returns to use new wrapper macro RETURN, restoring sec->reloc_done.
2003-08-16 Alan Modra <>
* elf64-ppc.c: Don't include elf/ppc.h.
2003-08-14 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Fix PT_DYNAMIC
code to work with 64-bit bfds.
2003-08-14 Alan Modra <>
* dep-in.sed: Remove libintl.h.
* (, Unset LC_COLLATE.
( Remove target.
* Regenerate.
2003-08-12 Alan Modra <>
* elf64-ppc.c (ppc64_elf_next_input_section): Update comment.
(ppc64_elf_relocate_section): For zero sym R_PPC64_TOC relocs,
use the function sym from the previous reloc.
2003-08-11 Jakub Jelinek <>
* elf32-i386.c (elf_i386_relocate_section): Make undefined symbols
fatal if -pie.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
(ppc_elf_relocate_section) <case R_PPC_RELAX32>: Issue fatal error
on undefined symbols if -pie.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
2003-08-11 Alan Modra <>
* elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
branch to __libc_start_main.
2003-08-08 Dmitry Diky <>
* archures.c: Add xW42 and xE42 parts. Sort MPU list according to
gcc order.
* cpu-msp430.c: Likewise.
* elf32-msp430.c: Likewise.
* bfd-in2.h: Regenerate.
2003-08-07 Alan Modra <>
* elfxx-target.h: Remove PTR cast.
* targets.c (bfd_target): Make backend_data const void *.
* elf-bfd.h: Constify all occurrences of struct elf_backend_data.
* elf-m10300.c: Likewise.
* elf.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-sparc.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-mips.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-sparc.c: Likewise.
* elf64-x86-64.c: Likewise.
* elfcode.h: Likewise.
* elfcore.h: Likewise.
* elflink.c: Likewise.
* elflink.h: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-mips.h: Likewise.
* elf.c (prep_headers): Remove useless check for null backend_data.
* bfd-in2.h: Regenerate.
* elf-bfd.h: Remove PARAMS macro. Replace PTR with void *.
(NAME): Use ## rather than CONCAT4 macro.
* elfcode.h: Remove one remaining PARAMS macro.
* elf-eh-frame.c: Convert to C90, remove unneeded casts and prototypes.
* elf-strtab.c: Likewise.
* elf-hppa.h: Likewise.
* elf32-hppa.h: Likewise.
* elf32-hppa.c: Likewise.
(elf32_hppa_add_symbol_hook): Delete.
(elf_backend_add_symbol_hook): Don't define.
* libhppa.h: Convert to C90. Replace INLINE with inline.
2003-08-06 Alan Modra <>
* elf64-ppc.c (ppc_stub_name): Tweak names for better readability.
(ppc64_elf_adjust_dynamic_symbol): Allow copy relocs against
function descriptors, but warn.
(ppc_build_one_stub): Remove a couple of vars. Move code creating
stub syms so that we can avoid a stub sym if we already have a
plt sym. Do not redefine an existing symbol.
(ppc64_elf_build_stubs): When --emit-stub-syms, print a symbol for
2003-08-06 Nick Clifton <>
* po/fr.po: Updated French translation.
2003-08-06 Alan Modra <>
* elflink.c (_bfd_elf_create_dynamic_sections): Mark .dynbss with
2003-08-05 Daniel Jacobowitz <>
* elf32-arm.h (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
(elf32_arm_final_link_relocate, elf32_arm_relocate_section): Use it.
2003-08-03 Jeff Muizelaar <>
* coffcode.h (coff_slurp_line_table): Return with a warning
message if the line number table could not be read.
2003-08-04 Nick Clifton <>
* elflink.h (elf_link_add_object_symbols): Prepend "warning: "
to messages produced for .gnu.warning.SYMBOL sections.
2003-08-04 Alan Modra <>
* elfcode.h: Convert to C90, remove unneeded casts and prototypes.
* elfcore.h: Likewise.
* elflink.c: Likewise.
* elflink.h: Likewise.
* elf.c (sym_is_global): Remove INLINE.
(align_file_position): Replace INLINE with inline.
* elfcode.h (elf_swap_dyn_in, elf_swap_dyn_out): Remove INLINE.
(elf_file_p): Replace INLINE with inline.
2003-08-02 Kaz Kojima <>
* elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here.
2003-08-01 H.J. Lu <>
* elfxx-ia64.c (get_got): Align the .got section at 8 bytes.
2003-08-01 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Use
ElfNN_External_Rela instead of Elf64_External_Rela.
2003-08-01 Nick Clifton <>
* config.bfd: Add code to catch obsolete configurations and warn
about them unless --enable-obsolete is used. Use this to mark
vax-vms port as obsolete.
2003-07-30 Alan Modra <>
* elf32-ppc.c (ppc_elf_install_value): Tidy.
(ppc_elf_relax_section): Remove dead code. Remove unnecessary casts.
* elfxx-target.h: Remove PARAMS macro. Formatting.
2003-07-30 Alan Modra <>
* elf.c (bfd_section_from_r_symndx): Test for SHN_UNDEF.
* elf64-ppc.c (get_fdh): New function, split out from
(ppc64_elf_check_relocs): Use get_fdh.
(func_desc_adjust): Likewise. Tidy.
(ppc64_elf_edit_opd): Tighten reloc checks. Free local_syms on error
exit. Use get_fdh. Account for superfluous dynamic relocs.
(ppc64_elf_relocate_section): Warning fix.
2003-07-30 Jason Eckhardt <>
* coff-i860.c: Convert to ISO C90. Remove superflous prototypes.
2003-07-30 Jason Eckhardt <>
* elf32-i860.c: Convert to ISO C90. Remove superflous prototypes.
2003-07-30 Randolph Chung <>
* elf-hppa.h (elf_hppa_relocate_section): Look up dyn_h for undefweak.
* elf64-hppa.c (elf64_hppa_finalize_dlt): Check h->root.type.
2003-07-30 Alan Modra <>
* elf.c: Convert to C90, remove unnecessary prototypes and casts.
Replace PTR with void *. Formatting.
(_bfd_elf_assign_file_position_for_section): Remove INLINE.
(make_mapping): Likewise.
2003-07-29 Alan Modra <>
* elf64-ppc.c (func_desc_adjust): Give linker created function
descriptor symbols a size and type.
(ppc64_elf_relocate_section): Correct lq insn test.
2003-07-28 Eric Christopher <>
* elf32-ppc.c (R_PPC_RELAX32): New relocation.
(ppc_elf_install_value): New function.
(ppc_elf_sort_rela): Remove.
(ppc_elf_relax_section): Rewrite. Remove old relaxation
and replace with out of range branch stubs.
(ppc_elf_relocate_section): Handle R_PPC_RELAX32.
2003-07-29 Alexandre Oliva <>
* elf-m10300.c (mn10300_elf_relax_section): Take symbol hash table
from input_bfd.
2003-07-28 Alan Modra <>
* elf.c (special_sections): Set attributes for .got and .plt.
2003-07-27 Alan Modra <>
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Ensure no copy relocs
on function descriptors.
(ELIMINATE_COPY_RELOCS): Expand comment.
(ppc64_elf_special_sections): Move. Don't include non-ppc64 sections.
Do include ".toc1".
2003-07-25 H.J. Lu <>
* elf.c (_bfd_elf_new_section_hook): Set the default section
type to SHT_NULL.
(elf_fake_sections): Set the section type based on asect->flags
if it is SHT_NULL. Don't abort on processor specific section
2003-07-25 H.J. Lu <>
* bfd-in2.h: Regenerated.
2003-07-25 H.J. Lu <>
* elf-bfd.h (bfd_elf_special_section): New.
(elf_backend_data): Add special_sections, a pointer to
(elf_section_type). New.
(elf_section_flags): New.
(_bfd_elf_get_sec_type_attr): New.
* elf.c (_bfd_elf_make_section_from_shdr): Always use the
real section type/flags.
(special_sections): New.
(get_special_section): New.
(_bfd_elf_get_sec_type_attr): New.
(_bfd_elf_new_section_hook): Check special_section to set
elf_section_type and elf_section_flags.
(elf_fake_sections): Don't use section name to set ELF section
* elf32-m32r.c (m32r_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-m68hc11.c (elf32_m68hc11_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-mcore.c (mcore_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-ppc.c (ppc_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-sh64.c (sh64_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-v850.c (v850_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-xtensa.c (elf_xtensa_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-alpha.c (elf64_alpha_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-hppa.c (elf64_hppa_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-ppc.c (ppc64_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-sh64.c (sh64_elf64_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-ia64.c (elfNN_ia64_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-mips.c (_bfd_mips_elf_special_sections): New.
* elfxx-mips.h (_bfd_mips_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-target.h (elf_backend_special_sections): New. Default
to NULL.
(elfNN_bed): Initialize special_sections.
* section.c (bfd_abs_section): Remove const.
(bfd_und_section): Likewise.
(bfd_com_section): Likewise.
(bfd_ind_section): Likewise.
2003-07-24 Nick Clifton <>
* coff-arm.c (EXTRA_S_FLAGS): Include SEC_CODE so that code
sections are assigned the LOAD attribute.
2003-07-25 Kaz Kojima <>
* elf32-sh.c: Convert to C90. Replace PTR with void *.
* elf32-sh64-com.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-sh64.h: Likewise.
* elf64-sh64.c: Likewise.
2003-07-24 Kaz Kojima <>
* elf32-sh.c (sh_elf_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL.
(allocate_dynrelocs): Likewise.
(sh_elf_relocate_section): Likewise. Use SYMBOL_REFERENCES_LOCAL.
(sh_elf_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL.
2003-07-24 Nick Clifton <>
* po/fr.po: Updated French translation.
2003-07-23 Bob Wilson <>
* elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Make inline and move
near the beginning of the file. Swap order of arguments. Call
_bfd_elf_dynamic_symbol_p with "ignore_protected" set to 0.
(elf_xtensa_fix_refcounts): Adjust xtensa_elf_dynamic_symbol_p call.
(elf_xtensa_relocate_section): Likewise.
(shrink_dynamic_reloc_sections): Likewise.
2003-07-23 Bob Wilson <>
* elf32-xtensa.c (plt_reloc_count): Fix typo in comment.
(elf_xtensa_size_dynamic_sections): Use elf_discarded_section.
(elf_xtensa_combine_prop_entries): Avoid returning non-zero without
first printing an error message.
(elf_xtensa_finish_dynamic_sections): Likewise.
(elf_xtensa_discard_info_for_section): Adjust size of .got.loc when
discarding literal table entries.
(elf_xtensa_merge_private_bfd_data): Remove newline from error message.
(elf_xtensa_do_asm_simplify): Likewise.
2003-07-23 Stephane Carrez <>
* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Avoid crash when
we have a local symbol in common section.
2003-07-22 H.J. Lu <>
* elflink.c (_bfd_elf_dynamic_symbol_p): Don't return TRUE for
weak symbols.
2003-07-22 Nick Clifton <>
* coffcode.h (coff_slurp_symbol_table): Add C_TCSYM and C_ECOML to
expected RS6000 storage classes.
2003-07-21 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Mark
output_bfd unused to silence gcc.
2003-07-21 Nick Clifton <>
* po/sv.po: Updated Swedish translation.
2003-07-21 Alan Modra <>
(_bfd_elf_symbol_refs_local_p): ..this. Declare.
* elflink.c (_bfd_elf_symbol_refs_local_p): New function.
* elf32-i386.c (elf_i386_relocate_section): Remove h NULL test
now done in _bfd_elf_symbol_refs_local_p.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
2003-07-18 H.J. Lu <>
* elflink.c (_bfd_elf_dynamic_symbol_p): Undo the last change.
2003-07-18 H.J. Lu <>
* elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Fix a typo.
* elflink.c (_bfd_elf_dynamic_symbol_p): Return TRUE
immediately if symbol isn't defined locally.
2003-07-18 Richard Henderson <>
* elflink.c (_bfd_elf_dynamic_symbol_p): New.
* elf-bfd.h (_bfd_elf_dynamic_symbol_p): Declare it.
* elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Likewise.
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
* elf64-hppa.c (elf64_hppa_dynamic_symbol_p): Likewise.
* elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Likewise.
Update all callers to provide the relocation being resolved.
2003-07-17 Shaun Jackman <>
* config.bfd (arm-wince-pe): Add -DARM_COFF_BUGFIX to
2003-07-17 Nick Clifton <>
* po/es.po: New Spanish translation.
* po/sv.po: New Swedish translation.
* po/opcodes.pot: Regenerate.
2003-07-16 Richard Henderson <>
* config.bfd,, Remove ia64-aix support.
* elfxx-ia64.c, targets.c: Likewise.
2003-07-16 Richard Henderson <>
* elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return false
for symbols defined locally plus -Bsymbolic. Tidy logic.
2003-07-15 Richard Sandiford <>
* archures.c (bfd_mach_mips7000): New.
* bfd-in2.h: Regenerated.
* cpu-mips.c (arch_info_struct): Add an entry for mips:7000.
* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000.
(mips_mach_extensions): Add an entry for it.
2003-07-14 Nick Clifton <>
* po/tr.po: Update with latest version.
* po/ Regenerate.
* po/bfd.pot: Regenerate.
* Regenerate.
* configure: Regenerate.
2003-07-12 Jeff Baker <>
* config.bfd (__QNXTARGET__): Define for Neutrino architectures.
* elf32-arm.h (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
* elf32-sh.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
* elf32-ppc.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
2003-07-12 Jeff Muizelaar <>
* coffcode.h (coff_set_section_contents): Set the
IMAGE_FILE_32BIT_MACHINE flag for PE targets.
2003-07-11 Richard Sandiford <>
* bfd-in.h (bfd_h8300_pad_address): Declare.
* bfd-in2.h: Regenerate.
* cpu-h8300.c (bfd_h8300_pad_address): New function.
* coff-h8300.c (h8300_reloc16_estimate): Use it to canonicalize
addresses before checking whether they can be relaxed.
(h8300_reloc16_extra_cases): Likewise for the R_MOVL2 sanity check.
Don't complain about overflows in general 8-bit relocations.
* elf32-h8300.c (elf32_h8_relax_section): Use bfd_h8300_pad_address.
Fix handling of R_H8_DIR24A8.
2003-07-11 Richard Sandiford <>
* elf32-h8300.c: Convert function prototypes and definitions
to C90 syntax.
* coff-h8300.c: Likewise.
* cpu-h8300.c: Likewise.
2003-07-11 Alan Modra <>
* po/ Regenerate.
* po/bfd.pot: Likewise.
2003-07-10 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Create new
.got.loc section. Do not set SEC_ALLOC or SEC_LOAD flags for the
.xt.lit.plt section.
(elf_xtensa_size_dynamic_sections): Set size of the .got.loc section
and allocate memory for it.
(elf_xtensa_combine_prop_entries): Copy contents of .xt.lit output
section to the .got.loc section.
(elf_xtensa_finish_dynamic_sections): Fix up call to
elf_xtensa_combine_prop_entries and set DT_XTENSA_GOT_LOC_OFF to
the address of .got.loc.
(relax_property_section): Shrink .got.loc to match changes in any
literal table section.
(xtensa_is_property_section): Change to match
(xtensa_is_littable_section): New.
2003-07-10 H.J. Lu <>
* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1 instead of
2003-07-10 Alan Modra <>
* (BFD32_BACKENDS): Add elf32-am33lin.lo.
(BFD32_BACKENDS_CFILES): elf32-am33lin.c not elf32-am33lin.lo.
Run "make dep-am".
* Regenerate.
2003-07-10 Alexandre Oliva <>
2001-09-12 Alexandre Oliva <>
* elf32-am33lin.c (ELF_MACHINE_CODE): Redefine to EM_MN10300.
(ELF_MACHINE_ALT1): Define to EM_CYGNUS_MN10300.
2001-06-02 Nick Clifton <>
* elf32-am33lin.c: Rename global functions.
2001-05-09 Alexandre Oliva <>
* config.bfd (am33_2.0, am33_2.0-*-linux*): Added.
* (bfd_elf32_am33lin_vec): Added.
* (BFD32_BACKENDS): Added elf32-am33lin.lo.
(elf32-am33lin.lo): List dependencies.
* aclocal.m4, configure, Rebuilt.
ELF_ARCH was not defined before.
(elf_symbol_leading_char): Define if not defined.
* elf32-am33lin.c: Override the definitions above.
* targets.c (bfd_elf32_am33lin_vec): New.
2003-07-09 Alexandre Oliva <>
2002-12-12 Alexandre Oliva <>
* elf-m10300.c (elf32_mn10300_link_hash_newfunc): Initialize
2001-12-13 Alexandre Oliva <>
* elf-m10300.c (ELF_DYNAMIC_INTERPRETER): Renamed from to
2001-10-10 Alexandre Oliva <>
* elf-m10300.c (elf_mn10300_sizeof_plt0): New macro.
(_bfd_mn10300_elf_adjust_dynamic_symbol): Use it.
(_bfd_mn10300_elf_finish_dynamic_symbol): Likewise.
* elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Allocate
.rela.* section contents with bfd_zalloc.
2001-09-25 Alexandre Oliva <>
* elf-m10300.c: Added declarations for functions missing them.
Merge some shared-library changes from the i386 back-end. Use
R_MN10300_RELATIVE instead of R_MN10300_PCREL32 and
R_MN10300_GLOB_DAT instead of R_MN10300_32 where appropriate.
(struct elf32_mn10300_link_hash_entry): Remove duplicates of
members of elf_link_hash_entry. Adjusted references.
(mn10300_elf_final_link_relocate): dynobj was already loaded
into a local variable, use it.
2001-09-21 Nick Clifton <>
* elf-m10300.c: Add missing function prototypes.
2001-08-24 Alexandre Oliva <>
* elf-m10300.c (mn10300_elf_relocate_section): Don't compute
relocation for dynamic relocations.
2001-05-16 Alexandre Oliva <>
* reloc.c (BFD_RELOC_MN10300_GOTOFF24): New.
* elf-m10300.c: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
(_bfd_mn10300_elf_create_dynamic_sections): Move creation ot PLT...
(_bfd_mn10300_elf_create_got_section): ... here, so that its
adress is already known at the time we compute relaxations.
(mn10300_elf_relax_section): Relax GOTPC32, GOTOFF32, GOT32
and PLT32 to narrower relocations.
* libbfd.h, bfd-in2.h: Rebuilt.
2001-04-12 Alexandre Oliva <>
* reloc.c (BFD_RELOC_MN10300_GOT32, BFD_RELOC_MN10300_GOT24,
BFD_RELOC_MN10300_RELATIVE): New relocs.
* libbfd.h, bfd-in2.h: Rebuilt.
* elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): New.
(struct elf32_mn10300_link_hash_entry): Added DSO-related
(elf_mn10300_howto): Defined new relocation types.
(mn10300_reloc_map): Map them.
(_bfd_mn10300_elf_create_got_section): New fn.
(mn10300_elf_check_relocs): Handle PIC relocs.
(mn10300_elf_final_link_relocate): Likewise.
(mn10300_elf_relocate_section): Handle DSOs.
(elf_mn10300_plt0_entry, elf_mn10300_plt_entry,
elf_mn10300_pic_plt_entry): New.
(elf_mn10300_sizeof_plt, elf_mn10300_plt_plt0_offset,
elf_mn10300_plt0_linker_offset, elf_mn10300_plt0_gotid_offset,
elf_mn10300_plt_temp_offset, elf_mn10300_plt_symbol_offset,
elf_mn10300_plt_reloc_offset: New macros.
(_bfd_mn10300_elf_create_dynamic_sections): New function.
(_bfd_mn10300_elf_adjust_dynamic_symbol): Likewise.
(_bfd_mn10300_elf_discard_copies): Likewise.
(_bfd_mn10300_elf_size_dynamic_sections): Likewise.
(_bfd_mn10300_elf_finish_dynamic_symbol): Likewise.
(_bfd_mn10300_elf_finish_dynamic_sections): Likewise.
elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
elf_backend_plt_readonly, elf_backend_want_plt_sym,
elf_backend_got_header_size, elf_backend_plt_header_size): New
2003-07-09 Alexandre Oliva <>
2001-05-06 Alexandre Oliva <>
* elf-m10300.c (compute_function_info): Account for AM33
registers in `movm' when computing stack space for `call' when
linking for AM33/2.0 link.
2000-04-01 Alexandre Oliva <>
* archures.c (bfd_mach_am33_2): Renamed from bfd_mach_am332.
* bfd-in2.h: Rebuilt.
* cpu-m10300.c (bfd_am33_2_arch): Renamed from bfd_am332_arch.
* elf-m10300.c: Updated.
2000-03-31 Alexandre Oliva <>
* archures.c (bfd_mach_am332): Defined.
* bfd-in2.h: Rebuilt.
* cpu-m10300.c (bfd_am332_arch): Defined.
(bfd_am33_arch): Chained with am33-2.
* elf-m10300.c (elf_mn10300_mach): Handle am332.
(_bfd_mn10300_elf_final_write_processing): Likewise.
2003-07-09 H.J. Lu <>
* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL.
2003-07-10 Alan Modra <>
* elf64-ppc.c (bfd_elf64_mkobject): Define.
(struct ppc64_elf_obj_tdata): New.
(ppc64_elf_tdata, ppc64_tlsld_got): Define.
(ppc64_elf_mkobject): New function.
(struct got_entry): Add "owner". Move "tls_type".
(struct ppc_link_hash_table): Delete "relgot", "tlsld_got".
(ppc64_elf_init_stub_bfd): New function.
(create_got_section): Create header .got in dynobj. Create .got
and in each bfd. Stash pointers in ppc64_elf_obj_tdata.
(ppc64_elf_create_dynamic_sections): Don't call create_got_section.
Look for dynobj .got, and test it.
(ppc64_elf_copy_indirect_symbol): Adjust for changed got.
(update_local_sym_info): Likewise.
(ppc64_elf_check_relocs): Likewise.
(ppc64_elf_gc_sweep_hook): Likewise.
(ppc64_elf_tls_optimize): Likewise.
(allocate_dynrelocs): Likewise.
(ppc64_elf_size_dynamic_sections): Likewise.
(ppc64_elf_relocate_section): Likewise.
(ppc64_elf_next_toc_section): Update comment.
(toc_adjusting_stub_needed): Remove unneeded cast.
(ppc64_elf_build_stubs): Check for stub sections in stub bfd by
testing section flags.
(ppc64_elf_build_stubs): Likewise.
(ppc64_elf_size_stubs): Likewise. Remove stub_bfd param.
(ppc64_elf_finish_dynamic_sections): Write out got sections.
(func_desc_adjust): Copy over dynamic info for undef weaks.
* elf64-ppc.h (ppc64_elf_init_stub_bfd): Declare.
(ppc64_elf_size_stubs): Update prototype.
* elflink.h (elf_link_sort_relocs): Use link_orders to find reldyn
input sections rather than scanning dynobj.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (mips_elf_link_hash_entry): Remove min_dyn_reloc_index.
(bfd_mips_elf_swap_msym_in, bfd_mips_elf_swap_msym_out): Delete.
(mips_elf_create_msym_section): Delete.
(mips_elf_create_dynamic_relocation): Don't set min_dyn_reloc_index.
(_bfd_mips_elf_copy_indirect_symbol): Likewise.
(_bfd_mips_elf_create_dynamic_sections): Don't create .msym.
(_bfd_mips_elf_size_dynamic_sections): Don't calculate its size.
(_bfd_mips_elf_size_dynamic_sections): Don't add DT_MIPS_MSYM.
(_bfd_mips_elf_finish_dynamic_symbol): Don't add symbols to .msym.
(_bfd_mips_elf_finish_dynamic_sections): Likewise.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (mips_elf_irix6_finish_dynamic_symbol): Make the
symbols protected.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Fix handling
of relocations whose offset is -2.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Treat
forced-local symbols like other locals. Don't create relocations
against STN_UNDEF in irix objects.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): In SGI-
compatible objects, add the values of defined external symbols
to the addend.
2003-07-09 Richard Sandiford <>
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Always
initialize a GOT entry to the symbol's st_value.
2003-07-08 Alan Modra <>
* elf-bfd.h (struct elf_obj_tdata): Move linker_section_pointers..
* elf32-ppc.c (struct ppc_elf_obj_tdata): here. New.
(ppc_elf_tdata): Define.
(elf_local_ptr_offsets): Adjust.
(ppc_elf_mkobject): New function.
(bfd_elf32_mkobject): Define.
* elfcode.h (elf_object_p): Allocate tdata via _bfd_set_format.
* elfcore.h (elf_core_file_p): Likewise.
* section.c (bfd_section_init): Remove prototype.
2003-07-08 Alan Modra <>
* elf-bfd.h (struct elf_link_hash_entry): Remove linker_section_pointer
(enum elf_linker_section_enum): Delete.
(struct elf_linker_section): Delete.
(struct elf_linker_section_pointers): Delete.
(struct elf_obj_tdata): Remove #if 0 chunk. Remove linker_section.
Make linker_section_pointers a void**.
(elf_local_ptr_offsets, elf_linker_section): Don't define.
* elf32-ppc.c (enum elf_linker_section_enum): New, cut-down version
of old item in elf-bfd.h.
(struct elf_linker_section): Likewise.
(struct elf_linker_section_pointers): Likewise.
(elf_local_ptr_offsets): Define.
(struct ppc_elf_link_hash_entry): Add linker_section_pointer.
(ppc_elf_link_hash_newfunc): Init it.
(struct ppc_elf_link_hash_table): Add sbss.
(ppc_elf_link_hash_table_create): zmalloc rather than clearing
individual fields.
(elf_create_linker_section): Fold into..
(ppc_elf_create_linker_section): Remove hole_size code.
Make rela section here if shared.
(elf_find_pointer_linker_section): Pass lsect rather than enum.
(elf_create_pointer_linker_section): Adjust. zalloc rather than
clearing in a loop.
(elf_finish_pointer_linker_section): Adjust. Don't make rela
section here.
(ppc_elf_check_relocs): Adjust.
(ppc_elf_add_symbol_hook): Tighten hash creator test. Remove code
creating .sbss by hand.
* elf.c (_bfd_elf_link_hash_newfunc): Adjust.
2003-07-04 Jakub Jelinek <>
* elf32-s390.c (elf_howto_table): Change R_390_GOT12 to
* elf64-s390.c (elf_howto_table): Change R_390_GOT12 to
2003-07-04 Jakub Jelinek <>
true even if -pie.
2003-07-04 Jakub Jelinek <>
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add rel_fptr_sec.
(elfNN_ia64_dynamic_symbol_p): Change info->shared into
(get_fptr): For -pie create .opd as writable section and create
.rela.opd as well.
(elfNN_ia64_check_relocs): Change info->shared into
(allocate_fptr): Likewise.
(allocate_dynrel_entries): Account for a relative reloc for -pie
@fptr(). Don't account for a relative reloc if -pie want_ltoff_fptr
for undefweak symbol. Account for an IPLT reloc in .rela.opd
section if -pie.
(set_got_entry): Don't create a relative reloc if -pie
want_ltoff_fptr for undefweak symbol.
(set_fptr_entry): Emit an IPLT reloc in .rela.opd for -pie.
(elfNN_ia64_relocate_section): Emit a relative reloc for -pie
* elfxx-ia64.c (elfNN_ia64_relocate_section): Issue undefined_symbol
even if -pie.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
2003-07-04 Paul Clarke <>
* elf32-h8300.c (R_H8_DIR32A16): Fix name field.
(elf32_h8_relax_section) <R_H8_DIR16A8>: Adjust position of relocation.
<R_H8_DIR32A16>: Fix type of relocation.
2003-07-04 Kaz Kojima <>
* elf32-sh.c (sh_elf_create_dynamic_sections): Return if dynamic
sections were created already. Remove unnecessary tests of
the previous change.
2003-07-04 Kaz Kojima <>
* elf32-sh.c (sh_elf_create_dynamic_sections): Don't call
bfd_make_section for existing sections.
2003-07-04 Alan Modra <>
* elf32-sparc.c (elf32_sparc_check_relocs): Don't call
create_got_section if we already have done so.
* elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
(sh_elf_check_relocs): Likewise.
(sh_elf_adjust_dynamic_symbol): Delete "dynobj" var. Use
htab->root.dynobj instead.
(sh_elf_check_relocs): Likewise.
(sh_elf_finish_dynamic_sections): Likewise.
* section.c (bfd_make_section): Return NULL for existing section.
2003-07-04 Alan Modra <>
* elf32-ppc.c (ppc_elf_create_dynamic_sections): Don't call
ppc_elf_create_got if we've already done so.
* elf-bfd.h (_bfd_elf_create_linker_section) Don't declare.
(_bfd_elf_find_pointer_linker_section): Likewise.
(bfd_elf32_create_pointer_linker_section): Likewise.
(bfd_elf32_finish_pointer_linker_section): Likewise.
(bfd_elf64_create_pointer_linker_section): Likewise.
(bfd_elf64_finish_pointer_linker_section): Likewise.
(_bfd_elf_make_linker_section_rela): Likewise.
* elfcode.h (elf_create_pointer_linker_section): Don't define.
(elf_finish_pointer_linker_section): Likewise.
* elflink.c (_bfd_elf_make_linker_section_rela): Delete.
(_bfd_elf_create_linker_section): Move this function..
(_bfd_elf_find_pointer_linker_section): ..and this..
* elflink.h (elf_create_pointer_linker_section): ..and this..
(elf_finish_pointer_linker_section): ..and this..
* elf32-ppc.c: here, renaming to the following, and adjusting
(elf_create_linker_section): Convert to C90, tidy.
(elf_find_pointer_linker_section): Likewise.
(elf_create_pointer_linker_section): Likewise.
(elf_finish_pointer_linker_section): Likewise.
* elf32-i370.c: Delete #if 0 code.
2003-07-02 Alan Modra <>
* elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't allow _savef* and
_restf* to be satisfied by shared libs, and always force them local.
(toc_adjusting_stub_needed): Avoid scanning linker created sections.
Correct test for "bl".
(ppc64_elf_relocate_section <R_PPC64_TLS>): Correct test for
primary opcode 31.
2003-07-01 Martin Schwidefsky <>
* elf32-s390.c (s390_elf_ldisp_reloc): New prototype.
(s390_tls_reloc): New function.
(elf_howto_table): Add long displacement relocations R_390_20,
R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.
(elf_s390_reloc_type_lookup): Likewise.
(elf_s390_check_relocs): Likewise.
(elf_s390_gc_sweep_hook): Likewise.
(elf_s390_relocate_section): Likewise.
* elf64-s390.c: Same changes as for elf32-s390.c.
* reloc.c: Add long displacement relocations BFD_RELOC_390_20,
* bfd-in2.h: Regenerate.
* libbfd.h: Likewise.
2003-06-30 Alan Modra <>
* cpu-ia64-opc.c (ext_imms_scaled): Don't sign extend using shifts.
(ins_imms, ins_immsm1u4): Likewise. Warning fix.
2003-06-29 Alan Modra <>
* archive.c: Convert to C90, remove unnecessary prototypes and casts.
Replace PTR with void *. Formatting.
* archive64.c: Likewise.
* archures.c: Likewise.
* bfd-in.h: Likewise.
* bfd.c: Likewise.
* bfdio.c: Likewise.
* bfdwin.c: Likewise.
* cache.c: Likewise.
* corefile.c: Likewise.
* format.c: Likewise.
* init.c: Likewise.
* libbfd-in.h: Likewise.
* libbfd.c: Likewise.
* linker.c: Likewise.
* opncls.c: Likewise.
* reloc.c: Likewise.
* section.c: Likewise.
* simple.c: Likewise.
* syms.c: Likewise.
* targets.c: Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* ecoff.c (bfd_debug_section): Add missing kept_section initialization.
* libbfd-in.h (_bfd_sh_align_load_span): Don't declare if defined.
* libbfd.c (COERCE32, EIGHT_GAZILLION): Simplify.
(bfd_getb64): Rewrite without parens.
(bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
* cache.c (insert, snip): Remove INLINE.
* linker.c (bfd_link_add_undef): Likewise.
2003-06-29 Andreas Jaeger <>
* elf64-x86-64.c: Convert to ISO C90 prototypes, remove
unnecessary prototypes. Replace PTR with void *.
(elf64_x86_64_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL to
trim plt entries. Move undefweak non-default visibility test ...
(allocate_dynrelocs): ... from here.
Change all callers.
(allocate_dynrelocs): Use SYMBOL_CALLS_LOCAL. Use
SYMBOL_REFERENCES_LOCAL for dynreloc check.
(elf64_x86_64_relocate_section): Use SYMBOL_CALLS_LOCAL for
dynreloc and .got relocs.
(elf64_x86_64_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL
for .got relocs.
2003-06-29 Thiemo Seufer <>
* elfxx-mips.c: Allow lazy binding for R_MIPS_JALR.
2003-06-27 Nick Clifton <>
* opncls.c (bfd_add_gnu_debuglink_section): Rename to
bfd_add_gnu_debuglink_section and only create the section, do not
fill in its contents.
(bfd_fill_in_gnu_debuglink_section): New function. Fill in the
contents of a .gnu-debuglink section.
* bfd-in2.h: Regenerate.
2003-06-27 Thiemo Seufer <>
* elfxx-mips.c: Revert .got alignment to 2**4.
2003-06-27 Thiemo Seufer <>
* elf32-mips.c: Fix addend for _gp_disp special symbol.
2003-06-27 Thiemo Seufer <>
* elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default
relocation header setup.
2003-06-25 Alan Modra <>
* elf32-ppc.c (ppc_elf_howto_table): Remove unnecessary cast.
(ppc_elf_reloc_type_lookup): Modify comment.
(ppc_elf_info_to_howto): Ditto.
(ppc_elf_relocate_section): Ditto.
(ppc_elf_check_relocs): Call ppc_elf_howto_init.
2003-06-25 Alan Modra <>
* aout-ns32k.c: Correct spelling of "relocatable".
* aoutx.h: Likewise.
* bfd-in.h: Likewise.
* bfd.c: Likewise.
* bout.c: Likewise.
* coff-a29k.c: Likewise.
* coff-alpha.c: Likewise.
* coff-arm.c: Likewise.
* coff-i386.c: Likewise.
* coff-i860.c: Likewise.
* coff-i960.c: Likewise.
* coff-m68k.c: Likewise.
* coff-m88k.c: Likewise.
* coff-mcore.c: Likewise.
* coff-mips.c: Likewise.
* coff-or32.c: Likewise.
* coff-ppc.c: Likewise.
* coff-rs6000.c: Likewise.
* coff-sh.c: Likewise.
* coff-tic80.c: Likewise.
* coff64-rs6000.c: Likewise.
* cofflink.c: Likewise.
* cpu-ns32k.c: Likewise.
* ecoff.c: Likewise.
* ecofflink.c: Likewise.
* elf-bfd.h: Likewise.
* elf-eh-frame.c: Likewise.
* elf-hppa.h: Likewise.
* elf-m10200.c: Likewise.
* elf-m10300.c: Likewise.
* elf.c: Likewise.
* elf32-arm.h: Likewise.
* elf32-avr.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-d10v.c: Likewise.
* elf32-dlx.c: Likewise.
* elf32-fr30.c: Likewise.
* elf32-frv.c: Likewise.
* elf32-h8300.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-i860.c: Likewise.
* elf32-i960.c: Likewise.
* elf32-ip2k.c: Likewise.
* elf32-iq2000.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-mips.c: Likewise.
* elf32-msp430.c: Likewise.
* elf32-openrisc.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-sparc.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-vax.c: Likewise.
* elf32-xstormy16.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mips.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-sparc.c: Likewise.
* elf64-x86-64.c: Likewise.
* elfcode.h: Likewise.
* elflink.h: Likewise.
* elfn32-mips.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* i386linux.c: Likewise.
* ieee.c: Likewise.
* libcoff-in.h: Likewise.
* linker.c: Likewise.
* m68klinux.c: Likewise.
* pdp11.c: Likewise.
* pe-mips.c: Likewise.
* peXXigen.c: Likewise.
* reloc.c: Likewise.
* reloc16.c: Likewise.
* sparclinux.c: Likewise.
* sunos.c: Likewise.
* syms.c: Likewise.
* versados.c: Likewise.
* vms.c: Likewise.
* xcofflink.c: Likewise.
* bfd-in2.h: Regenerate.
* libcoff.h: Regenerate.
* libbfd.h: Regenerate.
2003-06-24 Alan Modra <>
* elf32-ppc.c (ppc_elf_check_relocs): Report plt reloc against
local sym errors.
* elf32-i386.c: Convert to C90 function definitions, remove unnecessary
prototypes and casts. Replace PTR with void *. Formatting.
* elf32-ppc.c: Likewise. Break long strings too.
(ppc_elf_relax_section): Use enum elf_ppc_reloc_type for r_type.
(ppc_elf_unhandled_reloc): Internationalize error message.
* elf32-ppc.h: Remove PARAMS.
2003-06-23 Mark Mitchell <>
* elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count
APUinfo slots.
(ppc_elf_final_write_processing): Likewise.
2003-06-23 H.J. Lu <>
* elflink.h (elf_link_input_bfd): Check raw size when using
kept_section to preserve debug information discarded by
2003-06-20 Alan Modra <>
* elf64-ppc.c (struct ppc_link_hash_table): Add top_id.
(ppc64_elf_setup_section_lists): Set it.
(ppc64_elf_relocate_section): Check sym section id against top_id.
(ppc_build_one_stub): Comment on top_id.
2003-06-20 Ralf Corsepius <>
* config.bfd: Add tic4x-*-rtems*.
2003-06-20 Alan Modra <>
* elf64-ppc.c: Convert to C90 function definitions, remove unnecessary
prototypes and casts. Replace PTR with void *. Format copyright.
Mention ABI links.
(struct ppc_link_hash_table): Rename sgot, srelgot, splt, srelplt,
sdynbss, srelbss, sglink, sbrlt and srelbrlt to got, relgot .. relbrlt.
(ppc_type_of_stub): Make r_type an enum.
(ppc64_elf_size_stubs): Likewise.
* elf64-ppc.h: Remove PARAMS macro.
2003-06-19 Alan Modra <>
* elf64-ppc.c (ppc64_elf_link_hash_table_create): Reinstate init of
elf hash tab fields.
* elf64-ppc.c (ppc64_elf_reloc_type_lookup): Tidy prototype.
(ppc64_elf_info_to_howto): Likewise.
(ppc64_elf_build_stubs): Add "stats" param, and print statistics.
* elf64-ppc.h (ppc64_elf_build_stubs): Adjust prototype.
2003-06-19 Alan Modra <>
* elf64-sparc.c (sparc64_elf_relocate_section): Ignore R_SPARC_DISP32
reloc overflow on discarded eh_frame entries.
2003-06-19 Alan Modra <>
* elf64-ppc.c (toc_adjusting_stub_needed): New function.
(ppc64_elf_next_input_section): Use it here to set has_gp_reloc.
Return error condition.
(ppc64_elf_size_stubs): Restrict toc adjusting stubs to sections
that have has_gp_reloc set.
(struct ppc_link_hash_table): Add stub_count.
(ppc_build_one_stub): Increment it.
(ppc64_elf_link_hash_table_create): zmalloc rather than clearing
individual fields.
* elf64-ppc.h (ppc64_elf_next_input_section): Update prototype.
2003-06-18 Alan Modra <>
* elflink.h (elf_gc_record_vtentry): Revert last change. Correct
size calculation from addend. Round size up.
2003-06-18 Hans-Peter Nilsson <>
* elf32-cris.c (cris_elf_relocate_section) <case
R_CRIS_32_GOTREL>: When linking a program, don't complain about a
symbol from a normal object or an undefined weak symbol.
2003-06-18 Alan Modra <>
* elf64-ppc.c (ppc64_elf_relocate_section): Accept a symbol on
R_PPC64_TOC relocs.
2003-06-17 H.J. Lu <>
* section.c (struct sec): Put back kept_section.
(STD_SECTION): Put back kept_section initialization.
* bfd-in2.h: Regenerate.
* elflink.h (elf_link_input_bfd): Also check discarded linkonce
sections for relocateable output. Use kept_section to preserve
debug information discarded by linkonce.
2003-06-17 Roland McGrath <>
* elfxx-ia64.c (elfNN_ia64_relocate_section): Support
segment-relative relocation between different segments.
2003-06-17 Alan Modra <>
* elf64-ppc.c (ppc64_elf_relocate_section): Do unaligned reloc
optimizations earlier.
* elf64-ppc.c (struct ppc_link_hash_table): Reinstate top_index.
Restore previous input_list type.
(ppc64_elf_link_hash_table_create): Undo last change.
(ppc64_elf_setup_section_lists): Reinstate code setting up input lists
per output section, but don't bother with bfd_abs_section marker.
(ppc64_elf_next_input_section): Adjust for multiple input section
(group_sections): Likewise.
2003-06-17 Jakub Jelinek <>
* elf64-ppc.c (ppc64_elf_relocation_section): Ensure
*r_offset == r_addend for RELATIVE relocs against .got.
2003-06-17 Alan Modra <>
* elf64-ppc.c (ppc64_elf_relocate_section): Optimize unaligned relocs.
2003-06-17 Nick Clifton <>
* elflink.h (elf_gc_record_vtentry): Allocate an extra element
in the vtable_entries_used array to allow for the accessing
the largest element.
2003-06-17 Alan Modra <>
* elf64-ppc.c (struct ppc_link_hash_table): Remove top_index. Modify
(ppc64_elf_link_hash_table_create): Init input_list here.
(ppc64_elf_setup_section_lists): Remove code setting up input lists
per output section. Set toc_off for abs and other standard sections.
(ppc64_elf_reinit_toc): Don't set elf_gp on input bfds lacking a toc.
(ppc64_elf_next_input_section): Adjust for single input section list.
Don't set toc_curr from input bfds that haven't set elf_gp.
(group_sections): Adjust for single input section list.
* elf64-ppc.c (ppc64_elf_relocate_section): Correct pcrel section zero.
2003-06-16 Alan Modra <>
* elf64-ppc.c (ppc64_elf_relocate_section): When optimizing toctprel
tls, check that a TOC16_DS or TOC16_LO_DS reloc isn't pointing to a
dtprel entry. Ensure TLS_LD DTPMOD reloc has a zero addend. Write
got section for RELATIVE relocs. Fix wrong comment. Change condition
under which dynamic relocs update the section contents.
2003-06-13 Robert Millan <>
* config.bfd: Add i386-netbsd-gnu target.
2003-06-12 Nick Clifton <>
* opncls.c (calc_crc32): Rename to
bfd_calc_gnu_debuglink_crc32 and export.
(GNU_DEBUGLINK): Define and use to replace occurrences of
hard-coded ".gnu_debuglink" in the code.
(get_debug_link_info): Prevent aborts by replacing call to
xmalloc with a call to malloc.
(find_separate_debug_file): Prevent aborts by replacing calls
to xmalloc and xstrdup with calls to malloc and strdup.
(bfd_add_gnu_debuglink): New function. Add a .gnu_debuglink
section to a bfd.
* bfd-in2.h: Regenerate.
2003-06-12 Federico G. Schwindt <>
* config.bfd (i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3]):
New target (was i[3-7]86-*-openbsd* before).
(i[3-7]86-*-openbsd*): Change to use bfd_elf32_i386_vec.
(vax-*-openbsd*): New target.
2003-06-11 Thiemo Seufer <>
* elfxx-mips.c (MIPS_ELF_OPTIONS_SECTION_NAME): Use .MIPS.options
for n32, too.
(MIPS_ELF_STUB_SECTION_NAME): Use .MIPS.stubs for n32, too.
(mips_elf_rel_dyn_section): Use appropriate section alignment.
(mips_elf_create_got_section): Likewise.
(_bfd_mips_elf_create_dynamic_sections): Likewise.
2003-06-11 Thiemo Seufer <>
* elf32-mips.c (mips_elf_generic_reloc): New Function.
(elf_mips_howto_table_rel): Use it.
(gprel32_with_gp): Move prototype.
(mips_elf_hi16_reloc): Check for ! BSF_LOCAL instead of zero addend.
Use mips_elf_generic_reloc.
(mips_elf_got16_reloc): Check for ! BSF_LOCAL instead of zero addend.
Code cleanup.
(_bfd_mips_elf32_gprel16_reloc): Check for ! BSF_LOCAL instead of
zero addend.
(mips_elf_gprel32_reloc): Likewise. Use the same GP assignment logic
as in the other *_gprel*_reloc functions.
(gprel32_with_gp): Handle partial_inplace properly.
(mips32_64bit_reloc): Use mips_elf_generic_reloc.
(mips16_gprel_reloc): Check for ! BSF_LOCAL instead of zero addend.
Do addend handling directly instead of calling
_bfd_mips_elf_gprel16_with_gp. Handle partial_inplace properly.
* elf64-mips.c (mips_elf64_hi16_reloc): Check for ! BSF_LOCAL instead
of zero addend. Handle partial_inplace properly.
(mips_elf64_got16_reloc): Check for ! BSF_LOCAL instead of zero
(mips_elf64_gprel16_reloc): Likewise.
(mips_elf64_literal_reloc): Likewise.
(mips_elf64_gprel32_reloc): Likewise. Use the same GP assignment
logic as in the other *_gprel*_reloc functions. Handle
partial_inplace properly.
(mips_elf64_shift6_reloc): Check for ! BSF_LOCAL instead of zero
addend. Handle partial_inplace properly.
(mips16_gprel_reloc): Likewise. Do addend handling directly instead
of calling _bfd_mips_elf_gprel16_with_gp.
* elfn32-mips.c (mips_elf_got16_reloc): Check for BSF_LOCAL.
(mips_elf_gprel32_reloc): Check for ! BSF_LOCAL instead
of zero addend.
(mips_elf_shift6_reloc): Handle partial_inplace properly.
(mips16_gprel_reloc): Likewise. Do addend handling directly instead
of calling _bfd_mips_elf_gprel16_with_gp.
* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Handle
partial_inplace properly. Fix wrong addend handling. Fix overflow
(_bfd_mips_elf_sign_extend): Renamed from mips_elf_sign_extend and
(mips_elf_calculate_relocation): Use _bfd_mips_elf_sign_extend.
(_bfd_mips_elf_relocate_section): Likewise.
(mips_elf_create_dynamic_relocation): Update sec_info_type access.
* elfxx-mips.h (_bfd_mips_relax_section): Fix prototype declaration.
(_bfd_mips_elf_sign_extend): New prototype.
2003-06-11 Federico G. Schwindt <>
* config.bfd (sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1]):
New target (was sparc-*-openbsd* before).
(sparc-*-openbsd*): Change to use bfd_elf32_sparc_vec.
* (vax-*-openbsd*): Set COREFILE to netbsd-core.lo.
* configure: Regenerate.
2003-06-11 H.J. Lu <>
* po/Make-in (DESTDIR): New.
(install-data-yes): Support $(DESTDIR).
(uninstall): Likewise.
2003-06-11 Alan Modra <>
* (config.status): Depend on version.h.
Run "make dep-am".
* Regenerate.
* po/ Regenerate.
2003-06-10 Alan Modra <>
Gary Hade <>
* elf64-ppc.c (ppc64_elf_relocate_section <*_DS>): Special case lq.
2003-06-10 Richard Sandiford <>
* archures.c (bfd_mach_h8300sxn): New architecture.
* bfd-in2.h: Regenerate.
* cpu-h8300.c (h8300_scan): Check for 'sxn'.
(h8300sxn_info_struct): New.
(h8300sx_info_struct): Link to it.
* elf32-h8300.c (elf32_h8_mach): Add h8300sxn case.
(elf32_h8_final_write_processing): Likewise.
2003-06-08 Alan Modra <>
* elf64-ppc.c: Move TARGET_LITTLE_SYM and other macros used by
elfxx-target.h so that we can use elf_backend_got_header_size.
(GLINK_CALL_STUB_SIZE): Modify. Define new glink call stub and
associated macros.
(ppc64_elf_howto_raw <GOT_TPREL16_DS, GOT_TPREL16_LO_DS>): Correct
(enum ppc_stub_type): Add ppc_stub_long_branch_r2off and
(struct ppc_stub_hash_entry): Reorganize.
(struct ppc_link_hash_table): Add no_multi_toc, multi_toc_needed,
toc_curr, toc_off and emit_stub_syms.
(ppc64_elf_link_hash_table_create): Init them.
(ppc_stub_name): Correct string size.
(ppc64_elf_check_relocs): Set has_gp_reloc on GOT and TOC relocs.
(ppc64_elf_size_dynamic_sections): Set no_multi_toc if GOT entries
(ppc_type_of_stub): Tweak root.type test.
(build_plt_stub): Remove glink code. Adjust for insn macro changes.
(ppc_size_one_stub): Handle ppc_stub_long_branch_r2off and
(ppc_build_one_stub): Likewise. Fix var shadowing. Correct addis,addi
range test. Use toc_off to calculte r2 values. Handle emit_stub_syms.
(ppc64_elf_setup_section_lists): Remove htab creator flavour test.
Initialize elf_gp and toc_curr.
(ppc64_elf_next_toc_section, ppc64_elf_reinit_toc): New functions.
(ppc64_elf_next_input_section): Set toc_off.
(group_sections): Ensure groups have the same TOC.
(ppc64_elf_size_stubs): Check whether we need a TOC adjusting stub.
(ppc64_elf_build_stubs): Add emit_stub_syms param, and stash in htab.
Build new glink stub.
(ppc64_elf_relocate_section): Handle multiple TOCs. Fix comments.
(ppc64_elf_finish_dynamic_sections): Adjust DT_PPC64_GLINK.
* elf64-ppc.h (ppc64_elf_build_stubs): Update prototype.
(ppc64_elf_next_toc_section, ppc64_elf_reinit_toc): Declare.
* section.c (struct sec): Rename flag12 to has_gp_reloc.
(STD_SECTION): Update.
* ecoff.c (bfd_debug_section): Update comment.
* bfd-in2.h: Regenerate.
2003-06-05 Daniel Jacobowitz <>
* elfcode.h (elf_slurp_reloc_table_from_section): Don't dereference
NULL function pointers.
2003-06-05 Daniel Jacobowitz <>
* simple.c (bfd_simple_get_relocated_section_contents): Call
_bfd_generic_link_add_symbols instead of bfd_link_add_symbols.
2003-06-04 Svein E. Seldal <>
* coff-tic54x.c: Removed the ticoff0_bad_format_hook() and
ticoff1_bad_format_hook() functions. Removed the coff0 and coff1
* coff-tic4x.c: Ditto
* coffcode.h: Added extra arguments to CREATE_BIG_COFF_TARGET_VEC
and CREATE_LITTLE_COFF_TARGET_VEC. Created the macro
CREATE_BIGHDR_COFF_TARGET_VEC. Created the ticoff0_bad_format_hook(),
ticoff1_bad_format_hook() functions. Created the coff0 and coff1
swap tables.
* coff-tic4x.c: Adopted new CREATE_xxx_COFF_TARGET_VEC macros.
* coff-a29k.c: Append COFF_SWAP_TABLE argument
* coff-apollo.c: Ditto
* coff-arm.c: Ditto
* coff-h8300.c: Ditto
* coff-h8500.c: Ditto
* coff-i960.c: Ditto
* coff-m68k.c: Ditto
* coff-m88k.c: Ditto
* coff-mcore.c: Ditto
* coff-sh.c: Ditto
* coff-sparc.c: Ditto
* coff-tic80.c: Ditto
* coff-we32k.c: Ditto
* coff-z8k.c: Ditto
* coff-w65.c: Ditto
2003-06-04 Svein E. Seldal <>
* coff-tic4x.c (ticoff0_swap_table, ticoff1_swap_table): Fixed
initialization bug
2003-06-03 Jakub Jelinek <>
* elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_STACK.
(bfd_section_from_phdr): Likewise.
(map_sections_to_segments): Create PT_GNU_STACK segment header.
(get_program_header_size): Count with PT_GNU_STACK.
* elf-bfd.h (struct elf_obj_tdata): Add stack_flags.
* elflink.h (bfd_elfNN_size_dynamic_sections): Set stack_flags.
2003-06-03 H.J. Lu <>
* elflink.h (elf_link_input_bfd): Call linker error_handler
for discarded definitions.
2003-06-03 Elias Athanasopoulos <>
* syms.c (decode_section_type): Return 'n' if section flags are
2003-06-03 Nick Clifton <>
* elf32-v850.c (v850_elf_howto_t): Rename R_V850_32to
R_V850_ABS32. Add entry for R_V850_REL32.
(v850_elf_reloc_map): Likewise.
(v850_elf_check_relocs): Likewise.
(v850_elf_perform_relocation): Likewise.
(v850_elf_final_link_relocate): Likewise. Include computation
to make R_V850_REl32 pc-relative.
2003-06-03 Kaz Kojima <>
* elf32-sh.c (sh_elf_size_dynamic_sections): Create .interp section
and DT_DEBUG dynamic tag even for position independent executables.
* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewize.
2003-06-02 Daniel Jacobowitz <>
* config.bfd: Move obsolete entries out of the range of the
targmatch sed script.
2003-06-02 Daniel Jacobowitz <>
* config.bfd (mips*-dec-bsd*, mips*-*-pe*): Mark as obsolete.
2003-05-31 Jakub Jelinek <>
* elf32-ppc.c (allocate_dynrelocs): Use single slot for first 8192
plt entries, not just 8191.
2003-05-30 Daniel Jacobowitz <>
* elfxx-mips.c (_bfd_mips_elf_discard_info): Correct loop index.
Reported by Ken Faiczak <>.
2003-05-30 Ulrich Drepper <>
Jakub Jelinek <>
* elflink.h (elf_link_add_object_symbols): Use !info->executable
instead of info->shared where appropriate.
(bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise.
* elflink.c (_bfd_elf_create_got_section): Likewise.
(_bfd_elf_link_create_dynamic_sections): Likewise.
(_bfd_elf_link_assign_sym_version): Likewise.
* elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section
and DT_DEBUG dynamic tag even for position independent executables.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise.
* elf64-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise.
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise.
* elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise.
2003-05-30 Kris Warkentin <>
* elf.c (elfcore_grok_nto_status): Only set lwpid for the active or
signalled thread.
(elfcore_grok_nto_gregs): Only make .reg section for the active thread.
2003-05-29 Nick Clifton <>
* pef.c: Include "safe-ctype.h" instead of <ctype.h>.
Tidy up formatting.
* Add dependency on safe-ctype.h.
* Regenerate.
2003-05-29 Thiemo Seufer <>
* elfxx-mips.c: Don't force symbols local unconditionally.
2003-05-28 Alan Modra <>
* elf32-hppa.c (elf32_hppa_relocate_section): Delete bogus
undefined_symbol call.
2003-05-27 Richard Sandiford <>
* elfxx-mips.c (mips_elf_hash_sort_data): Fix formattting.
(mips_elf_link_hash_table): Likewise.
2003-05-22 Thiemo Seufer <>
* elf64-mips.c (elf_mips_gnu_rel16_s2): Add internally used
R_MIPS_GNU_REL16_S2 support.
(bfd_elf64_bfd_reloc_type_lookup): Use it.
(mips_elf64_rtype_to_howto): Use it.
* elfn32-mips.c (elf_mips_gnu_rel16_s2): Add internally used
R_MIPS_GNU_REL16_S2 support.
(bfd_elf32_bfd_reloc_type_lookup): Use it.
(mips_elf_n32_rtype_to_howto): Use it.
2003-05-21 Stuart F. Downing <>
* som.h: Define PA_2_0 before including a.out.h
2003-05-07 Eric Christopher <>
Alexandre Oliva <>
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Adjust
pic tests, change to warning.
(_bfd_mips_elf_final_link): Remove EF_MIPS_CPIC flag setting.
2003-05-21 Marcus Comstedt <>
* config.bfd: Check for a target triplet of shl-...-netbsdelf as
well as shle-...-netbsdelf. Remove duplicate entry.
2003-05-21 Nick Clifton <>
* elf32-xstormy16.c (xstormy16_elf_howto_table): Fix dst_mask
for X_STORMY16_REL_12 reloc.
* elf.c (bfd_elf_get_needed_list): Use is_elf_hash_table to check
the type of the hash table in the bfd_link_info structure.
(bfd_elf_get_runpath_list): Likewise.
2003-05-19 Roland McGrath <>
* elf.c (bfd_elf_bfd_from_remote_memory): New function.
* bfd-in.h: Declare it.
* bfd-in2.h: Regenerated.
* elfcode.h (NAME(_bfd_elf,bfd_from_remote_memory)): New function.
* elf-bfd.h (struct elf_backend_data): New function pointer member
(_bfd_elf32_bfd_from_remote_memory, _bfd_elf64_bfd_from_remote_memory):
Declare them.
* elfxx-target.h (elf_backend_bfd_from_remote_memory): New macro.
(elfNN_bed): Add that to the initializer.
2003-05-15 Roland McGrath <>
* elf.c (elfcore_grok_note): Grok NT_AUXV note, make ".auxv" section.
2003-05-20 Jakub Jelinek <>
* elflink.h (elf_link_output_extsym): Only issue error about !=
STV_DEFAULT symbols if they are bfd_link_hash_undefined.
2003-05-20 H.J. Lu <>
* elflink.c (_bfd_elf_merge_symbol): Check ELF_LINK_DYNAMIC_DEF
when removing the old definition for symbols with non-default
2003-05-18 Jason Eckhardt <>
* elf32-i860.c (elf32_i860_relocate_highadj): Simplify calculation.
2003-05-17 Andreas Schwab <>
* elf32-m68k.c (elf_m68k_check_relocs): Cache reloc section in
elf_section_data during processing of pc-relative and absolute
(elf_m68k_relocate_section): Use the cached reloc section instead
of computing it again. Fix handling of visibility. Don't modify
addend when copying over a relocation into the output.
2003-05-17 Alan Modra <>
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL
to trim plt entries. Move undefweak non-default visibility test..
(allocate_dynrelocs): ..from here.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't test
dynamic_sections_created here. Update comment. Move undefweak
non-default visibility test..
(allocate_dynrelocs): ..from here. Fix comment.
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL
to trim plt entries. Move undefweak non-default visibility test..
(allocate_dynrelocs): ..from here. Fix comment.
* elflink.h (elf_link_output_extsym): Compare ELF_ST_VISIBILITY with
STV_DEFAULT rather than comparing with zero.
* elflink.c (_bfd_elf_merge_symbol): Likewise.
(_bfd_elf_fix_symbol_flags): Likewise. Format comment.
2003-05-17 Thiemo Seufer <>
* bfd.c (_bfd_get_gp_value): Prevent illegal access for abfd null
(_bfd_set_gp_value): Likewise.
2003-05-16 Michael Snyder <>
From Bernd Schmidt <>
* archures.c (bfd_mach_h8300sx): New.
* bfd-in2.h: Regenerate.
* cpu-h8300.c (h8300_scan)): Add support for h8300sx.
(h8300sx_info_struct): New.
(h8300s_info_struct): Link to it.
* elf32-h8300.c (elf32_h8_mach): Add support for h8300sx.
(elf32_h8_final_write_processing): Likewise.
(elf32_h8_relax_section): Likewise.
2003-05-16 Kelley Cook <>
* config.bfd: Accept i[3-7]86 variants.
* Likewise.
* Likewise.
* configure: Regenerate.
2003-05-15 H.J. Lu <>
* elflink.c (_bfd_elf_fix_symbol_flags): Also hide protected
2003-05-15 H.J. Lu <>
* elflink.h (elf_link_check_versioned_symbol): Also allow
the base version.
2003-05-15 Alan Modra <>
H.J. Lu <>
* elf32-i386.c (allocate_dynrelocs): Use SYMBOL_CALLS_LOCAL.
(elf_i386_relocate_section): Likewise.
* elf32-ppc.c (allocate_dynrelocs): Likewise.
(ppc_elf_relocate_section): Likewise.
* elf64-ppc.c (allocate_dynrelocs): Likewise.
(ppc64_elf_relocate_section): Likewise.
2003-05-15 Thiemo Seufer <>
* elf32-mips.c (gprel32_with_gp): Remove useless N64 ABI case.
2003-05-13 Stephane Carrez <>
* elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Check for
processor capability, allow merge of HC12 and HCS12 in some cases.
(m68hc11_elf_hash_table_create): Use bfd_malloc instead of bfd_zalloc.
* cpu-m68hc12.c (bfd_m68hc12s_arch): New struct.
(bfd_m68hc12_arch): Link it.
(scan_mach): New function.
2003-05-13 Andrew Haley <>
* elf.c (bfd_elf_hash): Mask lower 32 bits of hash.
2003-05-13 Alan Modra <>
H.J. Lu <>
elf32-ppc.c. Add ELF_LINK_FORCED_LOCAL check.
(allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL for dynreloc check.
(ppc_elf_relocate_section): Likewise.
* elf64-ppc.c (allocate_dynrelocs): Likewise.
(ppc64_elf_relocate_section): Likewise. Use for .got relocs too.
(ppc64_elf_adjust_dynamic_symbol): Don't assume symbols with .plt
relocs need no other types.
* elf32-i386.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL for
dynreloc check.
(elf_i386_relocate_section): Likewise. Use for .got relocs too.
(elf_i386_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL for
.got relocs.
2003-05-13 Kaz Kojima <>
* elf32-sh.c (sh_elf_adjust_dynamic_symbol): For weak symbols,
copy ELF_LINK_NON_GOT_REF from weakdef.
(allocate_dynrelocs): For undef weak syms with non-default
visibility, a) don't allocate plt entries, b) don't allocate
.got relocs, c) discard dyn rel space
(sh_elf_relocate_section): d) don't generate .got relocs, e)
don't generate dynamic relocs.
(sh_elf_copy_indirect_symbol): Don't copy ELF_LINK_NON_GOT_REF
for weakdefs when symbol already adjusted.
2003-05-12 Nick Clifton <>
* elf32-xstormy16.c (xstormy16_elf_howto_table): use 'bitfield'
overflow detection for R_XSTORMY16_16 reloc.
2003-05-12 Paul Clarke <>
* elf32-h8300.c: Fix typo in name of R_H8_DIR8 reloc.
2003-05-11 Jason Eckhardt <>
* elf32-i860.c (elf32_i860_relocate_highadj): Properly
adjust upper bits.
(elf32_i860_relocate_splitn): Obtain upper 5 bits from the
proper place.
(elf32_i860_relocate_pc16): Obtain upper 5 bits from the
proper place.
2003-05-11 Andreas Schwab <>
* elf32-m68k.c (elf_m68k_relocate_section): Replace ugly
complicated tests for unresolvable relocs with a simple direct
scheme using "unresolved_reloc" var. Report some detail on
bfd_reloc_outofrange and similar errors.
2003-05-09 Martin Schwidefsky <>
* elf32-s390.c (allocate_dynrelocs, elf_s390_relocate_section):
* elf64-s390.c: Likewise.
2003-05-09 Martin Schwidefsky <>
* elf32-s390.c (ELIMINATE_COPY_RELOCS): Define as one.
(elf_s390_adjust_dynamic_symbol): For weak symbols, copy
ELF_LINK_NON_GOT_REF from weakdef.
(elf_s390_copy_indirect_symbol): Test whether the weakdef sym has
already been adjusted before treating it specially.
* el64-s390.c: Likwise.
2003-05-09 Martin Schwidefsky <>
* elf32-s390.c (allocate_dynrelocs): For undef weak syms with
non-default visibility, a) don't make them dynamic, b) discard
space for dynamic relocs.
(elf_s390_relocate_section): Initialize the GOT entries and skip
R_390_{8,16,32}/R_390_PC{16,16DBL,32DBL,32} for weak undefined
symbols with non-default visibility.
* elf64-s390.c: Likewise.
2003-05-09 Alan Modra <>
* cpu-arm.c (arm_check_note): Warning fix.
* elf32-iq2000.c (iq2000_elf_check_relocs): Warning fixes. Arrange
to keep relocs if edited.
(iq2000_elf_print_private_bfd_data): Return TRUE.
* elfxx-ia64.c (elfNN_ia64_relax_section): Use ELFNN_R_SYM, not
(elfNN_ia64_relax_ldxmov): Warning fix.
* xtensa-isa.c (xtensa_add_isa): Warning fix.
* xtensa-modules.c (get_num_opcodes): Warning fix.
2003-05-09 Andrey Petrov <>
* elf.c (elf_fake_sections): Use correct cast for sh_name.
2003-05-09 Alan Modra <>
* elflink.c (_bfd_elf_link_create_dynamic_sections): Move from
elflink.h. Replace LOG_FILE_ALIGN with bed->s->log_file_align.
(_bfd_elf_create_dynamic_sections): Use bed->s->log_file_align.
(bfd_elf_record_link_assignment): Move from elflink.h.
(_bfd_elf_merge_symbol): Likewise.
(_bfd_elf_add_default_symbol): Likewise.
(_bfd_elf_export_symbol): Likewise.
(_bfd_elf_link_find_version_dependencies): Likewise.
(_bfd_elf_link_assign_sym_version): Likewise.
(_bfd_elf_link_read_relocs): Likewise.
(_bfd_elf_link_size_reloc_section): Likewise.
(_bfd_elf_fix_symbol_flags): Likewise.
(_bfd_elf_adjust_dynamic_symbol): Likewise.
(_bfd_elf_link_sec_merge_syms): Likewise.
(elf_link_read_relocs_from_section): Likewise. Use bed->s->sizeof_rel
and bed->s->sizeof_rela.
(_bfd_elf_link_output_relocs): Likewise.
* elf-bfd.h (struct elf_size_info): Rename file_align to
(struct elf_info_failed): Move from elflink.h.
(struct elf_assign_sym_version_info): Likewise.
(struct elf_find_verdep_info): Likewise.
(_bfd_elf_create_dynamic_sections): Delete duplicate declaration.
(_bfd_elf_merge_symbol, _bfd_elf_add_default_symbol,
_bfd_elf_export_symbol, _bfd_elf_link_find_version_dependencies,
_bfd_elf_link_create_dynamic_sections, _bfd_elf_link_read_relocs,
_bfd_elf_link_size_reloc_section, _bfd_elf_link_output_relocs,
_bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol,
_bfd_elf_link_sec_merge_syms): Declare.
(bfd_elf32_link_create_dynamic_sections): Don't declare.
(_bfd_elf32_link_read_relocs): Likewise.
(bfd_elf64_link_create_dynamic_sections): Likewise.
(_bfd_elf64_link_read_relocs): Likewise.
* elflink.h: Move lots o' stuff elsewhere.
* bfd-in.h (bfd_elf32_record_link_assignment): Don't declare.
(bfd_elf64_record_link_assignment): Likewise.
(bfd_elf_record_link_assignment): Declare.
* bfd-in2.h: Regenerate.
* elfcode.h (elf_link_create_dynamic_sections): Don't declare.
(NAME(_bfd_elf,size_info)): Adjust for log_file_align.
* elf.c (_bfd_elf_init_reloc_shdr): Adjust for bed->s->log_file_align.
(assign_file_positions_for_segments): Likewise.
(assign_file_positions_except_relocs): Likewise.
(swap_out_syms, elfcore_write_note): Likewise.
* elf-m10200.c: Adjust for changed function names.
* elf-m10300.c: Likewise.
* elf32-arm.h: Likewise.
* elf32-h8300.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-ip2k.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mips.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
(MIPS_ELF_LOG_FILE_ALIGN): Use log_file_align.
* elf64-alpha.c (alpha_elf_size_info): Adjust for log_file_align.
* elf64-hppa.c (hppa64_elf_size_info): Likewise.
* elf64-mips.c (mips_elf64_size_info): Likewise.
* elf64-s390.c (s390_elf64_size_info): Likewise.
* elf64-sparc.c (sparc64_elf_size_info): Likewise.
2003-05-08 H.J. Lu <>
* elflink.h (elf_add_default_symbol): After skipping the
unversioned symbol, go to non-default one.
2003-05-07 H.J. Lu <>
* elfxx-ia64.c (_bfd_elf_link_hash_hide_symbol): Also clear the
want_plt field.
(elfNN_ia64_relocate_section): Don't do dynamic symbol lookup
for symbols with non-default visibility.
2003-05-07 H.J. Lu <>
* elflink.h (elf_link_check_versioned_symbol): Also handle the
case that a DSO references a hidden symbol which may be
satisfied by a versioned symbol in another DSO.
(elf_link_output_extsym): Check versioned definition for hidden
symbol referenced by a DSO.
2003-05-07 Nick Clifton <>
* elf32-xstormy16.c (xstormy16_elf_howto_table): Reset
R_XSTORMY16_16 reloc to ignore overflows.
2003-05-06 Alexandre Oliva <>
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Improve
error message for mixing different-endian files. Check for ABI
compatibility of input files with the selected emulation.
2003-05-05 Alan Modra <>
* elf32-i386.c (allocate_dynrelocs): For undef weak syms with
non-default visibility, a) don't make them dynamic, b) discard
space for dynamic relocs.
* elf64-x86-64.c (allocate_dynrelocs): Likewise.
* elf32-ppc.c (allocate_dynrelocs): For undef weak syms with
non-default visibility, a) don't allocate plt entries, b) don't
allocate .got relocs, c) discard dyn rel space,
(ppc_elf_relocate_section): d) don't generate .got relocs, e)
don't generate dynamic relocs.
* elf64-ppc.c (allocate_dynrelocs): As above.
(ppc64_elf_relocate_section): As above.
2003-05-05 Andreas Jaeger <>
* elf64-x86-64.c (allocate_dynrelocs): Don't allocate dynamic
relocation entries for weak undefined symbols with non-default
(elf64_x86_64_relocate_section): Initialize the GOT entries and
skip R_386_32/R_386_PC32 for weak undefined symbols with
non-default visibility.
2003-05-04 H.J. Lu <>
* elf32-i386.c (allocate_dynrelocs): Don't allocate dynamic
relocation entries for weak undefined symbols with non-default
(elf_i386_relocate_section): Initialize the GOT entries and
skip R_386_32/R_386_PC32 for weak undefined symbols with
non-default visibility.
* elfxx-ia64.c (allocate_fptr): Don't allocate function
descriptors for weak undefined symbols with non-default
(allocate_dynrel_entries): Don't allocate relocation entries
for symbols resolved to 0.
(set_got_entry): Don't install dynamic relocation for weak
undefined symbols with non-default visibility.
(set_pltoff_entry): Likewise.
* elflink.h (elf_fix_symbol_flags): Hide weak undefined symbols
with non-default visibility.
(elf_link_output_extsym): Don't make weak undefined symbols
with non-default visibility dynamic.
2003-05-04 H.J. Lu <>
* elflink.h (elf_merge_symbol): Correctly handle weak definition.
2003-05-04 H.J. Lu <>
* elflink.h (elf_merge_symbol): Don't record a hidden/internal
symbol dynamic. Check indirection when removing the old
definition for symbols with non-default visibility.
(elf_add_default_symbol): Skip when told by elf_merge_symbol.
2003-05-02 Nick Clifton <>
* elf32-xstormy16.c (xstormy16_elf_howto_table): Make the
R_XSTORMY16_8 and R_XSTORMY16_16 relocs detect and complain about
unsigned overflow.
2003-05-02 Andreas Jaeger <>
* elf64-x86-64.c (elf_x86_64_copy_indirect_symbol): Don't copy
ELF_LINK_NON_GOT_REF for weakdefs when symbol already adjusted.
(ELIMINATE_COPY_RELOCS): Define as one. Use throughout.
(elf_x86_64_adjust_dynamic_symbol): For weak symbols, copy
ELF_LINK_NON_GOT_REF from weakdef.
2003-05-02 Charles Lepple <>
Nick Clifton <>
* acinclude.m4: Fix name of --enable-install-libbfd switch.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Regenerate.
2003-05-01 Alan Modra <>
* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Test whether the
weakdef sym has already been adjusted before treating it specially.
* elf32-i386.c (elf_i386_copy_indirect_symbol): Don't copy
ELF_LINK_NON_GOT_REF for weakdefs when symbol already adjusted.
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
(ppc64_elf_check_relocs): Set ELF_LINK_NON_GOT_REF.
2003-04-28 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Relax ldxmov during
the relax finalize pass.
* section.c (struct sec): Add need_finalize_relax and remove
(STD_SECTION): Update struct sec initializer.
* bfd-in2.h: Regenerated.
2003-04-28 H.J. Lu <>
* elflink.h (elf_merge_symbol): Call elf_backend_copy_indirect_symbol
to copy any information related to dynamic linking when we flip
the indirection.
2003-04-27 H.J. Lu <>
* elf-bfd.h (ELF_LINK_DYNAMIC_DEF): New.
* elflink.h (elf_merge_symbol): Add one argument to indicate if
a symbol should be skipped. Ignore definitions in dynamic
objects for symbols with non-default visibility.
(elf_add_default_symbol): Adjusted.
(elf_link_add_object_symbols): Check if a symbol should be
skipped. Don't merge the visibility field with the one from
a dynamic object.
(elf_link_check_versioned_symbol): Use undef_bfd.
(elf_link_output_extsym): Warn if a forced local symbol is
referenced from dynamic objects. Make non-weak undefined symbol
with non-default visibility a fatal error.
2003-04-27 Daniel Jacobowitz <>
* Bump version on HEAD to 2.14.90.
* configure: Regenerated.
2003-04-26 Stephane Carrez <>
PR savannah/3331:
* elf32-m68hc11.c (m68hc11_elf_relax_section): Clear prev_insn_group
when we couldn't relax something.
2003-04-25 Alan Modra <>
* elflink.h (elf_merge_symbol): When we find a regular definition
for an indirect symbol, flip the indirection so that the old
direct symbol now points to the new definition.
2003-04-24 Roland McGrath <>
* elf.c (bfd_section_from_phdr): Map PT_GNU_EH_FRAME to "eh_frame_hdr".
2003-04-24 Alan Modra <>
* elf32-ppc.c: Formatting and comment fixes.
(ELIMINATE_COPY_RELOCS): Move before ppc_elf_copy_indirect_symbol.
(ppc_elf_copy_indirect_symbol): Copy flags here for weakdefs.
2003-04-24 Dhananjay Deshpande <>
* archures.c (bfd_mach_h8300hn, bfd_mach_h8300sn): Added.
* bfd-in2.h: Rebuilt.
* coff-h8300.c (BADMAG): Add check for H8300HNBADMAG & H8300SNBADMAG.
* coffcode.h (coff_set_arch_mach_hook): Add case for H8300HNMAGIC
(coff_set_flags): Add case for bfd_mach_h8300hn & bfd_mach_h8300sn.
* cpu-h8300.c (h8300_scan): Handle h8300hn, h8300sn.
(h8300sn_info_struct, h8300hn_info_struct): New.
* elf32-h8300.c (elf32_h8_mach): Handle case for h8300hn & h8300sn
(elf32_h8_final_write_processing): Likewise.
2003-04-23 Kaz Kojima <>
* elf32-sh.c (tpoff): New.
(struct elf_sh_dyn_relocs): Remove tls_tpoff32.
(allocate_dynrelocs): Don't make unnecessary dynamic TLS
relocations. Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses.
(sh_elf_relocate_section): Likewise. Remove unnecessary tests.
(dtpoff_base): Fix wrong indentation.
(sh_elf_check_relocs): Don't set DF_STATIC_TLS flag with non-TLS
relocations. Don't set tls_tpoff32 flag. Don't make unnecessary
R_SH_TLS_TPOFF32 relocations.
2003-04-23 J"orn Rennecke <>
* archures.c (enum bfd_architecture): Amend comment to refer to SuperH.
* cpu-sh.c: Likewise.
* elf32-sh.c: Likewise.
* reloc.c (bfd_reloc_code_real): Likewise.
* elf32-sh64-com.c: Change comment to refer to SuperH.
* elf32-sh64.c: Likewise.
* elf64-sh64.c: Likewise.
* bfd-in2.h (enum bfd_architecture): Regenerate.
2003-04-23 Alan Modra <>
From Julien LEMOINE <>
* elf32-i386.c (elf_i386_info_to_howto): Delete.
(elf_info_to_howto): Define as elf_i386_info_to_howto_rel.
2003-04-22 Kazuhiro Inaoka <>
* archures.c: Replace references to Mitsubishi M32R with references
to Renesas M32R.
* relocs.c: Likewise.
* bfd-in2.h: Regenerate.
2003-04-21 Richard Henderson <>
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Return false for an
executable when a symbol is defined both regular and dynamic.
2003-04-21 Stephane Carrez <>
* (BFD32_BACKENDS): Add elf32-m68hc1x.lo.
(elf32-m68hc1x.lo): Update dependencies
* Add elf32-m68hc1x.lo.
* configure: Rebuild.
* Rebuild.
2003-04-21 Stephane Carrez <>
* elf32-m68hc1x.c: New file (from elf32-m68hc11.c and elf32-m68hc12.c)
(m68hc11_elf_hash_table_create): New function.
(elf32_m68hc11_link_hash_table_free): New function.
(stub_hash_newfunc): New function.
(m68hc11_add_stub): New function.
(elf32_m68hc11_add_symbol_hook): New function.
(elf32_m68hc11_setup_section_lists): New function.
(elf32_m68hc11_next_input_section): New function.
(elf32_m68hc11_size_stubs): New function.
(elf32_m68hc11_build_stubs): New function.
(m68hc11_get_relocation_value): New function.
(elf32_m68hc11_relocate_section): Call the above to redirect
some relocations to the trampoline code.
(m68hc11_elf_export_one_stub): New function.
(m68hc11_elf_set_symbol): New function.
(elf32_m68hc11_build_stubs): Call it via bfd_hash_traverse.
(m68hc11_elf_get_bank_parameters): Get parameters only when the info
is not yet initialized.
* elf32-m68hc1x.h: New file (from elf32-m68hc11.c and elf32-m68hc12.c)
(elf32_m68hc11_stub_hash_entry): New struct.
(m68hc11_page_info): Add trampoline handler address.
(m68hc11_elf_link_hash_table): Add stubs generation members.
(elf32_m68hc11_add_symbol_hook): Declare.
(elf32_m68hc11_setup_section_lists): Declare.
(elf32_m68hc11_size_stubs): Declare.
(elf32_m68hc11_build_stubs): Declare.
* elf32-m68hc11.c (m68hc11_elf_ignore_reloc): Move to elf32-m68hc1x.c.
(elf32_m68hc11_gc_mark_hook, elf32_m68hc11_gc_sweep_hook): Likewise.
(elf32_m68hc11_check_relocs, elf32_m68hc11_relocate_section): Ditto.
(_bfd_m68hc11_elf_set_private_flags): Ditto.
(_bfd_m68hc11_elf_merge_private_bfd_data): Ditto.
(_bfd_m68hc11_elf_print_private_bfd_data): Ditto.
(bfd_elf32_bfd_link_hash_table_create): Define.
(elf_backend_add_symbol_hook): Define.
(m68hc11_elf_bfd_link_hash_table_create): New function.
(m68hc11_elf_build_one_stub): New function.
(m68hc11_elf_size_one_stub): New function.
(m68hc11_elf_bfd_link_hash_table_create): Install the above.
(bfd_elf32_bfd_link_hash_table_create): Define.
* elf32-m68hc12.c (m68hc11_elf_ignore_reloc): Remove.
(m68hc12_addr_is_banked): Remove, use m68hc11_addr_is_banked.
(m68hc12_phys_addr): Ditto.
(m68hc12_phys_page): Ditto.
(m68hc12_elf_special_reloc): Move to elf32-m68hc1x.c.
(elf32_m68hc11_gc_mark_hook): Likewise.
(elf32_m68hc11_gc_sweep_hook): Likewise.
(elf32_m68hc11_check_relocs): Likewise.
(elf32_m68hc11_relocate_section): Likewise.
(_bfd_m68hc12_elf_set_private_flags): Likewise.
(_bfd_m68hc12_elf_merge_private_bfd_data): Likewise.
(_bfd_m68hc12_elf_print_private_bfd_data): Likewise.
(m68hc12_elf_build_one_stub): New function.
(m68hc12_elf_size_one_stub): New function.
(m68hc12_elf_bfd_link_hash_table_create): New function, use the above.
(elf_backend_add_symbol_hook): Define.
(elf_m68hc11_howto_table): Use TRUE for pcrel relocs; fix masks.
2003-04-18 Nick Clifton <>
* format.c (bfd_check_format_matches): Only check associated
vector if the matching_vector has been created.
2003-04-15 Alexandre Oliva <>
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Fix typo in
2003-04-09's change.
2003-04-15 Brian Ford <>
* peicode.h (coff_swap_scnhdr_in): If a section holds
uninitialized data and is from an object file or from an
executable image that has not initialized the s_size field, or if
the physical size is padded, use the virtual size (stored in
s_paddr) instead.
2003-04-15 H.J. Lu <>
* elflink.h (elf_link_add_object_symbols): Properly report
filename for alignment reduction.
2003-04-15 Rohit Kumar Srivastava <>
* archures.c: Replace occurrances of 'Hitachi' with 'Renesas'.
* reloc.c: Likewise.
* coff-h8300.c: Likewise.
* coff-h8500.c: Likewise.
* coff-sh.c: Likewise.
* cpu-h8300.c: Likewise.
* cpu-sh.c: Likewise.
* elf32-h8300.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-sh64-com.c: Likewise.
* elf32-sh64.c: Likewise.
* elf64-sh64.c: Likewise.
* bfd-in2.h: Regenerate.
2003-04-14 H.J. Lu <>
* elflink.h (elf_link_add_object_symbols): Maintain maximum
alignment for common symbols. Warn reducing alignment for
common symbols. Report old filename when symbol size changes.
2003-04-12 Alexandre Oliva <>
* elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other
occurrences of the same test changed in the previous patch.
2003-04-11 Alexandre Oliva <>
* elfxx-mips.c (mips_elf_get_global_gotsym_index): New.
(mips_elf_calculate_relocation): Decay GOT_PAGE/GOT_OFST to
GOT_DISP/addend only if the symbol got a global GOT entry.
2003-04-10 Alexandre Oliva <>
* elfxx-mips.c (mips_elf_calculate_relocation): Decay
GOT_PAGE/GOT_OFST referencing overridable symbol to
(_bfd_mips_elf_check_relocs): Handle GOT_PAGE referencing
global symbol as GOT_DISP.
2003-04-10 Bob Wilson <>
* elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to the
next relocation on an undefined symbol.
2003-04-09 Richard Henderson <>
* elf64-alpha.c (elf64_alpha_relocate_section) <R_ALPHA_GPREL32>:
Ignore relocations against r_symndx == 0.
2003-04-09 H.J. Lu <>
* elf64-alpha.c (elf64_alpha_relocate_section): Don't return
FALSE for undefined symbols.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
2003-04-09 Alexandre Oliva <>
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Try DWARF3-standard
and IRIX-specific shift-to-64-bit 4-byte lengths before following
2003-04-08 Alexandre Oliva <>
* elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor)
pointer size from ABI, not arch_bits_per_address.
2003-04-07 Kevin Buettner <>
* elfn32-mips.c (elf32_mips_grok_prstatus): Adjust core file related
constants for n32 ABI.
2003-04-06 Andrew Cagney <>
* simple.c (bfd_simple_get_relocated_section_contents): Disable
free that leads to GDB vs BFD memory corruption.
2003-04-04 Stephane Carrez <>
* elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Also adjust
symbols that mark the end of the section.
(m68hc11_elf_relax_section): Use R_M68HC11_PCREL_8 relocs when
converting to a relative branch so that the offset is computed after
the relaxation; also relocate a jsr into a bsr if possible but don't
relax them if they are to a far symbol as we need to call the
trampoline code.
(elf_m68hc11_howto_table): Set pcrel_offset to true.
2003-04-04 Svein E. Seldal <>
* archures.c: Namespace cleanup. Rename bfd_mach_c3x to
bfd_mach_tic3x and bfd_mach_c4x to bfd_mach_tic4x
* bfd-in2.h: Regenerate
* coff-tic4x.c: Namespace cleanup. Replace s/c4x/tic4x/
* cpu-tic4x.c: Ditto
2003-04-03 Nick Clifton <>
* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Compute ps and ss
differently for object files and executables.
* peicode.h (coff_swap_scnhdr_in): Only set the s_size field
for object files or for executables who have not already
initialised the field.
* libpei.h (bfd_pe_executable_p): New macro. Return true if
the PE format bfd is an executable.
2003-04-03 Alan Modra <>
* elf32-ppc.c (ppc_elf_check_relocs): Don't use SYMBOL_REFERENCES_LOCAL
here as it's too early to reliably determine locality.
(ppc_elf_gc_sweep_hook): Likewise.
2003-04-02 Bob Wilson <>
* xtensa-modules.c: Remove comment indicating that this is a
generated file.
2003-04-02 Alan Modra <>
* elfxx-mips.c (_bfd_mips_elf_hide_symbol): Test for NULL dynobj.
2003-04-01 Bob Wilson <>
* (ALL_MACHINES): Add cpu-xtensa.lo.
(ALL_MACHINES_CFILES): Add cpu-xtensa.c.
(BFD32_BACKENDS): Add elf32-xtensa.lo, xtensa-isa.lo, and
(BFD32_BACKENDS_CFILES): Add elf32-xtensa.c, xtensa-isa.c, and
(cpu-xtensa.lo): New target.
(elf32-xtensa.lo): Likewise.
(xtensa-isa.lo): Likewise.
(xtensa-modules.lo): Likewise.
* Regenerate.
* archures.c (bfd_architecture): Add bfd_{arch,mach}_xtensa.
(bfd_archures_list): Add bfd_xtensa_arch.
* config.bfd: Handle xtensa-*-*.
* Handle bfd_elf32_xtensa_{le,be}_vec.
* configure: Regenerate.
* targets.c (bfd_elf32_xtensa_be_vec): Declare.
(bfd_elf32_xtensa_le_vec): Likewise.
(bfd_target_vector): Add bfd_elf32_xtensa_{be,le}_vec.
* cpu-xtensa.c: New file.
* elf32-xtensa.c: Likewise.
* xtensa-isa.c: Likewise.
* xtensa-modules.c: Likewise.
* libbfd.h: Regenerate.
* bfd-in2.h: Likewise.
2003-04-01 Nick Clifton <>
* archures.c (bfd_mach_arm_unknown): Define.
* bfd-in.h (bfd_arm_merge_machines, bfd_arm+update_notes,
bfd_arm_get_mach_from_notes): Prototype.
* bfd-in2.h: Regenerate.
* coff-arm.c (coff_arm_merge_private_bfd_data): Call
(coff_arm_final_link_postscript): Call bfd_arm_update_notes.
* coffcode.h (coff_set_arch_mach_hook): Call
* coffgen.c (coff_real_object_p): Revert previous delta.
* cpu_arm.c (arm_check_note): New function. Examine a note in a
.note section.
(bfd_arm_merge_machines): New function: Handle the merging of ARM
binaries compiled for different architectures..
(bfd_arm_update_notes): New function: Update an ARM note section.
(bfd_arm_get_mach_from_notes): New function: Extract a bfd machine
number from an ARM note section.
* elf32-arm.h (elf32_arm_object_p): Use
(elf32_arm_merge_private_bfd_data): Use bfd_arm_merge_machines.
(elf32_arm_final_write_processing): Use bfd_arm_update_notes.
2003-04-01 Ben Elliston <>
* dwarf2.c (read_attribute_value): Correct typo in comment.
2003-04-01 Nick Clifton <>
* dwarf2.c (concat_filename): Use bfd_malloc() and strdup()
instead of concat().
(decode_line_info): Only free filename if it is not NULL.
(add_line_info): Make a copy of the filename when storing it into
the info structure.
2003-03-31 Andreas Schwab <>
Daniel Jacobowitz <>
* simple.c (bfd_simple_get_relocated_section_contents): Add
parameter symbol_table. Optionally use it instead of the symbol
table from the bfd. Save and restore output offsets and output
sections around bfd_get_relocated_section_contents. Fix a memory
(simple_save_output_info, simple_restore_output_info): New
* bfd-in2.h: Regenerate.
* dwarf2.c (read_abbrevs): Use
bfd_simple_get_relocated_section_contents instead of
(decode_line_info): Likewise.
(_bfd_dwarf2_find_nearest_line): Likewise. Don't call
(find_rela_addend): Remove.
* elfxx-ia64.c (elfNN_ia64_reloc): Weaken sanity check for
debugging sections.
(elfNN_ia64_hash_table_create): Create the hash table with malloc,
not bfd_zalloc.
2003-03-31 David Heine <>
* aoutx.h (aout_link_hash_table_create): Use bfd_malloc instead of
* dwarf2.c (concat_filename): Always allocate space for the
returned filename.
(decode_line_info): Free the allocated filename returned by
* elf-eh-frame.c (bfd_elf_write_section_eh_frame): Fix memory leaks.
* elf.c (copy_private_bfd_data): Likewise.
(_bfd_elf_slurp_version_tables): Fix bug freeing contents pointer.
* elflink.h (elf_link_sort_relocs): Fix memory leak.
* format.c (bfd_check_format_matches): Likewise.
* linker.c (bfd_generic_final_link): Likewise.
* opncls.c (find_separate_debug_info): Likewise.
* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
2003-03-28 H.J. Lu <>
* elflink.h (elf_link_add_object_symbols): Correctly combine
2003-03-27 Jakub Jelinek <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offset
to -1 before recomputing got offsets.
2003-03-26 Andreas Schwab <>
* elf32-m68k.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
(elf_m68k_relocate_section): Use it to correctly handle symbols
forced to be local.
(elf_m68k_finish_dynamic_symbol): Emit RELATIVE reloc for got
entries for symbols that are forced to be local.
2003-03-25 Alexandre Oliva <>
* elfxx-mips.c (_bfd_mips_relax_section): New function.
* elfxx-mips.h (_bfd_mips_relax_section): Declare.
* elfn32-mips.c, elf64-mips.c: Use it.
2003-03-25 Stan Cox <>
Nick Clifton <>
Contribute support for Intel's iWMMXt chip - an ARM variant:
* archures.c: Add bfd_mach_arm_iWMMXt.
* reloc.c: Add BFD_RELOC_ARM_CP_OFF_IMM_S2.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* coff-arm.c (coff_arm_merge_private_bfd_data): Allow iWMMXt
object files to be linked with XScale ones.
(coff_arm_final_link_postscript): Update note section.
* coffcode.h (coff_set_arch_mach_hook): Handle note section.
* coffgen.c (coff_real_object_p): Call bfd_coff_set_arch_mach_hook
after identifying a coff binary.
* cpu-arm.c (processors): Add iWMMXt.
(arch_inf): Likewise.
* elf32-arm.h (arm_object_p): Handle note section.
(elf32_arm_merge_private_bfd_data): Allow iWMMXt object files to
be linked with XScale ones.
(elf32_arm_section_flags): New function: Set flags on note section.
(elf32_arm_final_write_processing): Handle note section.
2003-03-21 DJ Delorie <>
* elf32-xstormy16.c (elf32_xstormy16_relocate_section): Call
2003-03-20 H.J. Lu <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Don't try relax for
non-ELF outputs.
2003-03-20 Nick Clifton <>
* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Initialise $idata2 and
$idata5 in case bfd_coff_final_link is not called.
2003-03-19 Jakub Jelinek <>
* elf64-sparc.c (struct sparc64_elf_section_data): Add reloc_count
(canon_reloc_count): Define.
(sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
sparc64_elf_canonicalize_dynamic_reloc): Use it instead of
(sparc64_elf_canonicalize_reloc): New routine.
(bfd_elf64_canonicalize_reloc): Define.
2003-03-18 Jakub Jelinek <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Handle relaxation
againt mergeable sections. Take r_addend into account when caching
2003-03-18 Richard Henderson <>
* elfxx-ia64.c (get_dyn_sym_info): Return NULL gracefully for
local symbols that have no dyninfo.
2003-03-14 Gene Smith <>
* ieee.c (ieee_write_expression): Handle the case where symbol is
General formatting improvements.
2003-03-13 Nick Clifton <>
* (LINGUAS): Add zh_CN.
* configure: Regenerate.
* po/zh_CN.po: New file.
2003-03-13 Elias Athanasopoulos <>
* aout-cris.c (BYTES_IN_WORD): Don't define.
aout-encap.c: Likewise.
aout-ns32k.c: Likewise.
aout-tic30.c: Likewise.
hp300bsd.c: Likewise.
i386aout.c: Likewise.
i386dynix.c: Likewise.
i386linux.c: Likewise.
i386lynx.c: Likewise.
i386mach3.c: Likewise.
m68k4knetbsd.c: Likewise.
m68klinux.c: Likewise.
m68klynx.c: Likewise.
m68knetbsd.c: Likewise.
m88kmach3.c: Likewise.
mipsbsd.c: Likewise.
newsos3.c: Likewise.
sparclinux.c: Likewise.
sparclynx.c: Likewise.
sparcnetbsd.c: Likewise.
vaxbsd.c: Likewise. Fix comment formatting.
2003-03-12 Alexandre Oliva <>
* Reverted 2003-03-02's patch.
* elfxx-target.h (bfd_elfNN_canonicalize_reloc): Make it
* elf64-mips.c (mips_elf64_canonicalize_reloc,
mips_elf64_canonicalize_dynamic_reloc): New, adapted from elf.c.
bfd_elf64_canonicalize_dynamic_reloc): Define.
(mips_elf64_slurp_reloc_table): Support dynamic.
(mips_elf64_slurp_one_reloc_table): Adjust.
2003-03-12 Nick Clifton <>
* xsym.c (bfd_sym_fetch_type_information_table_entry): Change
'index' to 'offset' in test for zero value.
2003-03-11 Alexandre Oliva <>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Do not create
dynamic relocations pointing to local or section symbols, use the
NULL symbol instead. Document the choice to not emit an
additional R_MIPS_64 relocation.
2003-03-11 Alan Modra <>
* elf32-ppc.c (ppc_elf_relocate_section): Subtract tls seg vma from
zero index dynamic tls relocs generated for the GOT. Tidy code.
Set "relocation" to 1 on DTPMOD32 relocs. Optimize HA adjustment.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
2003-03-07 Alan Modra <>
* elf32-ppc.c (ppc_elf_relocate_section): Don't look for a nop after
a tls_get_addr call.
* elf32-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
(ppc_elf_adjust_dynamic_symbol): For weak symbols, copy
ELF_LINK_NON_GOT_REF from weakdef.
* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
(ppc64_elf_adjust_dynamic_symbol): For weak symbols, copy
ELF_LINK_NON_GOT_REF from weakdef.
* elf32-i386.c (ELIMINATE_COPY_RELOCS): Define as one. Use throughout.
(elf_i386_adjust_dynamic_symbol): For weak symbols, copy
ELF_LINK_NON_GOT_REF from weakdef.
2003-03-06 Jakub Jelinek <>
Andrew Haley <>
* elflink.h (elf_bfd_discard_info): Don't process eh frames if
output is relocateable.
2003-03-06 Steven Konopa <>
* som.c (som_fixup_formats): Correct formats for R_AUX_UNWIND and
2003-03-06 Alan Modra <>
* elf32-ppc.c (ppc_elf_create_linker_section): Don't capitalize
error messages.
(ELIMINATE_COPY_RELOCS): Define to zero.
(ppc_elf_relocate_section): Don't deref htab->tls_sec when calculating
TLSLD relocs. Report reloc types on a number of errors. Optimize
LOCAL24PC check for non-local syms. Don't capitalize error messages.
* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define to zero.
(ppc64_elf_relocate_section): Don't deref htab->tls_sec when
calculating TLSLD relocs. Report reloc types on a number of errors.
Don't capitalize error messages.
2003-03-03 H.J. Lu <>
* elfxx-ia64.c (USE_BRL): Removed.
(oor_ip): Removed.
2003-03-03 J"orn Rennecke <>
* elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
relocation (no special function), and make it non-partial_inplace.
(sh_elf_relax_section): When creating a bsr, use a consistent value
no matter if the symbol is extern or not; set addend to -4.
Don't swap load / non-load instructions for SH4.
(sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
rather than if the symbol is external to determine if adjusting the
offset makes sense. Adjust the addend too if appropriate.
(sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
2003-03-03 Nick Clifton <>
* po/da.po: Installed latest translation.
2003-03-02 Thiemo Seufer <>
* elf32-mips.c (elf_mips_howto_table_rel): Change definition of
R_MIPS_PC16 to rightshift 2.
(elf_reloc_map mips_reloc_map): Map to rightshifted BFD reloc.
(bfd_elf32_bfd_reloc_type_lookup): Support
* elf64-mips.c (mips_elf64_howto_table_rel): Change definition of
R_MIPS_PC16 to rightshift 2.
(mips_elf64_howto_table_rela): Likewise.
(mips_reloc_map): Map to rightshifted BFD reloc.
* elfn32-mips.c: The same as in elf64-mips.c.
* elfxx-mips.c (mips_elf_got_for_ibfd): Typo in comment.
(mips_elf_calculate_relocation): Handle rightshifted addends for
* reloc.c (BFD_RELOC_MIPSEMB_16_PCREL_S2): New BFD relocation for
MIPS Embedded PIC. Remove superfluous empty COMMENT.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
2003-02-28 Richard Henderson <>
* elfxx-ia64.c (elfNN_ia64_relax_section): Correct bounds
for ltoff22x relaxation.
2003-03-01 Alan Modra <>
* bfd-in.h (_bfd): Don't define.
* bfd.c: Rename occurrences of "struct _bfd" to "struct bfd".
* syms.c: Likewise.
* bfd-in2.h: Regenerate.
2003-02-27 Richard Henderson <>
* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add want_gotx;
(elfNN_ia64_check_relocs): Set it.
(allocate_global_data_got): Check it.
(allocate_local_got): Likewise.
(allocate_dynrel_entries): Likewise.
(elfNN_ia64_relax_ldxmov): New.
(elfNN_ia64_relax_section): Handle LTOFF22X, LDXMOV.
(elfNN_ia64_choose_gp): Split out from ...
(elfNN_ia64_final_link): ... here.
2003-02-27 Andrew Cagney <>
* bfd.c (struct bfd): Rename "struct _bfd".
* bfd-in.h: Update copyright.
(struct bfd): Rename "struct _bfd".
(_bfd): Define for backward compatibility.
* bfd-in2.h: Regenerate.
2003-02-25 Alan Modra <>
* elflink.h (elf_bfd_final_link): Apportion reloc counts to rel_hdr
and rel_hdr2 when initially counting input relocs rather than after
creating output reloc sections.
(elf_link_read_relocs_from_section): Don't abort with wrong reloc
* Run "make dep-am".
* Regenerate.
2003-02-24 Kris Warkentin <>
* elf.c (elfcore_read_notes): Add check for QNX style core file.
(elfcore_grog_nto_note): New function.
(elfcore_grog_nto_gregs): New function.
(elfcore_grog_nto_status): New function.
2003-02-24 Alan Modra <>
* elflink.c (_bfd_elf_create_got_section): Check existing .got
section flags before concluding that we've already been called.
Don't use register keyword.
(_bfd_elf_create_dynamic_sections): Don't use register keyword.
(_bfd_elf_create_linker_section): Formatting.
2003-02-20 jmc <>
* coff-h8300.c: Fix typo: intial -> initial.
* coff-ppc.c: Likewise.
2003-02-20 Alan Modra <>
* elf32-ppc.c: Formatting.
(allocate_dynrelocs): LD and GD relocs against the same sym need
separate GOT entries.
(ppc_elf_relocate_section): Correct GOT handling for multiple GOT
entries per symbol.
2003-02-19 Alan Modra <>
* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Simplify dynamic reloc
removal. Localize vars. Remove unnecessary dynobj test.
of INFO.
(allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
and optimize.
(elf_i386_relocate_section): Likewise.
(elf_i386_gc_sweep_hook): Simplify dyn reloc removal. Localize vars.
* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
* elf32-sparc.c (elf32_sparc_gc_sweep_hook): Likewise. Remove
local_dynrel for section too. Don't touch HIPLT22, LOPLT10, PCPLT32
or PCPLT10 relocs. Don't subtract twice on PLT32 relocs.
* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define.
(ppc64_elf_check_relocs): Use it. Correct comment. Move SEC_ALLOC
(ppc64_elf_adjust_dynamic_symbol): Use ELIMINATE_COPY_RELOCS.
(allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
and optimize. Use ELIMINATE_COPY_RELOCS.
(ppc64_elf_relocate_section): Likewise.