1 #include <dlfcn.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 
5 extern int bar (void);
6 extern int foo (void);
7 
8 int
foo(void)9 foo (void)
10 {
11   void *h;
12   int res;
13 
14   /* Load ltglobalmod1 in the global namespace.  */
15   h = dlopen ("ltglobmod1.so", RTLD_GLOBAL | RTLD_LAZY);
16   if (h == NULL)
17     {
18       printf ("%s: cannot open %s: %s",
19 	      __FUNCTION__, "ltglobmod1.so", dlerror ());
20       exit (EXIT_FAILURE);
21     }
22 
23   /* Call bar.  This is undefined in the DSO.  */
24   puts ("about to call `bar'");
25   fflush (stdout);
26   res = bar ();
27 
28   printf ("bar returned %d\n", res);
29 
30   dlclose (h);
31 
32   return res != 42;
33 }
34