mirror of git://sourceware.org/git/glibc.git
				
				
				
			
		
			
				
	
	
		
			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;
 | 
						|
}
 |