1 /*
2  * Test program that invokes pthread_create@GLIBC_2.0().
3  *
4  * Note: pthread_create@GLIBC_2.0() is only available in 32-bit glibc versions,
5  * not in 64-bit versions.
6  */
7 
8 
9 #include <pthread.h>
10 #include <stdio.h>
11 
12 
13 extern int pthread_create_glibc_2_0(pthread_t*, const pthread_attr_t*,
14                                     void *(*)(void*), void*);
15 
16 __asm__(".symver pthread_create_glibc_2_0, pthread_create@GLIBC_2.0");
17 
18 
19 static void* thread_func(void *arg)
20 {
21   fprintf(stderr, "The thread.\n");
22   return 0;
23 }
24 
25 int main(int argc, char** argv)
26 {
27   int result;
28   pthread_t thr;
29 
30   result = (*pthread_create_glibc_2_0)(&thr, 0, thread_func, 0);
31   if (result != 0)
32   {
33     fprintf(stderr, "pthread_create() failed.\n");
34     return 1;
35   }
36   pthread_join(thr, 0);
37   fprintf(stderr, "Finished.\n");
38   return 0;
39 }
40