1 | #include <dlfcn.h> |
2 | #include <stdio.h> |
3 | |
4 | int |
5 | xyzzy (void) |
6 | { |
7 | printf (format: "%s:%s\n" , __FILE__, __func__); |
8 | return 21; |
9 | } |
10 | |
11 | int |
12 | back (void) |
13 | { |
14 | printf (format: "%s:%s\n" , __FILE__, __func__); |
15 | return 1; |
16 | } |
17 | |
18 | extern int foo (void); |
19 | |
20 | static int |
21 | do_test (void) |
22 | { |
23 | void *p = dlopen (file: "$ORIGIN/tst-deep1mod2.so" , RTLD_LAZY|RTLD_DEEPBIND); |
24 | |
25 | int (*f) (void) = dlsym (handle: p, name: "bar" ); |
26 | if (f == NULL) |
27 | { |
28 | puts (s: dlerror ()); |
29 | return 1; |
30 | } |
31 | |
32 | return foo () + f (); |
33 | } |
34 | |
35 | #include <support/test-driver.c> |
36 | |