Commit | Line | Data |
---|---|---|
d8cf8b51 L |
1 | #include <stdio.h> |
2 | #include <dlfcn.h> | |
3 | ||
4 | int bar = -20; | |
5 | ||
6 | int | |
7 | main (void) | |
8 | { | |
9 | int ret = 0; | |
10 | void *handle; | |
11 | void (*fcn) (void); | |
12 | ||
13 | handle = dlopen("./tmpdir/libdl6d.so", RTLD_GLOBAL|RTLD_LAZY); | |
14 | if (!handle) | |
15 | { | |
16 | printf("dlopen ./tmpdir/libdl6d.so: %s\n", dlerror ()); | |
17 | return 1; | |
18 | } | |
19 | ||
20 | fcn = (void (*)(void)) dlsym(handle, "foo"); | |
21 | if (!fcn) | |
22 | { | |
23 | printf("dlsym foo: %s\n", dlerror ()); | |
24 | ret += 1; | |
25 | } | |
26 | else | |
27 | { | |
28 | (*fcn) (); | |
29 | } | |
30 | ||
31 | dlclose (handle); | |
32 | return ret; | |
33 | } |