#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; | |
} |