chiark / gitweb /
eglibc (2.11.3-4+deb6u3) squeeze-lts; urgency=medium
[eglibc.git] / elf / ltglobmod2.c
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
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 }