From patchwork Sun Feb 16 23:03:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 106649 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 627D03858C54 for ; Sun, 16 Feb 2025 23:05:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 627D03858C54 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138]) by sourceware.org (Postfix) with ESMTPS id 464DB3858D1E for ; Sun, 16 Feb 2025 23:03:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 464DB3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bounce.ens-lyon.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 464DB3858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=140.77.166.138 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739747006; cv=none; b=rJ/IIvrg2aEbuNkkarLIm/rL3I6PkkQu7kX2Olf1mvcbCztEw0mQbu2S9ExtBo+Ji/vEiP529cUpNsFFZ0+TL1MzwOyDzu00sFg+76QjYNSbsgnFnnj+5kwnuk4upCgAtTeJ7QCdaNNL/BKxTZg6KLcEbJAxpwkTSjRSLGc9iNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739747006; c=relaxed/simple; bh=zQuOrfD4z/6ZOZNqeayYz9rEZRexAAoEtpXQjS4xE5I=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=FPjcGupCZzu93xb897EJ0Ku6g6Lf6ogZsQsOHP360PfGw5ZlE4v2bMn0zOfWmDWoRc5V8EtIjVE8816cB7gfabU2+lLBa2a1ozBUMlkmWNse1pWl7+Q4ZKWhqcTMM2yC1ikpws2VGdiQ7bCC9fcDU9GCKp0q1LkDm413Byf8pnc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 464DB3858D1E Received: from localhost (localhost [127.0.0.1]) by sonata.ens-lyon.org (Postfix) with ESMTP id DF59EA1ACE; Mon, 17 Feb 2025 00:03:13 +0100 (CET) Received: from sonata.ens-lyon.org ([127.0.0.1]) by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09vYJoFubQq4; Mon, 17 Feb 2025 00:03:13 +0100 (CET) Received: from begin (aamiens-653-1-40-48.w83-192.abo.wanadoo.fr [83.192.199.48]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by sonata.ens-lyon.org (Postfix) with ESMTPSA id 60182A1C3A; Mon, 17 Feb 2025 00:03:13 +0100 (CET) Received: from samy by begin with local (Exim 4.98) (envelope-from ) id 1tjnfM-0000000D0ZG-3M86; Mon, 17 Feb 2025 00:03:12 +0100 From: Samuel Thibault To: libc-alpha@sourceware.org Cc: gfleury , commit-hurd@gnu.org Subject: [hurd, commited 05/10] htl: move pthread_rwlock_tryrdlock, pthread_rwlock_trywrlock into libc. Date: Mon, 17 Feb 2025 00:03:05 +0100 Message-ID: <20250216230311.3097176-6-samuel.thibault@ens-lyon.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216230311.3097176-1-samuel.thibault@ens-lyon.org> References: <20250216230311.3097176-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, 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 From: gfleury Signed-off-by: gfleury Message-ID: <20250216145434.7089-6-gfleury@disroot.org> --- htl/Makefile | 4 ++-- htl/Versions | 5 ++++- sysdeps/htl/libc-lockP.h | 6 ++---- sysdeps/htl/pt-rwlock-tryrdlock.c | 10 ++++++++-- sysdeps/htl/pt-rwlock-trywrlock.c | 10 ++++++++-- sysdeps/mach/hurd/i386/libc.abilist | 4 ++++ sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- sysdeps/mach/hurd/x86_64/libc.abilist | 4 ++++ sysdeps/mach/hurd/x86_64/libpthread.abilist | 2 -- 9 files changed, 32 insertions(+), 15 deletions(-) diff --git a/htl/Makefile b/htl/Makefile index 651af8d82a..0c85ab462c 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -48,8 +48,6 @@ libpthread-routines := \ pt-rwlock-init \ pt-rwlock-destroy \ pt-rwlock-rdlock \ - pt-rwlock-tryrdlock \ - pt-rwlock-trywrlock \ pt-rwlock-wrlock \ pt-rwlock-timedrdlock \ pt-rwlock-timedwrlock \ @@ -197,6 +195,8 @@ routines := \ pt-nthreads \ pt-pthread_self \ pt-rwlock-attr \ + pt-rwlock-tryrdlock \ + pt-rwlock-trywrlock \ pt-rwlockattr-destroy \ pt-rwlockattr-getpshared \ pt-rwlockattr-init \ diff --git a/htl/Versions b/htl/Versions index 1d666bcb3c..ca59cd5c99 100644 --- a/htl/Versions +++ b/htl/Versions @@ -63,6 +63,8 @@ libc { pthread_mutexattr_setprotocol; pthread_mutexattr_setpshared; pthread_mutexattr_settype; + pthread_rwlock_tryrdlock; + pthread_rwlock_trywrlock; pthread_rwlockattr_destroy; pthread_rwlockattr_getpshared; pthread_rwlockattr_init; @@ -146,6 +148,8 @@ libc { pthread_mutex_getprioceiling; pthread_mutex_setprioceiling; pthread_mutex_trylock; + pthread_rwlock_tryrdlock; + pthread_rwlock_trywrlock; pthread_rwlockattr_destroy; pthread_rwlockattr_getpshared; pthread_rwlockattr_init; @@ -247,7 +251,6 @@ libpthread { pthread_rwlock_destroy; pthread_rwlock_init; pthread_rwlock_rdlock; pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock; - pthread_rwlock_tryrdlock; pthread_rwlock_trywrlock; pthread_rwlock_unlock; pthread_rwlock_wrlock; pthread_setconcurrency; diff --git a/sysdeps/htl/libc-lockP.h b/sysdeps/htl/libc-lockP.h index 6804c0d636..5fad451dfc 100644 --- a/sysdeps/htl/libc-lockP.h +++ b/sysdeps/htl/libc-lockP.h @@ -98,10 +98,12 @@ extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock); extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock); extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock); +libc_hidden_proto (__pthread_rwlock_tryrdlock) extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock); extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock); +libc_hidden_proto (__pthread_rwlock_trywrlock) extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); @@ -121,9 +123,7 @@ libc_hidden_proto (__pthread_setcancelstate) weak_extern (__pthread_rwlock_init) weak_extern (__pthread_rwlock_destroy) weak_extern (__pthread_rwlock_rdlock) -weak_extern (__pthread_rwlock_tryrdlock) weak_extern (__pthread_rwlock_wrlock) -weak_extern (__pthread_rwlock_trywrlock) weak_extern (__pthread_rwlock_unlock) weak_extern (__pthread_key_create) weak_extern (__pthread_setspecific) @@ -134,9 +134,7 @@ weak_extern (__pthread_atfork) # else # pragma weak __pthread_rwlock_destroy # pragma weak __pthread_rwlock_rdlock -# pragma weak __pthread_rwlock_tryrdlock # pragma weak __pthread_rwlock_wrlock -# pragma weak __pthread_rwlock_trywrlock # pragma weak __pthread_rwlock_unlock # pragma weak __pthread_key_create # pragma weak __pthread_setspecific diff --git a/sysdeps/htl/pt-rwlock-tryrdlock.c b/sysdeps/htl/pt-rwlock-tryrdlock.c index c34ffccbc4..74aa636f93 100644 --- a/sysdeps/htl/pt-rwlock-tryrdlock.c +++ b/sysdeps/htl/pt-rwlock-tryrdlock.c @@ -18,12 +18,12 @@ #include #include - #include +#include /* Try to acquire RWLOCK. */ int -pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock) +__pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock) { __pthread_spin_wait (&rwlock->__lock); if (__pthread_spin_trylock (&rwlock->__held) == 0) @@ -53,3 +53,9 @@ pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock) return EBUSY; } +libc_hidden_def (__pthread_rwlock_tryrdlock) +versioned_symbol (libc, __pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock, GLIBC_2_42); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42) +compat_symbol (libpthread, __pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock, GLIBC_2_12); +#endif diff --git a/sysdeps/htl/pt-rwlock-trywrlock.c b/sysdeps/htl/pt-rwlock-trywrlock.c index 926637a3ff..8de0e59132 100644 --- a/sysdeps/htl/pt-rwlock-trywrlock.c +++ b/sysdeps/htl/pt-rwlock-trywrlock.c @@ -18,12 +18,12 @@ #include #include - #include +#include /* Try to acquire RWLOCK for writing. */ int -pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock) +__pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock) { __pthread_spin_wait (&rwlock->__lock); if (__pthread_spin_trylock (&rwlock->__held) == 0) @@ -43,3 +43,9 @@ pthread_rwlock_trywrlock (struct __pthread_rwlock *rwlock) return EBUSY; } +libc_hidden_def (__pthread_rwlock_trywrlock) +versioned_symbol (libc, __pthread_rwlock_trywrlock, pthread_rwlock_trywrlock, GLIBC_2_42); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_42) +compat_symbol (libpthread, __pthread_rwlock_trywrlock, pthread_rwlock_trywrlock, GLIBC_2_12); +#endif diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 55ad6b423f..3d786282fa 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -88,6 +88,8 @@ GLIBC_2.12 pthread_mutexattr_setprioceiling F GLIBC_2.12 pthread_mutexattr_setprotocol F GLIBC_2.12 pthread_mutexattr_setpshared F GLIBC_2.12 pthread_mutexattr_settype F +GLIBC_2.12 pthread_rwlock_tryrdlock F +GLIBC_2.12 pthread_rwlock_trywrlock F GLIBC_2.12 pthread_rwlockattr_destroy F GLIBC_2.12 pthread_rwlockattr_getpshared F GLIBC_2.12 pthread_rwlockattr_init F @@ -2584,6 +2586,8 @@ GLIBC_2.42 pthread_mutex_consistent_np F GLIBC_2.42 pthread_mutex_getprioceiling F GLIBC_2.42 pthread_mutex_setprioceiling F GLIBC_2.42 pthread_mutex_trylock F +GLIBC_2.42 pthread_rwlock_tryrdlock F +GLIBC_2.42 pthread_rwlock_trywrlock F GLIBC_2.42 pthread_rwlockattr_destroy F GLIBC_2.42 pthread_rwlockattr_getpshared F GLIBC_2.42 pthread_rwlockattr_init F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index df7c46455a..70db951b10 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -41,8 +41,6 @@ GLIBC_2.12 pthread_rwlock_init F GLIBC_2.12 pthread_rwlock_rdlock F GLIBC_2.12 pthread_rwlock_timedrdlock F GLIBC_2.12 pthread_rwlock_timedwrlock F -GLIBC_2.12 pthread_rwlock_tryrdlock F -GLIBC_2.12 pthread_rwlock_trywrlock F GLIBC_2.12 pthread_rwlock_unlock F GLIBC_2.12 pthread_rwlock_wrlock F GLIBC_2.12 pthread_setconcurrency F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 3075e10305..305cdb8cef 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -1579,6 +1579,8 @@ 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_rwlock_tryrdlock F +GLIBC_2.38 pthread_rwlock_trywrlock F GLIBC_2.38 pthread_rwlockattr_destroy F GLIBC_2.38 pthread_rwlockattr_getpshared F GLIBC_2.38 pthread_rwlockattr_init F @@ -2267,6 +2269,8 @@ GLIBC_2.42 pthread_mutex_consistent_np F GLIBC_2.42 pthread_mutex_getprioceiling F GLIBC_2.42 pthread_mutex_setprioceiling F GLIBC_2.42 pthread_mutex_trylock F +GLIBC_2.42 pthread_rwlock_tryrdlock F +GLIBC_2.42 pthread_rwlock_trywrlock F GLIBC_2.42 pthread_rwlockattr_destroy F GLIBC_2.42 pthread_rwlockattr_getpshared F GLIBC_2.42 pthread_rwlockattr_init F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index 89fe63f256..b712a1b3bf 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -63,8 +63,6 @@ GLIBC_2.38 pthread_rwlock_init F GLIBC_2.38 pthread_rwlock_rdlock F GLIBC_2.38 pthread_rwlock_timedrdlock F GLIBC_2.38 pthread_rwlock_timedwrlock F -GLIBC_2.38 pthread_rwlock_tryrdlock F -GLIBC_2.38 pthread_rwlock_trywrlock F GLIBC_2.38 pthread_rwlock_unlock F GLIBC_2.38 pthread_rwlock_wrlock F GLIBC_2.38 pthread_setconcurrency F