Age | Commit message (Collapse) | Author | Files | Lines |
|
(section_list): Remove typedef.
(record_section_with_arm_elf_section_data): Remove.
(find_arm_elf_section_entry): Remove.
(get_arm_elf_section_data): Use is_arm_elf.
(unrecord_section_with_arm_elf_section_data): Remove.
(elf32_arm_new_section_hook): Don't call
record_section_with_arm_elf_section_data.
(elf32_arm_write_section): Set mapcount to -1 when
the map has been used. Don't call
unrecord_section_with_arm_elf_section_data.
(unrecord_section_via_map_over_sections): Remove.
(elf32_arm_close_and_cleanup): Remove.
(elf32_arm_bfd_free_cached_info): Remove.
(bfd_elf32_close_and_cleanup): Don't define.
(bfd_elf32_bfd_free_cached_info): Don't define.
|
|
|
|
2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/11396
* libcoff-in.h (pe_tdata): Add dont_strip_reloc.
* libcoff.h: Regenerated.
* peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Clear F_RELFLG
if dont_strip_reloc is set.
(_bfd_XX_bfd_copy_private_bfd_data_common): Set
dont_strip_reloc on output if there is no .reloc and
IMAGE_FILE_RELOCS_STRIPPED isn't set in input.
|
|
2010-03-15 Wei Guozhi <carrot@google.com>
PR gas/11323
* bfd-in2.h (enum bfd_reloc_code_real): New BFD_RELOC_GOT_PREL type.
* elf32-arm.c (elf32_arm_reloc_map): BFD_RELOC_GOT_PREL to
R_ARM_GOT_PREL map.
* libbfd.h (bfd_reloc_code_real_names): BFD_RELOC_GOT_PREL name.
* reloc.c (comments): Document the new relocation.
gas/
2010-03-15 Wei Guozhi <carrot@google.com>
PR gas/11323
* config/tc-arm.c (reloc_names): New relocation names.
(md_apply_fix): New case for BFD_RELOC_ARM_GOT_PREL.
(tc_gen_reloc): New case for BFD_RELOC_ARM_GOT_PREL.
* doc/c-arm.texi (ARM-Relocations): Document the new relocation.
gas/testsuite
2010-03-15 Wei Guozhi <carrot@google.com>
PR gas/11323
* gas/arm/got_prel.s: New test case.
* gas/arm/got_prel.d: Likewise.
|
|
|
|
2010-03-17 H.J. Lu <hongjiu.lu@intel.com>
* reloc.c (BFD_RELOC_SPU_PIC18): Removed.
(BFD_RELOC_SPU_STUB): Likewise.
|
|
2010-03-17 Jie Zhang <jie@codesourcery.com>
* elf.c (assign_file_positions_for_load_sections): Avoid
overflow.
|
|
proper type.
|
|
|
|
|
|
(ppc64_elf_edit_toc): Set it here.
(ha_reloc_match): New function.
(ppc64_elf_relocate_section): Optimize bigtoc insn sequences.
|
|
|
|
* elf64-ppc.h (ppc64_elf_has_small_toc_reloc): Declare.
|
|
|
|
PR ld/11378
* elf64-ppc.h (ppc64_elf_check_init_fini): Declare.
* elf64-ppc.c (call_check_done): Define.
(ppc64_elf_add_symbol_hook): Substitute bfd_get_section_name macro.
(ppc64_elf_check_relocs, ppc64_elf_size_dynamic_sections): Likewise.
(ppc64_elf_finish_multitoc_partition): Remove unnecessary check.
(toc_adjusting_stub_needed): Use call_check_done rather than toc_off.
Simplify return logic. Iterate over all .init and .fini fragments
by recursion. Set makes_toc_func_call here..
(ppc64_elf_next_input_section): ..rather than here.
(check_pasted_section, ppc64_elf_check_init_fini): New functions.
ld/
PR ld/11378
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call
ppc64_elf_check_init_fini and warn if .init/.fini use different TOCs.
|
|
|
|
|
|
* elf64-ppc.c (ppc_type_of_stub): Always set *hash to the
function descriptor symbol if there is one, not just for plt stubs.
(ppc64_elf_relocate_section): Use fdh on all ppc_get_stub_entry calls.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Makefile.am (ALL_EMULATIONS): Add eelf32_sparc_sol2.o,
eelf_i386_sol2.o.
(ALL_64_EMULATIONS): Add eelf_x86_64_sol2.o, eelf64_sparc_sol2.o.
(eelf32_sparc_sol2.c): New rule.
(eelf64_sparc_sol2.c): Likewise.
(eelf_x86_64_sol2.c): Likewise.
(eelf_i386_sol2.c): Likewise.
* Makefile.in: Regenerate.
* configure.tgt (i[3-7]86-*-solaris2*): Change targ_emul to
elf_i386_sol2.
Add elf_i386_ldso, elf_x86_64_sol2 to targ_extra_emuls.
(x86_64-*-solaris2*): Change targ_emul to elf_x86_64_sol2.
Add elf_x86_64, elf_i386_sol2, elf_i386 to targ_extra_emuls.
(sparc-*-solaris2.[0-6]*): Change targ_emul to elf32_sparc_sol2.
Add target_extra_emuls.
(sparc-*-solaris2*): Change targ_emul to elf32_sparc_sol2.
Add elf32_sparc, elf64_sparc_sol2 to targ_extra_emuls.
(sparcv9-*-solaris2*): Change targ_emul to elf64_sparc_sol2.
Add elf64_sparc, elf32_sparc_sol2 to target_extra_emuls.
* emulparams/elf32_sparc_sol2.sh: New file.
* emulparams/elf64_sparc_sol2.sh: New file.
* emulparams/elf_i386_sol2.sh: New file.
* emulparams/elf_x86_64_sol2.sh: New file.
* emultempl/solaris2.em: New file.
bfd:
* elflink.c (bfd_elf_size_dynamic_sections): Don't emit base
version twice.
Skip it when constructing def.vd_next.
* elf32-i386.c (TARGET_LITTLE_SYM): Redefine to
bfd_elf32_i386_sol2_vec.
(TARGET_LITTLE_NAME): Redefine to elf32-i386-sol2.
(elf32_bed): Redefine to elf32_i386_sol2_bed.
(elf_backend_want_plt_sym): Redefine to 1.
* elf64-x86-64.c (TARGET_LITTLE_SYM): Redefine to
bfd_elf64_x86_64_sol2_vec.
(TARGET_LITTLE_NAME): Redefine to elf64-x86-64-sol2.
(elf64_bed): Redefine to elf64_x86_64_sol2_bed.
(elf_backend_want_plt_sym): Redefine to 1.
* config.bfd (i[3-7]86-*-solaris2*): Set targ_defvec to
bfd_elf32_i386_sol2_vec.
Replace bfd_elf64_x86_64_vec by bfd_elf64_x86_64_sol2_vec in
targ64_selvecs.
(x86_64-*-solaris2*): Set targ_defvec to bfd_elf32_i386_sol2_vec.
Replace bfd_elf64_x86_64_vec by bfd_elf64_x86_64_sol2_vec in
targ_selvecs.
* configure.in: Handle bfd_elf32_i386_sol2_vec,
bfd_elf64_x86_64_sol2_vec.
* configure: Regenerate.
* targets.c (bfd_elf32_i386_sol2_vec): Declare.
(bfd_elf64_x86_64_sol2_vec): Declare.
(_bfd_target_vector): Add bfd_elf32_i386_sol2_vec,
bfd_elf64_x86_64_sol2_vec.
|
|
|
|
sections.
|
|
* dwarf2.c (read_abbrevs): Return NULL on alloc failures.
(read_attribute_value, decode_line_info): Likewise.
(add_line_info, read_rangelist): Return FALSE on alloc failures.
(arange_add, sort_line_sequences): Likewise.
(find_abstract_instance_name): Handle failures from called funcs.
(scan_unit_for_symbols, parse_comp_unit, decode_line_info): Likewise.
(find_line): Realloc to a temp, and handle alloc fail.
|
|
|
|
a mapping symbol to an empty section.
|
|
|
|
* ld/testsuite/ld-arm/arm-merge-incompatiblea.s: Likewise.
* ld/testsuite/ld-arm/arm-merge-incompatibleb.s: Likewise.
* ld/testsuite/ld-arm/arm-elf.exp: Run the new test.
* bfd/elf32-arm.c (elf32_arm_merge_eabi_attributes): Add a check of the
return value from the call to _bfd_elf_merge_object_attributes.
|
|
Alan Modra <amodra@gmail.com>
bfd/
* elf32-arm.c (a8_erratum_fix): Add st_type field to record the
destination mode of the a8 stub.
(elf32_arm_link_hash_table): Add top_id field.
(elf32_arm_link_hash_table_create): Initialize top_id.
(arm_type_of_stub): Update prototype, st_type can now be updated
by this function. Actual destination address in case of PLT is
computed here, to help factorizing code.
(elf32_arm_stub_name): Update prototype, use stub_type additional
parameter to build stub name.
(elf32_arm_get_stub_entry): Update prototype, use stub_type
additional parameter to build stub entry.
(arm_build_one_stub): Use bfd_put_16/bfd_put_32 instead of
put_thumb_insn/put_arm_insn as BE8 encoding is now handled later.
Call elf32_arm_final_link_relocate to process all in-stub
relocations.
(elf32_arm_setup_section_lists): Update top_id.
(cortex_a8_erratum_scan): Record stub destination mode.
(elf32_arm_size_stubs): Update call to arm_type_of_stub according
to new prototype.
(elf32_arm_final_link_relocate): Enable processing of in-stub
REL32 relocations. Rely on arm_type_of_stub to detect if a stub is
needed, enabling code factorization.
(elf32_arm_final_link): Process stub sections.
(elf32_arm_output_map_sym): Add entry to code/data map.
ld/testsuite/
* ld-arm/arm-elf.exp: Change .text start address for
farcall-thumb-arm tests. Add v4t variant for farcall-mixed-lib
test.
* ld-arm/farcall-mixed-lib-v4t.d: New test.
* ld-arm/farcall-mixed-lib1.s: Don't force armv5t.
* ld-arm/farcall-mixed-lib2.s: Likewise.
* ld-arm/arm-call.d: Update expected results.
* ld-arm/cortex-a8-far.d: Likewise.
* ld-arm/farcall-group-size2.d: Likewise.
* ld-arm/farcall-group.d: Likewise.
* ld-arm/farcall-mix.d: Likewise.
* ld-arm/farcall-mix2.d: Likewise.
* ld-arm/farcall-mixed-app-v5.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/farcall-thumb-arm.d: Likewise.
* ld-arm/farcall-thumb-arm-blx.d: Likewise.
* ld-arm/farcall-thumb-arm-pic-veneer.d: Likewise.
* ld-arm/farcall-thumb-arm-blx-pic-veneer.d: Likewise.
* ld-arm/farcall-thumb-arm.s: Update test. Add a new call to
potentially generate different types of stubs.
|
|
(sparc_reloc_map): Delete.
(_bfd_sparc_elf_reloc_type_lookup): Explicitly handle each
relocation type in switch statements.
|
|
h->def_regular, set h->ref_regular.
(allocate_dynrelocs): Only force output of STT_GNU_IFUNC plt entries
and dynamic relocations if h->ref_regular.
|
|
|
|
|
|
|
|
|
|
|
|
PR ld/11304
* elf.c (_bfd_elf_init_private_section_data): Rename need_group
to final_link and invert. For final link allow some flags to
differ. Don't specially allow flags to be all zero.
ld/
* ldlang.c (init_os): Remove isec param. Don't check for
bfd_section already set or call bfd_init_private_section_data
here.
(exp_init_os): Update init_os call.
(lang_add_section): Tidy. Really don't set SEC_LINK_ONCE
flags. Call bfd_init_private_section_data here.
(map_input_to_output_sections): Tidy. Update init_os calls.
Use os->sectype to select sec flags for lang_data_statement.
|
|
|
|
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Ise
SYMBOL_REFERENCES_LOCAL to exclude entries from the dynamic symbol
table.
|
|
|
|
|
|
|
|
|
|
fieldmask left by rightshift.
(_bfd_relocate_contents): Likewise. Use rightshift addrmask in all
overflow checks.
|
|
|
|
2010-02-20 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Don't check
STT_GNU_IFUNC on large common symbol.
|