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 {
    # 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;
  }
}

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;

    # Hidden entry point (through macros).
    #_pthread_cleanup_pop; _pthread_cleanup_pop_restore; _pthread_cleanup_push;
    #_pthread_cleanup_push_defer;

    # 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_PRIVATE {
    __pthread_initialize_minimal;
    __pthread_clock_gettime; __pthread_clock_settime;
    __pthread_unwind;
  }
}
