]>
Commit | Line | Data |
---|---|---|
d785c366 UD |
1 | #include <dlfcn.h> |
2 | #include <stdio.h> | |
3 | #include <stdlib.h> | |
4 | ||
5 | extern int bar (void); | |
1a511d31 | 6 | extern int foo (void); |
d785c366 UD |
7 | |
8 | int | |
9 | foo (void) | |
10 | { | |
11 | void *h; | |
12 | int res; | |
13 | ||
14 | /* Load ltglobalmod1 in the global namespace. */ | |
15 | h = dlopen ("ltglobmod1.so", RTLD_GLOBAL | RTLD_LAZY); | |
16 | if (h == NULL) | |
17 | { | |
18 | printf ("%s: cannot open %s: %s", | |
19 | __FUNCTION__, "ltglobmod1.so", dlerror ()); | |
20 | exit (EXIT_FAILURE); | |
21 | } | |
22 | ||
23 | /* Call bar. This is undefined in the DSO. */ | |
24 | puts ("about to call `bar'"); | |
25 | fflush (stdout); | |
26 | res = bar (); | |
27 | ||
28 | printf ("bar returned %d\n", res); | |
29 | ||
30 | dlclose (h); | |
31 | ||
32 | return res != 42; | |
33 | } |