From patchwork Sun Aug 17 23:26:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 118499 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 676BE3857C67 for ; Sun, 17 Aug 2025 23:27:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 676BE3857C67 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 25AC13858C36 for ; Sun, 17 Aug 2025 23:26:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 25AC13858C36 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 25AC13858C36 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=1755473188; cv=none; b=H9q9BFBXiBF+JhXsvSNQ/J7pBIjtdQSuByJnEN4cDaT6bYe0hwFiWHjHgRN6NSSsH4NJkdANyAUVTGQ5HsW7g2zEK92oLu+PmXe7oysM6uHl9SNa/XwF6tSp60AcjqrvzjW25K8sqOBYPGcWc8V5fuFuOgOJFFavTnU69BHqHd4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1755473188; c=relaxed/simple; bh=17+OL4/8uP/BRMStwIkr/7ybR8p2x0eFgrqoepiA1gE=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=G1w71l6evT27p8NAMgwhsBrhxsIleEJKDcUEvbVOkuuDPGtuwybmoxmMsrYzWHXfsWEA33aYdyOU4Xs49YSbYDlvUhkS5YazyOsqeoR/oa7Ui2nsSbuxCsWV8GIBkQtvETAanPITf9F8dPsm6w6SJOZZXVCkfpj9H13EUjKGMVo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 25AC13858C36 Received: from localhost (localhost [127.0.0.1]) by sonata.ens-lyon.org (Postfix) with ESMTP id 085EBA054D; Mon, 18 Aug 2025 01:26:27 +0200 (CEST) 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 szujJ3ILYy7o; Mon, 18 Aug 2025 01:26:26 +0200 (CEST) Received: from begin (97.22.205.77.rev.sfr.net [77.205.22.97]) (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 A6078A1BDE; Mon, 18 Aug 2025 01:26:26 +0200 (CEST) Received: from samy by begin with local (Exim 4.98.2) (envelope-from ) id 1unmld-00000002wCE-35Oi; Mon, 18 Aug 2025 01:26:25 +0200 From: Samuel Thibault To: libc-alpha@sourceware.org Cc: gfleury , commit-hurd@gnu.org Subject: [hurd,commited 4/7] htl: move sem_open, sem_close into libc. Date: Mon, 18 Aug 2025 01:26:21 +0200 Message-ID: <20250817232624.700329-5-samuel.thibault@ens-lyon.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250817232624.700329-1-samuel.thibault@ens-lyon.org> References: <20250817232624.700329-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, 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 Message-ID: <20250817104023.91919-5-gfleury@disroot.org> --- htl/Makefile | 6 +++--- htl/Versions | 6 +++++- 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 -- sysdeps/pthread/sem_close.c | 10 +++++++--- sysdeps/pthread/sem_open.c | 18 ++++++++---------- sysdeps/pthread/sem_routines.c | 1 + 9 files changed, 32 insertions(+), 21 deletions(-) diff --git a/htl/Makefile b/htl/Makefile index 33dfdc53ac..57327b3df4 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 764faa016d..5b83e1ce79 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 02bc296fae..9764b6053b 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 8d04328062..c7e8bc5a32 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 3fc43370b2..e64bf542ef 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 a612aa9a11..ee0fac300c 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 e989ed8f60..6e80bb0a06 100644 --- a/sysdeps/pthread/sem_close.c +++ b/sysdeps/pthread/sem_close.c @@ -18,6 +18,7 @@ #include #include "semaphoreP.h" #include +#include 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 e5eacb5fed..992786e01b 100644 --- a/sysdeps/pthread/sem_open.c +++ b/sysdeps/pthread/sem_open.c @@ -25,13 +25,8 @@ #include #include #include - - -#if !PTHREAD_IN_LIBC -/* The private names are not exported from libc. */ -# define __link link -# define __unlink unlink -#endif +#include +#include #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 62089359ea..fb6a555bf6 100644 --- a/sysdeps/pthread/sem_routines.c +++ b/sysdeps/pthread/sem_routines.c @@ -20,6 +20,7 @@ #include #include #include +#include /* Keeping track of currently used mappings. */ struct inuse_sem