1 #include <dlfcn.h> 2 #include <stdlib.h> 3 #include <stdio.h> 4 5 static int do_test(void)6do_test (void) 7 { 8 char modname[sizeof "tst-tlsmod18aXX.so"]; 9 void *h[20]; 10 for (int i = 0; i < 20; i++) 11 { 12 snprintf (modname, sizeof modname, "tst-tlsmod18a%d.so", i); 13 h[i] = dlopen (modname, RTLD_LAZY); 14 if (h[i] == NULL) 15 { 16 printf ("unexpectedly failed to open %s", modname); 17 exit (1); 18 } 19 } 20 21 for (int i = 0; i < 20; i++) 22 { 23 int (*fp) (void) = (int (*) (void)) dlsym (h[i], "test"); 24 if (fp == NULL) 25 { 26 printf ("cannot find test in tst-tlsmod18a%d.so", i); 27 exit (1); 28 } 29 30 if (fp ()) 31 exit (1); 32 } 33 34 return 0; 35 } 36 37 #include <support/test-driver.c> 38