mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	2001-09-05 Ulrich Drepper <drepper@redhat.com> * elf/Makefile: Add rules to build new tests. Don't run them yet since they both fail. * elf/dblload.c: New file. * elf/dblloadmod1.c: New file. * elf/dblloadmod2.c: New file. * elf/dblloadmod3.c: New file. * elf/dblunload.c: New file.
		
			
				
	
	
		
			54 lines
		
	
	
		
			961 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			961 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <dlfcn.h>
 | |
| #include <mcheck.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| 
 | |
| int
 | |
| main (void)
 | |
| {
 | |
|   void *p1;
 | |
|   void *p2;
 | |
|   int (*fp) (void);
 | |
|   int result;
 | |
| 
 | |
|   mtrace ();
 | |
| 
 | |
|   p1 = dlopen ("dblloadmod1.so", RTLD_LAZY);
 | |
|   if (p1 == NULL)
 | |
|     {
 | |
|       printf ("cannot open dblloadmod1.so: %s\n", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   p2 = dlopen ("dblloadmod2.so", RTLD_LAZY);
 | |
|   if (p1 == NULL)
 | |
|     {
 | |
|       printf ("cannot open dblloadmod2.so: %s\n", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   fp = dlsym (p1, "foo");
 | |
|   if (fp == NULL)
 | |
|     {
 | |
|       printf ("cannot get function \"foo\": %s\n", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   result = fp ();
 | |
| 
 | |
|   if (dlclose (p1) != 0)
 | |
|     {
 | |
|       printf ("error while closing dblloadmod1.so: %s\n", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   if (dlclose (p2) != 0)
 | |
|     {
 | |
|       printf ("error while closing dblloadmod2.so: %s\n", dlerror ());
 | |
|       exit (EXIT_FAILURE);
 | |
|     }
 | |
| 
 | |
|   return result;
 | |
| }
 |