mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
25294ff049
On Fedora 33 x86-64 with glibc 2.32-3, ifuncmain6pie failed with: ./ifuncmain6pie: IFUNC symbol 'foo' referenced in './ifuncmod6.so' is defined in the executable and creates an unsatisfiable circular dependency. FAIL ifuncmain6pie (exit status: 127) Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so, which trigger the circular IFUNC dependency. * testsuite/ifuncmain6pie.c: Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so. * testsuite/ifuncmod6.c: Likewise.
23 lines
289 B
C
23 lines
289 B
C
/* Test STT_GNU_IFUNC symbol reference in a shared library. */
|
|
|
|
extern int foo (void);
|
|
|
|
typedef int (*foo_p) (void);
|
|
|
|
extern foo_p get_foo_p (void);
|
|
extern int call_foo (void);
|
|
|
|
extern foo_p foo_ptr;
|
|
|
|
foo_p
|
|
get_foo_p (void)
|
|
{
|
|
return foo_ptr;
|
|
}
|
|
|
|
int
|
|
call_foo (void)
|
|
{
|
|
return foo ();
|
|
}
|