bfd/
2009-07-16 H.J. Lu <hongjiu.lu@intel.com> * elf32-i386.c (elf_i386_relocate_section): Don't get local STT_GNU_IFUNC symbol for relocatable link. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. ld/testsuite/ 2009-07-16 H.J. Lu <hongjiu.lu@intel.com> * ld-ifunc/ifunc-5r-local-i386.d: New. * ld-ifunc/ifunc-5r-local-x86-64.d: Likewise.
This commit is contained in:
parent
9a6f4e976d
commit
1f85278f17
6 changed files with 36 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf32-i386.c (elf_i386_relocate_section): Don't get local
|
||||
STT_GNU_IFUNC symbol for relocatable link.
|
||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
|
||||
|
||||
2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* bfdio.c (bfd_iovec): Add comments for bmmap.
|
||||
|
|
|
@ -2891,7 +2891,8 @@ elf_i386_relocate_section (bfd *output_bfd,
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if (ELF32_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
|
||||
else if (!info->relocatable
|
||||
&& ELF32_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
|
||||
{
|
||||
/* Relocate against local STT_GNU_IFUNC symbol. */
|
||||
h = elf_i386_get_local_sym_hash (htab, input_bfd,
|
||||
|
|
|
@ -2612,7 +2612,8 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
&sec, rel);
|
||||
|
||||
/* Relocate against local STT_GNU_IFUNC symbol. */
|
||||
if (ELF64_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
|
||||
if (!info->relocatable
|
||||
&& ELF64_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
|
||||
{
|
||||
h = elf64_x86_64_get_local_sym_hash (htab, input_bfd,
|
||||
rel, FALSE);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-ifunc/ifunc-5r-local-i386.d: New.
|
||||
* ld-ifunc/ifunc-5r-local-x86-64.d: Likewise.
|
||||
|
||||
2009-07-16 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* ld-arm/arm-target2.s: Add addend cases.
|
||||
|
|
11
ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d
Normal file
11
ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d
Normal file
|
@ -0,0 +1,11 @@
|
|||
#source: ifunc-5-local-i386.s
|
||||
#ld: -r -m elf_i386
|
||||
#as: --32
|
||||
#readelf: -r --wide
|
||||
#target: x86_64-*-* i?86-*-*
|
||||
|
||||
Relocation section '.rel.text' at .*
|
||||
[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_GOTPC[ ]+0+[ ]+_GLOBAL_OFFSET_TABLE_[ ]*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_PLT32[ ]+foo\(\)[ ]+foo[ ]*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_GOT32[ ]+foo\(\)[ ]+foo[ ]*
|
10
ld/testsuite/ld-ifunc/ifunc-5r-local-x86-64.d
Normal file
10
ld/testsuite/ld-ifunc/ifunc-5r-local-x86-64.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#source: ifunc-5-local-x86-64.s
|
||||
#as: --64
|
||||
#ld: -r -melf_x86_64
|
||||
#readelf: -r --wide
|
||||
#target: x86_64-*-*
|
||||
|
||||
Relocation section '.rela.text' at .*
|
||||
[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_PLT32[ ]+foo\(\)[ ]+foo - 4
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_GOTPCREL[ ]+foo\(\)[ ]+foo - 4
|
Loading…
Reference in a new issue