| #include <dlfcn.h> | |
| #include <stdio.h> | |
| extern int foo1 (void); | |
| int main() | |
| { | |
| void *dl; | |
| void *sym; | |
| int (*func) (void); | |
| if (foo1 () != 0) | |
| return 1; | |
| dl = dlopen("pr21964-2b.so", RTLD_LAZY); | |
| if (!dl) | |
| return 2; | |
| sym = dlsym(dl, "__start___verbose"); | |
| if (!sym) | |
| return 3; | |
| func = dlsym(dl, "foo2"); | |
| if (!func) | |
| return 4; | |
| if (func () == 0) | |
| printf ("PASS\n"); | |
| dlclose(dl); | |
| return 0; | |
| } |