pr21964-2c.c 425 B

1234567891011121314151617181920212223242526272829303132
  1. #include <dlfcn.h>
  2. #include <stdio.h>
  3. extern int foo1 (void);
  4. int main()
  5. {
  6. void *dl;
  7. void *sym;
  8. int (*func) (void);
  9. if (foo1 () != 0)
  10. return 1;
  11. dl = dlopen("pr21964-2b.so", RTLD_LAZY);
  12. if (!dl)
  13. return 2;
  14. sym = dlsym(dl, "__start___verbose");
  15. if (!sym)
  16. return 3;
  17. func = dlsym(dl, "foo2");
  18. if (!func)
  19. return 4;
  20. if (func () == 0)
  21. printf ("PASS\n");
  22. dlclose(dl);
  23. return 0;
  24. }