From patchwork Tue Dec 31 13:49:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: gfleury X-Patchwork-Id: 103798 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 84BDA3858414 for ; Tue, 31 Dec 2024 13:50:38 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from layka.disroot.org (layka.disroot.org [178.21.23.139]) by sourceware.org (Postfix) with ESMTPS id EEC0D3858D29 for ; Tue, 31 Dec 2024 13:49:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EEC0D3858D29 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=disroot.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=disroot.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EEC0D3858D29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=178.21.23.139 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1735652978; cv=none; b=vqdQ8iSv/H1Q7hVO0uj7SuSd3BNZaCz88KqJR6G/9jFt/MUuqHc5X+Wa1b+PE0QYeDBK0/tncO1Q54N05IR37XSsW0gJAiV8lYL4bT6PVJIrbC8TvDqmchX/zVDliGuut4aZ8hUZSxzSjkcE+Q9nZ7203DTVopIFpehAbAChVss= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1735652978; c=relaxed/simple; bh=nWXlYCXARV/f4WPjh682neUCEJ2CQGF6xRuDOtI3W/M=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=jeag59grFqODiHFVXD2+3yXPcVsRJOvrklbdQKn/WTkr5+xbOqOJtyQ21cqZhGcDcwsNKxGAJ9hR4BmrGdb1RMDXePMGOPTLyU2gXN5wesC1sKovpUu7Jp0Hrnhj25G/4RW57jFjo5ZTKkA4LQ4r2PQuVIYrLWWvx2i5k6l+SMA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id A169625BBD; Tue, 31 Dec 2024 14:49:36 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 6pin9kzbptUk; Tue, 31 Dec 2024 14:49:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1735652975; bh=nWXlYCXARV/f4WPjh682neUCEJ2CQGF6xRuDOtI3W/M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=J48OZKlkzwrpP0WB9tTGqcmSSD+ufs7hD+LowBQ2MBgyf9w7b6bgzQj7y3iICM6qC Iaj49l9UV5ezd6i4LQiHF+oK+9lo9xn1bKkR++lDS+AmZBiUv13CiRpa5KBXNR4bSv usOnDTSR0rWMvE0P6Zyp7FeBEn6clKyw0PejjHnOafzPD+F1C/MJL/QvbbQDhho1Ov 4ALWDnO1MClmB3slv6nrUhnqPEI/wu4VqcHNjuRfBCDmMsr5ux1KQFU7wATRasRDwO VA+s3d8+5kM9Xyjqur6eMm4FJPsR5sJfVVDNcbSMvYECtCk8WmAPUxq/mx75lvc5xp sgcUDpYYtnaHA== From: gfleury To: libc-alpha@sourceware.org Cc: gfleury Subject: [PATCH 7/8] htl: move pthread_mutexattr_{setrobust, setrobust_np}, pthread_mutexattr_{getrobust, getrobust_np} into libc. Date: Tue, 31 Dec 2024 15:49:08 +0200 Message-Id: <20241231134909.1166440-8-gfleury@disroot.org> In-Reply-To: <20241231134909.1166440-1-gfleury@disroot.org> References: <20241231134909.1166440-1-gfleury@disroot.org> MIME-Version: 1.0 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org --- htl/Makefile | 4 ++-- htl/Versions | 6 +++--- sysdeps/htl/pthreadP.h | 20 +++++++++++++++++++ .../mach/hurd/htl/pt-mutexattr-getrobust.c | 13 +++++++++--- .../mach/hurd/htl/pt-mutexattr-setpshared.c | 4 ++-- .../mach/hurd/htl/pt-mutexattr-setrobust.c | 13 +++++++++--- sysdeps/mach/hurd/i386/libc.abilist | 8 ++++++++ sysdeps/mach/hurd/i386/libpthread.abilist | 4 ---- sysdeps/mach/hurd/x86_64/libc.abilist | 8 ++++++++ sysdeps/mach/hurd/x86_64/libpthread.abilist | 4 ---- 10 files changed, 63 insertions(+), 21 deletions(-) diff --git a/htl/Makefile b/htl/Makefile index 80b9e62d..5b4615a3 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -56,8 +56,6 @@ libpthread-routines := \ pt-cancel \ pt-mutexattr-getprioceiling \ pt-mutexattr-setprioceiling \ - pt-mutexattr-getrobust \ - pt-mutexattr-setrobust \ pt-mutex-init \ pt-mutex-destroy \ pt-mutex-lock \ @@ -196,10 +194,12 @@ routines := \ pt-mutexattr-destroy \ pt-mutexattr-getprotocol \ pt-mutexattr-getpshared \ + pt-mutexattr-getrobust \ pt-mutexattr-gettype \ pt-mutexattr-init \ pt-mutexattr-setprotocol \ pt-mutexattr-setpshared \ + pt-mutexattr-setrobust \ pt-mutexattr-settype \ pt-nthreads \ pt-pthread_self \ diff --git a/htl/Versions b/htl/Versions index 9bb13592..e3530acc 100644 --- a/htl/Versions +++ b/htl/Versions @@ -76,6 +76,9 @@ libc { thrd_current; thrd_equal; thrd_sleep; thrd_yield; pthread_cond_clockwait; + + pthread_mutexattr_getrobust; pthread_mutexattr_getrobust_np; + pthread_mutexattr_setrobust; pthread_mutexattr_setrobust_np; } GLIBC_2.41 { @@ -227,9 +230,6 @@ libpthread { cnd_broadcast; cnd_destroy; cnd_init; cnd_signal; cnd_timedwait; cnd_wait; tss_create; tss_delete; tss_get; tss_set; - pthread_mutexattr_getrobust; pthread_mutexattr_getrobust_np; - pthread_mutexattr_setrobust; pthread_mutexattr_setrobust_np; - pthread_mutex_consistent; pthread_mutex_consistent_np; pthread_mutex_clocklock; diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h index b729edfe..55e4dd38 100644 --- a/sysdeps/htl/pthreadP.h +++ b/sysdeps/htl/pthreadP.h @@ -46,6 +46,26 @@ extern int __pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr, int __pshared); libc_hidden_proto (__pthread_mutexattr_setpshared) +#ifdef __USE_XOPEN2K +/* Get the robustness flag of the mutex attribute ATTR. */ +extern int __pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, + int *__robustness); +libc_hidden_proto (__pthread_mutexattr_getrobust) +# ifdef __USE_GNU +extern int __pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, + int *__robustness); +libc_hidden_proto (__pthread_mutexattr_getrobust_np) +extern int __pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, + int __robustness); +libc_hidden_proto (__pthread_mutexattr_setrobust_np) +# endif + +/* Set the robustness flag of the mutex attribute ATTR. */ +extern int __pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, + int __robustness); +libc_hidden_proto (__pthread_mutexattr_setrobust) +#endif + #ifdef __USE_UNIX98 extern int __pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict __attr, int *__restrict __protocol); diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c index b07da8b3..45b492a1 100644 --- a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c +++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c @@ -16,19 +16,26 @@ License along with the GNU C Library; if not, see . */ -#include +#include #include #include #include #include "pt-mutex.h" #include +#include int -pthread_mutexattr_getrobust (const pthread_mutexattr_t *attrp, int *outp) +__pthread_mutexattr_getrobust (const pthread_mutexattr_t *attrp, int *outp) { *outp = ((attrp->__prioceiling & PTHREAD_MUTEX_ROBUST) ? PTHREAD_MUTEX_ROBUST : PTHREAD_MUTEX_STALLED); return 0; } +libc_hidden_def (__pthread_mutexattr_getrobust) +versioned_symbol (libc, __pthread_mutexattr_getrobust, pthread_mutexattr_getrobust, GLIBC_2_41); +versioned_symbol (libc, __pthread_mutexattr_getrobust, pthread_mutexattr_getrobust_np, GLIBC_2_41); -weak_alias (pthread_mutexattr_getrobust, pthread_mutexattr_getrobust_np) +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_41) +compat_symbol (libpthread, __pthread_mutexattr_getrobust,pthread_mutexattr_getrobust, GLIBC_2_32); +compat_symbol (libpthread, __pthread_mutexattr_getrobust,pthread_mutexattr_getrobust_np, GLIBC_2_32); +#endif diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c index 6e6d9281..b640de66 100644 --- a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c +++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c @@ -37,6 +37,6 @@ __pthread_mutexattr_setpshared (pthread_mutexattr_t *attrp, int pshared) libc_hidden_def (__pthread_mutexattr_setpshared) versioned_symbol (libc, __pthread_mutexattr_setpshared, pthread_mutexattr_setpshared, GLIBC_2_41); -#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41) -compat_symbol (libpthread, __pthread_mutexattr_setpshared,pthread_mutexattr_setpshared, GLIBC_2_12); +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_41) +compat_symbol (libpthread, __pthread_mutexattr_setpshared,pthread_mutexattr_setpshared, GLIBC_2_32); #endif diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c index cb923662..e9da5a29 100644 --- a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c +++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c @@ -16,15 +16,16 @@ License along with the GNU C Library; if not, see . */ -#include +#include #include #include #include #include "pt-mutex.h" #include +#include int -pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust) +__pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust) { if (robust != PTHREAD_MUTEX_ROBUST && robust != PTHREAD_MUTEX_STALLED) return EINVAL; @@ -32,5 +33,11 @@ pthread_mutexattr_setrobust (pthread_mutexattr_t *attrp, int robust) attrp->__prioceiling |= robust; return 0; } +libc_hidden_def (__pthread_mutexattr_setrobust) +versioned_symbol (libc, __pthread_mutexattr_setrobust, pthread_mutexattr_setrobust, GLIBC_2_41); +versioned_symbol (libc, __pthread_mutexattr_setrobust, pthread_mutexattr_setrobust_np, GLIBC_2_41); -weak_alias (pthread_mutexattr_setrobust, pthread_mutexattr_setrobust_np) +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_41) +compat_symbol (libpthread, __pthread_mutexattr_setrobust,pthread_mutexattr_setrobust, GLIBC_2_32); +compat_symbol (libpthread, __pthread_mutexattr_setrobust,pthread_mutexattr_setrobust_np, GLIBC_2_32); +#endif diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 43ee36e6..76275fc5 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2261,6 +2261,10 @@ GLIBC_2.32 __libc_single_threaded D 0x1 GLIBC_2.32 mach_print F GLIBC_2.32 mremap F GLIBC_2.32 pthread_cond_clockwait F +GLIBC_2.32 pthread_mutexattr_getrobust F +GLIBC_2.32 pthread_mutexattr_getrobust_np F +GLIBC_2.32 pthread_mutexattr_setrobust F +GLIBC_2.32 pthread_mutexattr_setrobust_np F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F GLIBC_2.32 strerrordesc_np F @@ -2531,9 +2535,13 @@ GLIBC_2.41 pthread_condattr_setclock F GLIBC_2.41 pthread_condattr_setpshared F GLIBC_2.41 pthread_mutexattr_getprotocol F GLIBC_2.41 pthread_mutexattr_getpshared F +GLIBC_2.41 pthread_mutexattr_getrobust F +GLIBC_2.41 pthread_mutexattr_getrobust_np F GLIBC_2.41 pthread_mutexattr_gettype F GLIBC_2.41 pthread_mutexattr_setprotocol F GLIBC_2.41 pthread_mutexattr_setpshared F +GLIBC_2.41 pthread_mutexattr_setrobust F +GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_sigmask F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index cf6b71a0..bc48c002 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -112,10 +112,6 @@ GLIBC_2.32 pthread_clockjoin_np F GLIBC_2.32 pthread_mutex_clocklock F GLIBC_2.32 pthread_mutex_consistent F GLIBC_2.32 pthread_mutex_consistent_np F -GLIBC_2.32 pthread_mutexattr_getrobust F -GLIBC_2.32 pthread_mutexattr_getrobust_np F -GLIBC_2.32 pthread_mutexattr_setrobust F -GLIBC_2.32 pthread_mutexattr_setrobust_np F GLIBC_2.32 pthread_rwlock_clockrdlock F GLIBC_2.32 pthread_rwlock_clockwrlock F GLIBC_2.32 pthread_timedjoin_np F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index aba86092..91ba8779 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -1554,10 +1554,14 @@ GLIBC_2.38 pthread_mutex_unlock F GLIBC_2.38 pthread_mutexattr_destroy F GLIBC_2.38 pthread_mutexattr_getprotocol F GLIBC_2.38 pthread_mutexattr_getpshared F +GLIBC_2.38 pthread_mutexattr_getrobust F +GLIBC_2.38 pthread_mutexattr_getrobust_np F GLIBC_2.38 pthread_mutexattr_gettype F GLIBC_2.38 pthread_mutexattr_init F GLIBC_2.38 pthread_mutexattr_setprotocol F GLIBC_2.38 pthread_mutexattr_setpshared F +GLIBC_2.38 pthread_mutexattr_setrobust F +GLIBC_2.38 pthread_mutexattr_setrobust_np F GLIBC_2.38 pthread_mutexattr_settype F GLIBC_2.38 pthread_self F GLIBC_2.38 pthread_setcancelstate F @@ -2220,9 +2224,13 @@ GLIBC_2.41 pthread_condattr_setclock F GLIBC_2.41 pthread_condattr_setpshared F GLIBC_2.41 pthread_mutexattr_getprotocol F GLIBC_2.41 pthread_mutexattr_getpshared F +GLIBC_2.41 pthread_mutexattr_getrobust F +GLIBC_2.41 pthread_mutexattr_getrobust_np F GLIBC_2.41 pthread_mutexattr_gettype F GLIBC_2.41 pthread_mutexattr_setprotocol F GLIBC_2.41 pthread_mutexattr_setpshared F +GLIBC_2.41 pthread_mutexattr_setrobust F +GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_sigmask F HURD_CTHREADS_0.3 __cthread_getspecific F HURD_CTHREADS_0.3 __cthread_keycreate F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index 866890ca..b382b484 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -74,11 +74,7 @@ GLIBC_2.38 pthread_mutex_transfer_np F GLIBC_2.38 pthread_mutex_trylock F GLIBC_2.38 pthread_mutex_unlock F GLIBC_2.38 pthread_mutexattr_getprioceiling F -GLIBC_2.38 pthread_mutexattr_getrobust F -GLIBC_2.38 pthread_mutexattr_getrobust_np F GLIBC_2.38 pthread_mutexattr_setprioceiling F -GLIBC_2.38 pthread_mutexattr_setrobust F -GLIBC_2.38 pthread_mutexattr_setrobust_np F GLIBC_2.38 pthread_once F GLIBC_2.38 pthread_rwlock_clockrdlock F GLIBC_2.38 pthread_rwlock_clockwrlock F