aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
commit08129b155e50f01588ec6e675fc76637cb22eb01 (patch)
tree951a55d038001f1de40e4c40442a1819d6820402
parent27a448223cb2d3bab191c61303db48cee66f871c (diff)
downloadglibc-08129b155e50f01588ec6e675fc76637cb22eb01.tar.xz
glibc-08129b155e50f01588ec6e675fc76637cb22eb01.zip
nptl: Move core condition variable functions into libc
Onl pthread_cond_clockwait did not have a forwarder, so it needs a new symbol version. Some complications arise due to the need to supply hidden aliases, GLIBC_PRIVATE exports (for the C11 condition variable implementation that still remains in libpthread) and 64-bit time_t stubs. pthread_cond_broadcast, pthread_cond_signal, pthread_cond_timedwait, pthread_cond_wait, pthread_cond_clockwait have been moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--nptl/Makefile16
-rw-r--r--nptl/Versions19
-rw-r--r--nptl/forward.c61
-rw-r--r--nptl/libpthread-compat.c5
-rw-r--r--nptl/nptl-init.c10
-rw-r--r--nptl/old_pthread_cond_broadcast.c2
-rw-r--r--nptl/old_pthread_cond_signal.c2
-rw-r--r--nptl/old_pthread_cond_timedwait.c2
-rw-r--r--nptl/old_pthread_cond_wait.c2
-rw-r--r--nptl/pthreadP.h9
-rw-r--r--nptl/pthread_cond_broadcast.c10
-rw-r--r--nptl/pthread_cond_signal.c8
-rw-r--r--nptl/pthread_cond_wait.c62
-rw-r--r--sysdeps/nptl/pthread-functions.h11
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist5
75 files changed, 166 insertions, 342 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 9f739e25d5..6b81fe6c58 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -47,8 +47,12 @@ routines = \
lowlevellock \
nptl_deallocate_tsd \
nptl_nthreads \
+ old_pthread_cond_broadcast \
old_pthread_cond_destroy \
old_pthread_cond_init \
+ old_pthread_cond_signal \
+ old_pthread_cond_timedwait \
+ old_pthread_cond_wait \
pthread_atfork \
pthread_attr_copy \
pthread_attr_destroy \
@@ -69,8 +73,11 @@ routines = \
pthread_attr_setsigmask \
pthread_attr_setsigmask_internal \
pthread_cleanup_upto \
+ pthread_cond_broadcast \
pthread_cond_destroy \
pthread_cond_init \
+ pthread_cond_signal \
+ pthread_cond_wait \
pthread_condattr_destroy \
pthread_condattr_init \
pthread_equal \
@@ -83,6 +90,7 @@ routines = \
pthread_key_delete \
pthread_keys \
pthread_kill \
+ pthread_mutex_cond_lock \
pthread_mutex_conf \
pthread_mutex_consistent \
pthread_mutex_destroy \
@@ -118,10 +126,6 @@ libpthread-routines = \
nptl-init \
nptlfreeres \
old_pthread_atfork \
- old_pthread_cond_broadcast \
- old_pthread_cond_signal \
- old_pthread_cond_timedwait \
- old_pthread_cond_wait \
pt-interp \
pthread_attr_getaffinity \
pthread_attr_getguardsize \
@@ -141,9 +145,6 @@ libpthread-routines = \
pthread_barrierattr_setpshared \
pthread_cancel \
pthread_clockjoin \
- pthread_cond_broadcast \
- pthread_cond_signal \
- pthread_cond_wait \
pthread_condattr_getclock \
pthread_condattr_getpshared \
pthread_condattr_setclock \
@@ -157,7 +158,6 @@ libpthread-routines = \
pthread_join \
pthread_join_common \
pthread_kill_other_threads \
- pthread_mutex_cond_lock \
pthread_mutex_getprioceiling \
pthread_mutex_setprioceiling \
pthread_mutex_timedlock \
diff --git a/nptl/Versions b/nptl/Versions
index 7672831e3a..2c2c5c2078 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -96,6 +96,9 @@ libc {
thrd_sleep;
thrd_yield;
}
+ GLIBC_2.30 {
+ pthread_cond_clockwait;
+ }
GLIBC_2.32 {
pthread_attr_getsigmask_np;
pthread_attr_setaffinity_np;
@@ -114,6 +117,7 @@ libc {
__pthread_mutex_unlock;
__pthread_once;
__pthread_setspecific;
+ pthread_cond_clockwait;
pthread_getspecific;
pthread_key_create;
pthread_key_delete;
@@ -151,8 +155,12 @@ libc {
__pthread_cleanup_pop;
__pthread_cleanup_push;
__pthread_cleanup_upto;
+ __pthread_cond_broadcast; # Used by the C11 threads.
__pthread_cond_destroy; # Used by the C11 threads.
__pthread_cond_init; # Used by the C11 threads.
+ __pthread_cond_signal; # Used by the C11 threads.
+ __pthread_cond_timedwait; # Used by the C11 threads.
+ __pthread_cond_wait; # Used by the C11 threads.
__pthread_current_priority;
__pthread_exit;
__pthread_force_elision;
@@ -187,10 +195,6 @@ libpthread {
funlockfile;
pthread_atfork;
pthread_cancel;
- pthread_cond_broadcast;</