pt-spin \
pt-getname-np \
pt-setname-np \
- sem_close \
- sem_open \
sem-post \
sem-timedwait \
sem-trywait \
sem_unlink \
sem-wait \
sem-waitfast \
- sem_routines \
cancellation \
cthreads-compat \
herrno \
sem-destroy \
sem-getvalue \
sem-init \
+ sem_close \
+ sem_open \
+ sem_routines \
# routines
shared-only-routines = forward
pthread_sigmask;
pthread_testcancel;
pthread_yield;
+ sem_close;
sem_destroy;
sem_getvalue;
sem_init;
+ sem_open;
}
GLIBC_2.21 {
pthread_timedjoin_np;
pthread_tryjoin_np;
pthread_yield;
+ sem_close;
sem_destroy;
sem_getvalue;
sem_init;
+ sem_open;
}
GLIBC_PRIVATE {
pthread_create;
- sem_close; sem_open; sem_post;
+ sem_post;
sem_timedwait; sem_trywait; sem_unlink; sem_wait;
pthread_spin_destroy; pthread_spin_init; pthread_spin_lock;
GLIBC_2.12 pthread_sigmask F
GLIBC_2.12 pthread_testcancel F
GLIBC_2.12 pthread_yield F
+GLIBC_2.12 sem_close F
GLIBC_2.12 sem_destroy F
GLIBC_2.12 sem_getvalue F
GLIBC_2.12 sem_init F
+GLIBC_2.12 sem_open F
GLIBC_2.13 __fentry__ F
GLIBC_2.14 syncfs F
GLIBC_2.15 __fdelt_chk F
GLIBC_2.43 pthread_timedjoin_np F
GLIBC_2.43 pthread_tryjoin_np F
GLIBC_2.43 pthread_yield F
+GLIBC_2.43 sem_close F
GLIBC_2.43 sem_destroy F
GLIBC_2.43 sem_getvalue F
GLIBC_2.43 sem_init F
+GLIBC_2.43 sem_open F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
GLIBC_2.12 pthread_spin_lock F
GLIBC_2.12 pthread_spin_trylock F
GLIBC_2.12 pthread_spin_unlock F
-GLIBC_2.12 sem_close F
-GLIBC_2.12 sem_open F
GLIBC_2.12 sem_post F
GLIBC_2.12 sem_timedwait F
GLIBC_2.12 sem_trywait F
GLIBC_2.38 seed48_r F
GLIBC_2.38 seekdir F
GLIBC_2.38 select F
+GLIBC_2.38 sem_close F
GLIBC_2.38 sem_destroy F
GLIBC_2.38 sem_getvalue F
GLIBC_2.38 sem_init F
+GLIBC_2.38 sem_open F
GLIBC_2.38 semctl F
GLIBC_2.38 semget F
GLIBC_2.38 semop F
GLIBC_2.43 pthread_timedjoin_np F
GLIBC_2.43 pthread_tryjoin_np F
GLIBC_2.43 pthread_yield F
+GLIBC_2.43 sem_close F
GLIBC_2.43 sem_destroy F
GLIBC_2.43 sem_getvalue F
GLIBC_2.43 sem_init F
+GLIBC_2.43 sem_open F
HURD_CTHREADS_0.3 __cthread_getspecific F
HURD_CTHREADS_0.3 __cthread_keycreate F
HURD_CTHREADS_0.3 __cthread_setspecific F
GLIBC_2.38 pthread_spin_trylock F
GLIBC_2.38 pthread_spin_unlock F
GLIBC_2.38 sem_clockwait F
-GLIBC_2.38 sem_close F
-GLIBC_2.38 sem_open F
GLIBC_2.38 sem_post F
GLIBC_2.38 sem_timedwait F
GLIBC_2.38 sem_trywait F
#include <errno.h>
#include "semaphoreP.h"
#include <sem_routines.h>
+#include <shlib-compat.h>
int
__sem_close (sem_t *sem)
return 0;
}
-#if PTHREAD_IN_LIBC
+#ifndef __PTHREAD_HTL
versioned_symbol (libc, __sem_close, sem_close, GLIBC_2_34);
# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
compat_symbol (libpthread, __sem_close, sem_close, GLIBC_2_1_1);
# endif
-#else /* !PTHREAD_IN_LIBC */
-strong_alias (__sem_close, sem_close)
+#else /* __PTHREAD_HTL */
+versioned_symbol (libc, __sem_close, sem_close, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __sem_close, sem_close, GLIBC_2_12);
+#endif
#endif
#include <sem_routines.h>
#include <futex-internal.h>
#include <libc-lock.h>
-
-
-#if !PTHREAD_IN_LIBC
-/* The private names are not exported from libc. */
-# define __link link
-# define __unlink unlink
-#endif
+#include <string.h>
+#include <shlib-compat.h>
#define SEM_OPEN_FLAGS (O_RDWR | O_NOFOLLOW | O_CLOEXEC)
return result;
}
-#if PTHREAD_IN_LIBC
+#ifndef __PTHREAD_HTL
versioned_symbol (libc, __sem_open, sem_open, GLIBC_2_34);
# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
compat_symbol (libpthread, __sem_open, sem_open, GLIBC_2_1_1);
# endif
-#else /* !PTHREAD_IN_LIBC */
-strong_alias (__sem_open, sem_open)
+#else /* __PTHREAD_HTL */
+versioned_symbol (libc, __sem_open, sem_open, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __sem_open, sem_open, GLIBC_2_12);
+#endif
#endif
#include <semaphoreP.h>
#include <sys/mman.h>
#include <sem_routines.h>
+#include <string.h>
/* Keeping track of currently used mappings. */
struct inuse_sem