diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2011-10-21 15:13:37 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2011-10-21 15:13:37 +0000 |
commit | e1f987424b7b3f5ac63a2a6ae044a202a44b8ff8 (patch) | |
tree | 3d07b587ea6ee595937027d07e992bb434085d08 /ld/testsuite/ld-ifunc/ifunc-16-x86.s | |
parent | f8e24652cb7bb02eb602d1c8a10ef068b8612cf9 (diff) | |
download | gdb-e1f987424b7b3f5ac63a2a6ae044a202a44b8ff8.zip gdb-e1f987424b7b3f5ac63a2a6ae044a202a44b8ff8.tar.gz gdb-e1f987424b7b3f5ac63a2a6ae044a202a44b8ff8.tar.bz2 |
Put IRELATIVE relocations after JUMP_SLOT.
bfd/
2011-10-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13302
* elf32-i386.c (elf_i386_link_hash_table): Add next_jump_slot_index
and next_irelative_index.
(elf_i386_link_hash_table_create): Initialize next_jump_slot_index
and next_irelative_index.
(elf_i386_allocate_dynrelocs): Increment reloc_count instead of
next_tls_desc_index.
(elf_i386_size_dynamic_sections): Set next_tls_desc_index and
next_irelative_index from reloc_count.
(elf_i386_finish_dynamic_symbol): Put R_386_IRELATIVE after
R_386_JUMP_SLOT.
* elf64-x86-64.c (elf_x86_64_link_hash_table): Add
next_jump_slot_index and next_irelative_index.
(elf_x86_64_link_hash_table_create): Initialize
next_jump_slot_index and next_irelative_index.
(elf_x86_64_size_dynamic_sections): Set next_irelative_index
from reloc_count.
(elf_x86_64_finish_dynamic_symbol): Put R_X86_64_IRELATIVE after
R_X86_64_JUMP_SLOT.
ld/testsuite/
2011-10-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13302
* ld-ifunc/ifunc-16-i386.d: New.
* ld-ifunc/ifunc-16-x86-64.d: Likewise.
* ld-ifunc/ifunc-16-x86.s: Likewise.
Diffstat (limited to 'ld/testsuite/ld-ifunc/ifunc-16-x86.s')
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-16-x86.s | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ld/testsuite/ld-ifunc/ifunc-16-x86.s b/ld/testsuite/ld-ifunc/ifunc-16-x86.s new file mode 100644 index 0000000..fb38253 --- /dev/null +++ b/ld/testsuite/ld-ifunc/ifunc-16-x86.s @@ -0,0 +1,17 @@ + .text + .globl fct + .type fct, @gnu_indirect_function + .set fct,resolve + .hidden int_fct + .globl int_fct + .set int_fct,fct + .p2align 4,,15 + .type resolve, @function +resolve: + call ifunc@PLT + .size resolve, .-resolve + .globl g + .type g, @function +g: + jmp int_fct@PLT + .size g, .-g |