Age | Commit message (Collapse) | Author | Files | Lines |
|
2007-08-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4918
* elf32-i386.c (elf_i386_relocate_section): Allow R_386_PC32
on ___tls_get_addr for GD->LE/LD->LE transitions when not
building shared library.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Allow
R_X86_64_PC32 on __tls_get_addr for GD->LE/LD->LE transitions
when not building shared library.
ld/testsuite/
2007-08-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4918
* ld-i386/i386.exp (i386tests): Add tlsgd1 and tlsld1 tests.
* ld-x86-64/x86-64.exp (x86_64tests): Likewise.
* ld-i386/tlsgd1.dd: New file.
* ld-i386/tlsgd1.s: Likewise.
* ld-i386/tlsld1.dd: Likewise.
* ld-i386/tlsld1.s: Likewise.
* ld-x86-64/tlsgd1.dd: Likewise.
* ld-x86-64/tlsgd1.s: Likewise.
* ld-x86-64/tlsld1.dd: Likewise.
* ld-x86-64/tlsld1.s: Likewise.
|
|
* elfcode.h (NAME(_bfd_elf,bfd_from_remote_memory)): LOADBASE is now
initialized only on the first PT_LOAD. New variable LOADBASE_SET.
Removed PF_R checking for IA-64 vDSOs as redundant now.
Code advisory: Roland McGrath
|
|
|
|
* elfxx-mips.c (mips_elf_link_hash_table): Add computed_got_sizes.
(mips_elf_record_global_got_symbol): Increment local_gotno for
each forced-local symbol.
(_bfd_mips_elf_check_relocs): Pass forced-local call symbols to
mips_elf_record_global_got_symbol for VxWorks too.
(_bfd_mips_elf_always_size_sections): Set computed_got_sizes
to true after computing the GOT size.
(_bfd_mips_elf_hide_symbol): Increase local_gotno whenever
got.offset == 1. Only adjust global_gotno if computed_got_sizes.
For VxWorks, add a local entry when hiding a symbol that needs a
plt but has not been marked as needing a global got entry.
(_bfd_mips_elf_link_hash_table_create): Set computed_got_sizes to
false.
ld/testsuite/
* ld-mips-elf/vxworks-forced-local-1.d,
* ld-mips-elf/vxworks-forced-local-1.s,
* ld-mips-elf/vxworks-forced-local-1.ver: New test.
* ld-mips-elf/mips-elf.exp: Run it.
* ld-mips-elf/tlsdyn-o32-2.d: Adjust for removal of unnecessary
local GOT entry.
* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
* ld-mips-elf/vxworks1-lib.dd: Likewise.
* ld-mips-elf/vxworks1-lib.rd: Likewise.
|
|
|
|
Don't remove empty PT_LOAD header if false.
(_bfd_elf_map_sections_to_segments): If user phdrs, pass false
to elf_modify_segment_map.
(assign_file_positions_for_load_sections): Pass false to
elf_modify_segment_map.
|
|
* elf64-ppc.c (ADDI_R12_R12, LD_R11_0R2, LD_R2_0R2): Define.
Update stub comments.
(build_plt_stub): Build two variants, one without "addis".
(ppc_build_one_stub): Build stubs without "addis" if possible.
(ppc_size_one_stub): Size new stubs.
ld/testsuite/
* ld-powerpc/relbrlt.s (.text.pad2): Adjust space.
* ld-powerpc/relbrlt.d: Update.
* ld-powerpc/tlsexe.d: Update.
* ld-powerpc/tlsexe.g: Update.
* ld-powerpc/tlsexe.r: Update.
* ld-powerpc/tlsexetoc.d: Update.
* ld-powerpc/tlsexetoc.g: Update.
* ld-powerpc/tlsexetoc.r: Update.
* ld-powerpc/tlsso.d: Update.
* ld-powerpc/tlsso.g: Update.
* ld-powerpc/tlsso.r: Update.
* ld-powerpc/tlstocso.d: Update.
* ld-powerpc/tlstocso.g: Update.
|
|
|
|
|
|
* config.bfd (sh-*-vxworks): Define targ_underscore to "yes".
|
|
|
|
|
|
* aoutx.h (aout_get_external_symbols): Return if count is zero.
|
|
PR ld/4909
* elf.c (print_segment_map): New function.
(assign_file_positions_for_load_sections): Call print_segment_map
when a section can't be allocated in segment.
|
|
|
|
|
|
|
|
* po/BLD-POTFILES.in: Regenerate.
|
|
|
|
bss segments.
|
|
* Makefile.in: Regenerated.
|
|
* configure: Regenerated.
|
|
* elf32-arm.c (elf32_arm_link_hash_entry): Add
plt_maybe_thumb_refcount.
(elf32_arm_link_hash_newfunc): Set plt_maybe_thumb_refcount.
(elf32_arm_copy_indirect_symbol): Ditto.
(elf32_arm_adjust_dynamic_symbol): Ditto.
(bfd_elf32_arm_process_before_allocation): Handle R_ARM_THM_JUMP24.
(arm_add_to_rel): Ditto.
(elf32_arm_final_link_relocate): Merge R_ARM_THM_JUMP24 with
R_ARM_THM_CALL. Handle R_ARM_THM_JUMP19 against a PLT stub.
(elf32_arm_gc_sweep_hook): Call check_use_blx. Update plt counts
for R_ARM_THM_JUMP24 and R_ARM_THM_JUMP19.
(elf32_arm_check_relocs): Update plt counts for R_ARM_THM_JUMP24
and R_ARM_THM_JUMP19.
(allocate_dynrelocs): Use plt_maybe_thumb_refcount.
(elf32_arm_finish_dynamic_symbol): Ditto.
(elf32_arm_output_plt_map): Ditto.
|
|
by address.
(copy_elf_program_header): Likewise.
|
|
|
|
|
|
* elf-bfd.h (xvec_get_elf_backend_data): Add const.
* elfcode.h (elf_object_p): Use xvec_get_elf_backend_data.
* elfcore.h (elf_core_file_p): Likewise.
|
|
|
|
|
|
2007-08-02 H.J. Lu <hongjiu.lu@intel.com>
* coffcode.h (ALIGN_SET): Removed.
(ELIFALIGN_SET): Likewise.
(coff_set_alignment_hook): Handle IMAGE_SCN_ALIGN_128BYTES,
IMAGE_SCN_ALIGN_256BYTES, IMAGE_SCN_ALIGN_512BYTES,
IMAGE_SCN_ALIGN_1024BYTES, IMAGE_SCN_ALIGN_2048BYTES,
IMAGE_SCN_ALIGN_4096BYTES and IMAGE_SCN_ALIGN_8192BYTES.
include/coff/
2007-08-02 H.J. Lu <hongjiu.lu@intel.com>
* pe.h (IMAGE_SCN_ALIGN_POWER_BIT_POS): New.
(IMAGE_SCN_ALIGN_POWER_BIT_MASK): Likewise.
(IMAGE_SCN_ALIGN_POWER_NUM): Likewise.
(IMAGE_SCN_ALIGN_POWER_CONST): Likewise.
(IMAGE_SCN_ALIGN_128BYTES): Likewise.
(IMAGE_SCN_ALIGN_256BYTES): Likewise.
(IMAGE_SCN_ALIGN_512BYTES): Likewise.
(IMAGE_SCN_ALIGN_1024BYTES): Likewise.
(IMAGE_SCN_ALIGN_2048BYTES): Likewise.
(IMAGE_SCN_ALIGN_4096BYTES): Likewise.
(IMAGE_SCN_ALIGN_8192BYTES): Likewise.
(IMAGE_SCN_ALIGN_1BYTES): Redefined with
IMAGE_SCN_ALIGN_POWER_CONST.
(IMAGE_SCN_ALIGN_2BYTES): Likewise.
(IMAGE_SCN_ALIGN_4BYTES): Likewise.
(IMAGE_SCN_ALIGN_8BYTES): Likewise.
(IMAGE_SCN_ALIGN_16BYTES): Likewise.
(IMAGE_SCN_ALIGN_32BYTES): Likewise.
(IMAGE_SCN_ALIGN_64BYTES): Likewise.
|
|
|
|
* vms-tir.c (new_section): Fix cut and paste error.
|
|
* aoutx.h (aout_link_add_symbols): Return if count is zero.
|
|
* elf.c (bfd_elf_print_symbol): Macro dereferences pointer, so
pointer must be non-null.
|
|
(coff_slurp_line_table): Sort line table if not already sorted.
|
|
GCC 3.4.x warning.
|
|
r_type.
(swap_std_reloc_in): Likewise.
(aout_link_input_section_std): Likewise. Return with an error
on unexpected relocation type.
(aout_link_input_section_ext): Likewise.
|
|
* aoutx.h (final_link): Write a zero in first word of
stringtab if no symbols rather than corrupting last byte
of text/data.
|
|
|
|
sections need just one PT_NOTE segment.
(_bfd_elf_map_sections_to_segments): Likewise.
|
|
* coffgen.c (_bfd_coff_read_internal_relocs): Revert change of
2007-07-26. Buffer still in use, can't be freed.
|
|
|
|
|
|
|
|
|
|
* cofflink.c (coff_link_add_symbols): Return if count is zero.
|
|
* coff-i386.c (coff_i386_rtype_to_howto): Off by one error.
|
|
* aoutx.h (slurp_symbol_table): Return if count == 0.
|
|
* coffgen.c (_bfd_coff_read_internal_relocs): Return if count is zero.
|
|
* elf32-i386.c (elf_i386_check_relocs): Check for null pointer.
|