d1ed1c7d69
Increment PLT reference count for locally defined local IFUNC symbols in shared object since STT_GNU_IFUNC symbol must go through PLT even if it is locally defined and undefined symbol may turn out to be a STT_GNU_IFUNC symbol later. bfd/ PR ld/19784 * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference count for locally defined local IFUNC symbols in shared object. * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. ld/ PR ld/19784 * testsuite/ld-i386/i386.exp: Remove pr19636-2e-nacl test. * testsuite/ld-i386/pr19636-2e-nacl.d: Moved to ... * testsuite/ld-i386/pr19636-2e.d: Here. Remove notarget. * testsuite/ld-ifunc/ifunc.exp: Run PR ld/19784 tests. * testsuite/ld-ifunc/pass.out: New file. * testsuite/ld-ifunc/pr19784a.c: Likewise. * testsuite/ld-ifunc/pr19784b.c: Likewise. * testsuite/ld-ifunc/pr19784c.c: Likewise.
20 lines
712 B
Makefile
20 lines
712 B
Makefile
#source: pr19636-2.s
|
|
#as: --32 -mrelax-relocations=no
|
|
#ld: -shared -Bsymbolic -m elf_i386
|
|
#readelf : -r --wide --dyn-syms
|
|
|
|
Relocation section '\.rel\.dyn' at offset [0x0-9a-f]+ contains 3 entries:
|
|
+Offset +Info +Type +Sym. Value +Symbol's Name
|
|
[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func
|
|
[0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func
|
|
[0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func
|
|
|
|
Relocation section '\.rel\.plt' at offset [0x0-9a-f]+ contains 1 entries:
|
|
+Offset +Info +Type +Sym. Value +Symbol's Name
|
|
[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +func
|
|
|
|
Symbol table '\.dynsym' contains [0-9]+ entries:
|
|
+Num: +Value +Size Type +Bind +Vis +Ndx Name
|
|
#...
|
|
+[0-9]+: +[a-f0-9]+ +0 +NOTYPE +WEAK +DEFAULT +UND +func
|
|
#pass
|