diff options
author | gfleury <gfleury@disroot.org> | 2025-08-17 12:40:19 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-08-18 00:55:18 +0200 |
commit | 50f5ddc20abe4c389f2b8c4f34164ae3f330bb80 (patch) | |
tree | 5f484bad8df0a6f0623bd9b124847e0fdbb5b828 | |
parent | b2b6d32f11bad38e1ec036f5127f703ca29560aa (diff) | |
download | glibc-50f5ddc20abe4c389f2b8c4f34164ae3f330bb80.zip glibc-50f5ddc20abe4c389f2b8c4f34164ae3f330bb80.tar.gz glibc-50f5ddc20abe4c389f2b8c4f34164ae3f330bb80.tar.bz2 |
htl: move sem_open, sem_close into libc.
Message-ID: <20250817104023.91919-5-gfleury@disroot.org>
-rw-r--r-- | htl/Makefile | 6 | ||||
-rw-r--r-- | htl/Versions | 6 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/libc.abilist | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/libpthread.abilist | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/x86_64/libc.abilist | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/x86_64/libpthread.abilist | 2 | ||||
-rw-r--r-- | sysdeps/pthread/sem_close.c | 10 | ||||
-rw-r--r-- | sysdeps/pthread/sem_open.c | 18 | ||||
-rw-r--r-- | sysdeps/pthread/sem_routines.c | 1 |
9 files changed, 32 insertions, 21 deletions
diff --git a/htl/Makefile b/htl/Makefile index 33dfdc5..57327b3 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -34,15 +34,12 @@ libpthread-routines := \ 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 \ @@ -211,6 +208,9 @@ routines := \ sem-destroy \ sem-getvalue \ sem-init \ + sem_close \ + sem_open \ + sem_routines \ # routines shared-only-routines = forward diff --git a/htl/Versions b/htl/Versions index 764faa0..5b83e1c 100644 --- a/htl/Versions +++ b/htl/Versions @@ -101,9 +101,11 @@ libc { pthread_sigmask; pthread_testcancel; pthread_yield; + sem_close; sem_destroy; sem_getvalue; sem_init; + sem_open; } GLIBC_2.21 { @@ -222,9 +224,11 @@ libc { pthread_timedjoin_np; pthread_tryjoin_np; pthread_yield; + sem_close; sem_destroy; sem_getvalue; sem_init; + sem_open; } GLIBC_PRIVATE { @@ -317,7 +321,7 @@ libpthread { 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; diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 02bc296..9764b60 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -128,9 +128,11 @@ GLIBC_2.12 pthread_setspecific F 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 @@ -2669,9 +2671,11 @@ GLIBC_2.43 pthread_testcancel 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 diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index 8d04328..c7e8bc5 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -24,8 +24,6 @@ GLIBC_2.12 pthread_spin_init 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 diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 3fc4337..e64bf54 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -1759,9 +1759,11 @@ GLIBC_2.38 seed48 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 @@ -2350,9 +2352,11 @@ GLIBC_2.43 pthread_testcancel 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 diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index a612aa9..ee0fac3 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -44,8 +44,6 @@ GLIBC_2.38 pthread_spin_lock 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 diff --git a/sysdeps/pthread/sem_close.c b/sysdeps/pthread/sem_close.c index e989ed8..6e80bb0 100644 --- a/sysdeps/pthread/sem_close.c +++ b/sysdeps/pthread/sem_close.c @@ -18,6 +18,7 @@ #include <errno.h> #include "semaphoreP.h" #include <sem_routines.h> +#include <shlib-compat.h> int __sem_close (sem_t *sem) @@ -30,11 +31,14 @@ __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 diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c index e5eacb5..992786e 100644 --- a/sysdeps/pthread/sem_open.c +++ b/sysdeps/pthread/sem_open.c @@ -25,13 +25,8 @@ #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) @@ -215,11 +210,14 @@ out: 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 diff --git a/sysdeps/pthread/sem_routines.c b/sysdeps/pthread/sem_routines.c index 6208935..fb6a555 100644 --- a/sysdeps/pthread/sem_routines.c +++ b/sysdeps/pthread/sem_routines.c @@ -20,6 +20,7 @@ #include <semaphoreP.h> #include <sys/mman.h> #include <sem_routines.h> +#include <string.h> /* Keeping track of currently used mappings. */ struct inuse_sem |