mirror of git://sourceware.org/git/glibc.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			681 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			681 B
		
	
	
	
		
			C
		
	
	
	
| #include <dlfcn.h>
 | |
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| static int
 | |
| do_test (void)
 | |
| {
 | |
|   char modname[sizeof "tst-tlsmod18aXX.so"];
 | |
|   void *h[20];
 | |
|   for (int i = 0; i < 20; i++)
 | |
|     {
 | |
|       snprintf (modname, sizeof modname, "tst-tlsmod18a%d.so", i);
 | |
|       h[i] = dlopen (modname, RTLD_LAZY);
 | |
|       if (h[i] == NULL)
 | |
| 	{
 | |
| 	  printf ("unexpectedly failed to open %s", modname);
 | |
| 	  exit (1);
 | |
| 	}
 | |
|     }
 | |
| 
 | |
|   for (int i = 0; i < 20; i++)
 | |
|     {
 | |
|       int (*fp) (void) = (int (*) (void)) dlsym (h[i], "test");
 | |
|       if (fp == NULL)
 | |
| 	{
 | |
| 	  printf ("cannot find test in tst-tlsmod18a%d.so", i);
 | |
| 	  exit (1);
 | |
| 	}
 | |
| 
 | |
|       if (fp ())
 | |
| 	exit (1);
 | |
|     }
 | |
| 
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| #include <support/test-driver.c>
 |