33 lines
425 B
C
33 lines
425 B
C
|
#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;
|
||
|
}
|