1 // __tls_get_new did not allocate new dtv for threads properly
8 #define T(c) ((c) || (t_error(#c " failed\n"),0))
10 static pthread_barrier_t b
;
13 static void *start(void *a
)
17 pthread_barrier_wait(&b
);
18 T(f
= dlsym(mod
, "f"));
28 pthread_barrier_init(&b
, 0, N
+1);
30 T(!pthread_create(td
+i
, 0, start
, 0));
32 T(mod
= dlopen("tls_get_new-dtv_dso.so", RTLD_NOW
));
33 pthread_barrier_wait(&b
);
36 T(!pthread_join(td
[i
], 0));