Linux: consolidate chown implementation
[glibc.git] / elf / tst-addr1.c
blob93ce669cbd5adb5a9b95a9f37fec6a2647d0cc4e
1 #include <dlfcn.h>
2 #include <stdio.h>
3 #include <string.h>
5 static int
6 do_test (void)
8 Dl_info i;
9 if (dladdr (&printf, &i) == 0)
11 puts ("not found");
12 return 1;
14 printf ("found symbol %s in %s\n", i.dli_sname, i.dli_fname);
15 if (i.dli_sname == NULL)
16 return 1;
18 #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
19 /* On architectures which redirect long double to
20 _Float128 (e.g powerpc64le), printf will resolve
21 to __printfieee128 due to header redirects. There
22 is no _IO_printfieee128 alias. */
23 return strcmp (i.dli_sname, "__printfieee128") != 0;
24 #else
25 return i.dli_sname == NULL
26 || (strcmp (i.dli_sname, "printf") != 0
27 /* On architectures which create PIC code by default
28 &printf may resolve to an address in libc.so
29 rather than in the binary. printf and _IO_printf
30 are aliased and which one comes first in the
31 hash table is up to the linker. */
32 && strcmp (i.dli_sname, "_IO_printf") != 0);
33 #endif
36 #include <support/test-driver.c>