htl: move pthread_sigmask into libc.

Message-ID: <20241212220612.782313-3-gfleury@disroot.org>
This commit is contained in:
gfleury 2024-12-13 00:06:12 +02:00 committed by Samuel Thibault
parent 79cb83c7f9
commit 2716bd6b12
10 changed files with 25 additions and 13 deletions

View File

@ -48,7 +48,6 @@ libpthread-routines := \
pt-exit \
pt-initialize \
pt-join \
pt-sigmask \
pt-spin-inlines \
pt-cleanup \
pt-setcancelstate \
@ -209,6 +208,7 @@ routines := \
pt-pthread_self \
pt-self pt-equal \
pt-setschedparam \
pt-sigmask \
pt-sigstate \
pt-sigstate-destroy \
# routines

View File

@ -32,6 +32,7 @@ libc {
pthread_condattr_getpshared;
pthread_condattr_setclock;
pthread_condattr_setpshared;
pthread_sigmask;
}
GLIBC_2.21 {
@ -74,6 +75,7 @@ libc {
pthread_condattr_getpshared;
pthread_condattr_setclock;
pthread_condattr_setpshared;
pthread_sigmask;
}
@ -96,6 +98,7 @@ libc {
__pthread_default_condattr;
__pthread_sigstate;
__pthread_sigstate_destroy;
__pthread_sigmask;
}
}
@ -173,7 +176,6 @@ libpthread {
pthread_setconcurrency;
pthread_setschedprio; pthread_setspecific;
pthread_sigmask;
pthread_testcancel;
pthread_yield;

View File

@ -18,14 +18,20 @@
#include <pthread.h>
#include <signal.h>
#include <shlib-compat.h>
#include <pt-internal.h>
int
pthread_sigmask (int how, const sigset_t *set, sigset_t *oset)
__pthread_sigmask (int how, const sigset_t *set, sigset_t *oset)
{
struct __pthread *self = _pthread_self ();
/* Do not clear SELF's pending signals. */
return __pthread_sigstate (self, how, set, oset, 0);
}
libc_hidden_def (__pthread_sigmask)
versioned_symbol (libc, __pthread_sigmask, pthread_sigmask, GLIBC_2_41);
#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41)
compat_symbol (libpthread, __pthread_sigmask, pthread_sigmask, GLIBC_2_12);
#endif

View File

@ -55,6 +55,8 @@ extern int __pthread_cond_clockwait (pthread_cond_t *cond,
const struct timespec *abstime)
__nonnull ((1, 2, 4));
extern int __pthread_cond_destroy (pthread_cond_t *cond);
extern int __pthread_sigmask (int, const sigset_t *, sigset_t *);
libc_hidden_proto (__pthread_sigmask);
typedef struct __cthread *__cthread_t;
typedef int __cthread_key_t;

View File

@ -18,7 +18,7 @@
#include <assert.h>
#include <errno.h>
#include <pthread.h>
#include <pthreadP.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@ -468,7 +468,7 @@ __timer_thread_start (struct thread_node *thread)
thread->exists = 1;
sigfillset (&set);
pthread_sigmask (SIG_SETMASK, &set, &oset);
__pthread_sigmask (SIG_SETMASK, &set, &oset);
if (pthread_create (&thread->id, &thread->attr,
(void *(*) (void *)) thread_func, thread) != 0)
@ -477,7 +477,7 @@ __timer_thread_start (struct thread_node *thread)
retval = -1;
}
pthread_sigmask (SIG_SETMASK, &oset, NULL);
__pthread_sigmask (SIG_SETMASK, &oset, NULL);
return retval;
}

View File

@ -17,7 +17,7 @@
#include <assert.h>
#include <signal.h>
#include <pthread.h>
#include <pthreadP.h>
#define gai_start_notify_thread __gai_start_notify_thread
#define gai_create_helper_thread __gai_create_helper_thread
@ -28,7 +28,7 @@ __gai_start_notify_thread (void)
sigset_t ss;
sigemptyset (&ss);
int sigerr __attribute__ ((unused));
sigerr = pthread_sigmask (SIG_SETMASK, &ss, NULL);
sigerr = __pthread_sigmask (SIG_SETMASK, &ss, NULL);
assert_perror (sigerr);
}
@ -51,13 +51,13 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
sigset_t oss;
sigfillset (&ss);
int sigerr __attribute__ ((unused));
sigerr = pthread_sigmask (SIG_SETMASK, &ss, &oss);
sigerr = __pthread_sigmask (SIG_SETMASK, &ss, &oss);
assert_perror (sigerr);
int ret = pthread_create (threadp, &attr, tf, arg);
/* Restore the signal mask. */
sigerr = pthread_sigmask (SIG_SETMASK, &oss, NULL);
sigerr = __pthread_sigmask (SIG_SETMASK, &oss, NULL);
assert_perror (sigerr);
(void) pthread_attr_destroy (&attr);

View File

@ -59,6 +59,7 @@ GLIBC_2.12 pthread_equal F
GLIBC_2.12 pthread_getschedparam F
GLIBC_2.12 pthread_self F
GLIBC_2.12 pthread_setschedparam F
GLIBC_2.12 pthread_sigmask F
GLIBC_2.13 __fentry__ F
GLIBC_2.14 syncfs F
GLIBC_2.15 __fdelt_chk F
@ -2513,6 +2514,7 @@ GLIBC_2.41 pthread_condattr_getclock F
GLIBC_2.41 pthread_condattr_getpshared F
GLIBC_2.41 pthread_condattr_setclock F
GLIBC_2.41 pthread_condattr_setpshared F
GLIBC_2.41 pthread_sigmask F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F

View File

@ -85,7 +85,6 @@ GLIBC_2.12 pthread_setcanceltype F
GLIBC_2.12 pthread_setconcurrency F
GLIBC_2.12 pthread_setschedprio F
GLIBC_2.12 pthread_setspecific F
GLIBC_2.12 pthread_sigmask F
GLIBC_2.12 pthread_spin_destroy F
GLIBC_2.12 pthread_spin_init F
GLIBC_2.12 pthread_spin_lock F

View File

@ -1554,6 +1554,7 @@ GLIBC_2.38 pthread_self F
GLIBC_2.38 pthread_setcancelstate F
GLIBC_2.38 pthread_setcanceltype F
GLIBC_2.38 pthread_setschedparam F
GLIBC_2.38 pthread_sigmask F
GLIBC_2.38 ptrace F
GLIBC_2.38 ptsname F
GLIBC_2.38 ptsname_r F
@ -2208,6 +2209,7 @@ GLIBC_2.41 pthread_condattr_getclock F
GLIBC_2.41 pthread_condattr_getpshared F
GLIBC_2.41 pthread_condattr_setclock F
GLIBC_2.41 pthread_condattr_setpshared F
GLIBC_2.41 pthread_sigmask F
HURD_CTHREADS_0.3 __cthread_getspecific F
HURD_CTHREADS_0.3 __cthread_keycreate F
HURD_CTHREADS_0.3 __cthread_setspecific F

View File

@ -115,7 +115,6 @@ GLIBC_2.38 pthread_setcanceltype F
GLIBC_2.38 pthread_setconcurrency F
GLIBC_2.38 pthread_setschedprio F
GLIBC_2.38 pthread_setspecific F
GLIBC_2.38 pthread_sigmask F
GLIBC_2.38 pthread_spin_destroy F
GLIBC_2.38 pthread_spin_init F
GLIBC_2.38 pthread_spin_lock F