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