blob: 637906e2060e976a4011f5d45edb756904cd93da [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001#include <dlfcn.h>
2#include <stdio.h>
3#include <string.h>
4
5static int
6do_test (void)
7{
8 Dl_info i;
9 if (dladdr (&printf, &i) == 0)
10 {
11 puts ("not found");
12 return 1;
13 }
14 printf ("found symbol %s in %s\n", i.dli_sname, i.dli_fname);
15 return i.dli_sname == NULL
16 || (strcmp (i.dli_sname, "printf") != 0
17 /* On architectures which create PIC code by default
18 &printf may resolve to an address in libc.so
19 rather than in the binary. printf and _IO_printf
20 are aliased and which one comes first in the
21 hash table is up to the linker. */
22 && strcmp (i.dli_sname, "_IO_printf") != 0);
23}
24
25#define TEST_FUNCTION do_test ()
26#include "../test-skeleton.c"