mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	2000-12-15 Andreas Jaeger <aj@suse.de> * stdio-common/scanf9.c (main): Reformat and change to avoid warnings. * stdio-common/tstdiomisc.c: Make local functions static. * stdio-common/tst-printf.c: Likewise. * elf/constload2.c: Add prototype declarations to shut up gcc. * elf/dep1.c: Likewise. * elf/dep2.c: Likewise. * elf/dep3.c: Likewise. * elf/dep4.c: Likewise. * elf/ltglobmod2.c: Likewise. * libio/fmemopen.c: Make local functions static. * elf/Makefile (distribute): Added testobj.h. * elf/testobj.h: New file. * elf/testobj1.c: Include testobj.h and move prototype declarations to testobj.h. * elf/testobj2.c: Likewise. * elf/testobj3.c: Likewise. * elf/testobj4.c: Likewise. * elf/testobj5.c: Likewise. * elf/testobj6.c: Likewise. * elf/testobj1_1.c: Likewise. * elf/preloadtest.c: Likewise.
		
			
				
	
	
		
			34 lines
		
	
	
		
			597 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			597 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <dlfcn.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| extern int bar (void);
 | |
| extern int foo (void);
 | |
| 
 | |
| int
 | |
| foo (void)
 | |
| {
 | |
|   void *h;
 | |
|   int res;
 | |
| 
 | |
|   /* Load ltglobalmod1 in the global namespace.  */
 | |
|   h = dlopen ("ltglobmod1.so", RTLD_GLOBAL | RTLD_LAZY);
 | |
|   if (h == NULL)
 | |
|     {
 | |
|       printf ("%s: cannot open %s: %s",
 | |
| 	      __FUNCTION__, "ltglobmod1.so", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   /* Call bar.  This is undefined in the DSO.  */
 | |
|   puts ("about to call `bar'");
 | |
|   fflush (stdout);
 | |
|   res = bar ();
 | |
| 
 | |
|   printf ("bar returned %d\n", res);
 | |
| 
 | |
|   dlclose (h);
 | |
| 
 | |
|   return res != 42;
 | |
| }
 |