| libc { | 
 |   GLIBC_2.0 { | 
 |     pthread_attr_destroy; pthread_attr_init; | 
 |     pthread_attr_getdetachstate; pthread_attr_setdetachstate; | 
 |     pthread_attr_getinheritsched; pthread_attr_setinheritsched; | 
 |     pthread_attr_getschedparam; pthread_attr_setschedparam; | 
 |     pthread_attr_getschedpolicy;  pthread_attr_setschedpolicy; | 
 |     pthread_attr_getscope; pthread_attr_setscope; | 
 |     pthread_condattr_destroy; pthread_condattr_init; | 
 |     pthread_cond_broadcast; pthread_cond_destroy; | 
 |     pthread_cond_init; pthread_cond_signal; pthread_cond_wait; | 
 |     pthread_cond_timedwait; | 
 |     pthread_equal; pthread_exit; | 
 |     pthread_getschedparam; pthread_setschedparam; | 
 |     pthread_mutex_destroy; pthread_mutex_init; | 
 |     pthread_mutex_lock; pthread_mutex_unlock; | 
 |     pthread_self; | 
 |     pthread_setcancelstate; pthread_setcanceltype; | 
 |   } | 
 |   GLIBC_2.1 { | 
 |     pthread_attr_init; | 
 |   } | 
 |   GLIBC_2.3.2 { | 
 |     __register_atfork; | 
 |  | 
 |     # Changed pthread_cond_t. | 
 |     pthread_cond_init; pthread_cond_destroy; | 
 |     pthread_cond_wait; pthread_cond_signal; | 
 |     pthread_cond_broadcast; pthread_cond_timedwait; | 
 |   } | 
 |   GLIBC_PRIVATE { | 
 |     __libc_alloca_cutoff; | 
 |     # Internal libc interface to libpthread | 
 |     __libc_dl_error_tsd; | 
 |     __libc_vfork; | 
 |     __libc_pthread_init; | 
 |     __libc_current_sigrtmin_private; __libc_current_sigrtmax_private; | 
 |     __libc_allocate_rtsig_private; | 
 |   } | 
 | } | 
 |  | 
 | libpthread { | 
 |   GLIBC_2.0 { | 
 |     pthread_create; pthread_join; pthread_self; pthread_equal; | 
 |     pthread_exit; pthread_detach; | 
 |  | 
 |     pthread_getschedparam; pthread_setschedparam; | 
 |  | 
 |     pthread_attr_init; pthread_attr_destroy; | 
 |     pthread_attr_getdetachstate; pthread_attr_setdetachstate; | 
 |     pthread_attr_getschedparam; pthread_attr_setschedparam; | 
 |     pthread_attr_getschedpolicy; pthread_attr_setschedpolicy; | 
 |     pthread_attr_getinheritsched; pthread_attr_setinheritsched; | 
 |     pthread_attr_getscope; pthread_attr_setscope; | 
 |  | 
 |     pthread_mutex_init; pthread_mutex_destroy; | 
 |     pthread_mutex_lock; pthread_mutex_trylock; pthread_mutex_unlock; | 
 |  | 
 |     pthread_mutexattr_init; pthread_mutexattr_destroy; | 
 |  | 
 |     pthread_cond_init; pthread_cond_destroy; | 
 |     pthread_cond_wait; pthread_cond_timedwait; | 
 |     pthread_cond_signal; pthread_cond_broadcast; | 
 |  | 
 |     pthread_condattr_destroy; pthread_condattr_init; | 
 |  | 
 |     pthread_cancel; pthread_testcancel; | 
 |     pthread_setcancelstate; pthread_setcanceltype; | 
 |  | 
 |     pthread_sigmask; pthread_kill; | 
 |  | 
 |     pthread_key_create; pthread_key_delete; | 
 |     pthread_getspecific; pthread_setspecific; | 
 |  | 
 |     pthread_once; | 
 |  | 
 |     pthread_atfork; | 
 |  | 
 |     flockfile; funlockfile; ftrylockfile; | 
 |  | 
 |     # Non-standard POSIX1.x functions. | 
 |     pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np; | 
 |  | 
 |     # Protected names for functions used in other shared objects. | 
 |     __pthread_mutex_init; __pthread_mutex_destroy; | 
 |     __pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock; | 
 |     __pthread_mutexattr_init; __pthread_mutexattr_destroy; | 
 |     __pthread_mutexattr_settype; | 
 |     __pthread_key_create; __pthread_getspecific; __pthread_setspecific; | 
 |     __pthread_once; __pthread_atfork; | 
 |     _IO_flockfile; _IO_ftrylockfile; _IO_funlockfile; | 
 |  | 
 |     # Semaphores. | 
 |     sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait; | 
 |  | 
 |     # Special fork handling. | 
 |     fork; __fork; vfork; | 
 |  | 
 |     # Cancellation points. | 
 |     close; __close; fcntl; __fcntl; read; __read; write; __write; accept; | 
 |     connect; __connect; recv; recvfrom; recvmsg; send; __send; sendmsg; sendto; | 
 |     fsync; lseek; __lseek; msync; nanosleep; open; __open; pause; tcdrain; | 
 |     system; wait; __wait; waitpid; | 
 |  | 
 |     # Hidden entry point (through macros). | 
 |     _pthread_cleanup_push; _pthread_cleanup_pop; | 
 |     _pthread_cleanup_push_defer; _pthread_cleanup_pop_restore; | 
 |  | 
 |     pthread_kill_other_threads_np; | 
 |  | 
 |     # The error functions. | 
 |     __errno_location; __h_errno_location; | 
 |  | 
 |     # Functions which previously have been overwritten. | 
 |     sigwait; sigaction; __sigaction; _exit; _Exit; longjmp; siglongjmp; | 
 |     raise; | 
 |   } | 
 |  | 
 |   GLIBC_2.1 { | 
 |     pthread_create; | 
 |     pthread_attr_init; | 
 |  | 
 |     pthread_attr_getguardsize; pthread_attr_setguardsize; | 
 |     pthread_attr_getstackaddr; pthread_attr_setstackaddr; | 
 |     pthread_attr_getstacksize; pthread_attr_setstacksize; | 
 |  | 
 |     pthread_mutexattr_gettype; pthread_mutexattr_settype; | 
 |  | 
 |     pthread_rwlock_init; pthread_rwlock_destroy; | 
 |     pthread_rwlock_rdlock; pthread_rwlock_wrlock; pthread_rwlock_unlock; | 
 |     pthread_rwlock_tryrdlock; pthread_rwlock_trywrlock; | 
 |  | 
 |     pthread_rwlockattr_init; pthread_rwlockattr_destroy; | 
 |     pthread_rwlockattr_getpshared; pthread_rwlockattr_setpshared; | 
 |     pthread_rwlockattr_getkind_np; pthread_rwlockattr_setkind_np; | 
 |  | 
 |     pthread_getconcurrency; pthread_setconcurrency; | 
 |  | 
 |     # Semaphores. | 
 |     sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait; | 
 |  | 
 |     __libc_current_sigrtmin; __libc_current_sigrtmax; | 
 |     __libc_allocate_rtsig; | 
 |   } | 
 |  | 
 |   GLIBC_2.1.1 { | 
 |     sem_close; sem_open; sem_unlink; | 
 |   } | 
 |  | 
 |   GLIBC_2.1.2 { | 
 |     __vfork; | 
 |   } | 
 |  | 
 |   GLIBC_2.2 { | 
 |     pthread_mutexattr_getpshared; pthread_mutexattr_setpshared; | 
 |  | 
 |     pthread_condattr_getpshared; pthread_condattr_setpshared; | 
 |  | 
 |     # New functions from IEEE Std. 1003.1-2001. | 
 |     pthread_mutex_timedlock; | 
 |  | 
 |     pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock; | 
 |  | 
 |     pthread_attr_getstack; pthread_attr_setstack; | 
 |  | 
 |     pthread_spin_destroy; pthread_spin_init; pthread_spin_lock; | 
 |     pthread_spin_trylock; pthread_spin_unlock; | 
 |  | 
 |     pthread_barrier_init; pthread_barrier_destroy; pthread_barrier_wait; | 
 |     pthread_barrierattr_destroy; pthread_barrierattr_init; | 
 |     pthread_barrierattr_setpshared; | 
 |  | 
 |     sem_timedwait; | 
 |  | 
 |     pthread_yield; | 
 |  | 
 |     pthread_getcpuclockid; | 
 |  | 
 |     # Cancellation points. | 
 |     lseek64; open64; __open64; pread; pread64; __pread64; pwrite; pwrite64; | 
 |     __pwrite64; | 
 |  | 
 |     # Names used internally. | 
 |     __pthread_rwlock_init; __pthread_rwlock_destroy; | 
 |     __pthread_rwlock_rdlock; __pthread_rwlock_tryrdlock; | 
 |     __pthread_rwlock_wrlock; __pthread_rwlock_trywrlock; | 
 |     __pthread_rwlock_unlock; | 
 |  | 
 |     __res_state; | 
 |   } | 
 |  | 
 |   GLIBC_2.2.3 { | 
 |     # Extensions. | 
 |     pthread_getattr_np; | 
 |   } | 
 |  | 
 |   GLIBC_2.2.6 { | 
 |     # Cancellation wrapper | 
 |     __nanosleep; | 
 |   } | 
 |  | 
 |   GLIBC_2.3.2 { | 
 |     # Changed pthread_cond_t. | 
 |     pthread_cond_init; pthread_cond_destroy; | 
 |     pthread_cond_wait; pthread_cond_timedwait; | 
 |     pthread_cond_signal; pthread_cond_broadcast; | 
 |   } | 
 |  | 
 |   GLIBC_2.3.3 { | 
 |     # 1003.1-2001 function accidentally left out in 2.2. | 
 |     pthread_barrierattr_getpshared; | 
 |  | 
 |     # Unix CS option. | 
 |     pthread_condattr_getclock; pthread_condattr_setclock; | 
 |  | 
 |     # Proposed API extensions. | 
 |     pthread_tryjoin_np; pthread_timedjoin_np; | 
 |  | 
 |     # New cancellation cleanup handling. | 
 |     __pthread_register_cancel; __pthread_unregister_cancel; | 
 |     __pthread_register_cancel_defer; __pthread_unregister_cancel_restore; | 
 |     __pthread_unwind_next; | 
 |     __pthread_cleanup_routine; | 
 |  | 
 |     # affinity interfaces without size parameter | 
 |     pthread_getaffinity_np; pthread_setaffinity_np; | 
 |     pthread_attr_getaffinity_np; pthread_attr_setaffinity_np; | 
 |   } | 
 |  | 
 |   GLIBC_2.3.4 { | 
 |     # New affinity interfaces. | 
 |     pthread_getaffinity_np; pthread_setaffinity_np; | 
 |     pthread_attr_getaffinity_np; pthread_attr_setaffinity_np; | 
 |  | 
 |     pthread_setschedprio; | 
 |   } | 
 |  | 
 |   GLIBC_2.4 { | 
 |     pthread_mutexattr_getrobust_np; pthread_mutexattr_setrobust_np; | 
 |     pthread_mutex_consistent_np; | 
 |     pthread_mutexattr_getprotocol; pthread_mutexattr_setprotocol; | 
 |     pthread_mutexattr_getprioceiling; pthread_mutexattr_setprioceiling; | 
 |     pthread_mutex_getprioceiling; pthread_mutex_setprioceiling; | 
 |   }; | 
 |  | 
 |   GLIBC_2.11 { | 
 |     pthread_sigqueue; | 
 |   }; | 
 |  | 
 |   GLIBC_2.12 { | 
 |     pthread_mutex_consistent; pthread_mutexattr_getrobust; | 
 |     pthread_mutexattr_setrobust; | 
 |  | 
 |     pthread_setname_np; pthread_getname_np; | 
 |   }; | 
 |  | 
 |   GLIBC_2.18 { | 
 |     pthread_getattr_default_np; | 
 |     pthread_setattr_default_np; | 
 |   } | 
 |  | 
 |   GLIBC_2.20 { | 
 |   } | 
 |  | 
 |   GLIBC_2.22 { | 
 |   } | 
 |  | 
 |   GLIBC_PRIVATE { | 
 |     __pthread_initialize_minimal; | 
 |     __pthread_clock_gettime; __pthread_clock_settime; | 
 |     __pthread_unwind; __pthread_get_minstack; | 
 |     __pthread_barrier_init; __pthread_barrier_wait; | 
 |     __shm_directory; | 
 |   } | 
 | } |