From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hera.aquilenet.fr (hera.aquilenet.fr [IPv6:2a0c:e300::1]) by sourceware.org (Postfix) with ESMTPS id 67C2D3858C54 for ; Tue, 4 Apr 2023 23:35:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 67C2D3858C54 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=aquilenet.fr Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=aquilenet.fr Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id A5D04125D; Wed, 5 Apr 2023 01:35:19 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nLh0LW0zSp6k; Wed, 5 Apr 2023 01:35:18 +0200 (CEST) Received: from begin.home (unknown [IPv6:2a01:cb19:4a:a400:de41:a9ff:fe47:ec49]) by hera.aquilenet.fr (Postfix) with ESMTPSA id A3F59373; Wed, 5 Apr 2023 01:35:18 +0200 (CEST) Received: from samy by begin.home with local (Exim 4.96) (envelope-from ) id 1pjqBK-004Jpy-0v; Wed, 05 Apr 2023 01:35:18 +0200 Date: Wed, 5 Apr 2023 01:35:18 +0200 From: Samuel Thibault To: Guy-Fleury Iteriteka Cc: libc-alpha@sourceware.org Subject: Re: [PATCH 3/3] htl: move pthread_self info libc. Message-ID: <20230404233518.xtl7zqq44ae2fwgz@begin> References: <20230318095826.1125734-1-gfleury@disroot.org> <20230318095826.1125734-4-gfleury@disroot.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230318095826.1125734-4-gfleury@disroot.org> Organization: I am not organized User-Agent: NeoMutt/20170609 (1.8.3) X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,KAM_SHORT,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 List-Id: Applied, but see the modification I made: since pthread_self was already there in libc's forward.c under version 2.21, there is really no reason to introduce a 2.38 version, and instead just plug compatibility under version 2.21. But that's only for forward.c functions. For others you'll indeed need to introduce a 2.38 version when adding the symbol to libc. Thanks! Guy-Fleury Iteriteka via Libc-alpha, le sam. 18 mars 2023 11:58:26 +0200, a ecrit: > Signed-off-by: Guy-Fleury Iteriteka > --- > htl/Makefile | 3 +-- > htl/Versions | 13 ++++++++++--- > htl/forward.c | 4 ---- > htl/pt-initialize.c | 1 - > htl/pt-self.c | 13 +++++++++++-- > sysdeps/htl/pthread-functions.h | 2 -- > sysdeps/htl/pthreadP.h | 2 ++ > sysdeps/mach/hurd/i386/libc.abilist | 3 +++ > sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- > 9 files changed, 27 insertions(+), 16 deletions(-) > > diff --git a/htl/Makefile b/htl/Makefile > index 622e85ce..0587fd16 100644 > --- a/htl/Makefile > +++ b/htl/Makefile > @@ -52,7 +52,6 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \ > pt-exit \ > pt-initialize \ > pt-join \ > - pt-self \ > pt-sigmask \ > pt-spin-inlines \ > pt-cleanup \ > @@ -164,7 +163,7 @@ headers := \ > > distribute := > > -routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads pt-pthread_self > +routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads pt-pthread_self pt-self > shared-only-routines = forward > > extra-libs := libpthread > diff --git a/htl/Versions b/htl/Versions > index 9ec84811..4ce8b728 100644 > --- a/htl/Versions > +++ b/htl/Versions > @@ -1,4 +1,10 @@ > libc { > + > + GLIBC_2.12 { > + pthread_self; > + __pthread_self; > + } > + > GLIBC_2.21 { > pthread_attr_destroy; pthread_attr_getdetachstate; > pthread_attr_getinheritsched; pthread_attr_getschedparam; > @@ -26,6 +32,10 @@ libc { > thrd_current; thrd_equal; thrd_sleep; thrd_yield; > } > > + GLIBC_2.38 { > + pthread_self; > + } > + > GLIBC_PRIVATE { > __libc_alloca_cutoff; > __libc_pthread_init; > @@ -119,9 +129,6 @@ libpthread { > pthread_rwlockattr_destroy; pthread_rwlockattr_getpshared; > pthread_rwlockattr_init; pthread_rwlockattr_setpshared; > > - pthread_self; > - __pthread_self; > - > pthread_setcancelstate; pthread_setcanceltype; > pthread_setconcurrency; pthread_setschedparam; > pthread_setschedprio; pthread_setspecific; > diff --git a/htl/forward.c b/htl/forward.c > index 8cff4a83..1bee2b02 100644 > --- a/htl/forward.c > +++ b/htl/forward.c > @@ -130,10 +130,6 @@ FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0) > > FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0) > > - > -FORWARD2 (pthread_self, pthread_t, (void), (), return 0) > - > - > FORWARD (__pthread_setcancelstate, (int state, int *oldstate), > (state, oldstate), 0) > strong_alias (__pthread_setcancelstate, pthread_setcancelstate); > diff --git a/htl/pt-initialize.c b/htl/pt-initialize.c > index 6ab34340..aa8561f7 100644 > --- a/htl/pt-initialize.c > +++ b/htl/pt-initialize.c > @@ -56,7 +56,6 @@ static const struct pthread_functions pthread_functions = { > .ptr_pthread_mutex_lock = __pthread_mutex_lock, > .ptr_pthread_mutex_trylock = __pthread_mutex_trylock, > .ptr_pthread_mutex_unlock = __pthread_mutex_unlock, > - .ptr_pthread_self = __pthread_self, > .ptr___pthread_setcancelstate = __pthread_setcancelstate, > .ptr_pthread_setcanceltype = __pthread_setcanceltype, > .ptr___pthread_get_cleanup_stack = __pthread_get_cleanup_stack, > diff --git a/htl/pt-self.c b/htl/pt-self.c > index 26d2b7c5..cffc659b 100644 > --- a/htl/pt-self.c > +++ b/htl/pt-self.c > @@ -17,7 +17,7 @@ > . */ > > #include > - > +#include > #include > > /* Return the thread ID of the calling thread. */ > @@ -36,4 +36,13 @@ __pthread_self (void) > return self->thread; > } > > -weak_alias (__pthread_self, pthread_self); > +libc_hidden_def (__pthread_self) > +versioned_symbol (libc, __pthread_self, pthread_self, GLIBC_2_38); > + > +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_38) > +compat_symbol (libc, __pthread_self, pthread_self, GLIBC_2_12); > +#endif > + > +#if OTHER_SHLIB_COMPAT (libc, GLIBC_2_21, GLIBC_2_38) > +compat_symbol (libc, __pthread_self, pthread_self, GLIBC_2_21); > +#endif > diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h > index 815f5622..96728b83 100644 > --- a/sysdeps/htl/pthread-functions.h > +++ b/sysdeps/htl/pthread-functions.h > @@ -56,7 +56,6 @@ int _pthread_mutex_init (pthread_mutex_t *, > int __pthread_mutex_lock (pthread_mutex_t *); > int __pthread_mutex_trylock (pthread_mutex_t *); > int __pthread_mutex_unlock (pthread_mutex_t *); > -pthread_t __pthread_self (void); > int __pthread_setcancelstate (int, int *); > int __pthread_setcanceltype (int, int *); > struct __pthread_cancelation_handler **__pthread_get_cleanup_stack (void); > @@ -112,7 +111,6 @@ struct pthread_functions > int (*ptr_pthread_mutex_lock) (pthread_mutex_t *); > int (*ptr_pthread_mutex_trylock) (pthread_mutex_t *); > int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *); > - pthread_t (*ptr_pthread_self) (void); > int (*ptr___pthread_setcancelstate) (int, int *); > int (*ptr_pthread_setcanceltype) (int, int *); > struct __pthread_cancelation_handler **(*ptr___pthread_get_cleanup_stack) (void); > diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h > index 188ceca0..3f052f0e 100644 > --- a/sysdeps/htl/pthreadP.h > +++ b/sysdeps/htl/pthreadP.h > @@ -92,6 +92,8 @@ int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > int __pthread_attr_getstack (const pthread_attr_t *, void **, size_t *); > void __pthread_testcancel (void); > > +libc_hidden_proto (__pthread_self) > + > #if IS_IN (libpthread) > hidden_proto (__pthread_create) > hidden_proto (__pthread_detach) > diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist > index ed0c4789..a0ef17d6 100644 > --- a/sysdeps/mach/hurd/i386/libc.abilist > +++ b/sysdeps/mach/hurd/i386/libc.abilist > @@ -28,6 +28,8 @@ GLIBC_2.11 mkostemps F > GLIBC_2.11 mkostemps64 F > GLIBC_2.11 mkstemps F > GLIBC_2.11 mkstemps64 F > +GLIBC_2.12 __pthread_self F > +GLIBC_2.12 pthread_self F > GLIBC_2.13 __fentry__ F > GLIBC_2.14 syncfs F > GLIBC_2.15 __fdelt_chk F > @@ -2326,6 +2328,7 @@ GLIBC_2.38 __isoc23_wcstoull F > GLIBC_2.38 __isoc23_wcstoull_l F > GLIBC_2.38 __isoc23_wcstoumax F > GLIBC_2.38 __isoc23_wscanf F > +GLIBC_2.38 pthread_self F > GLIBC_2.4 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist > index b9c9b75c..2ef0f670 100644 > --- a/sysdeps/mach/hurd/i386/libpthread.abilist > +++ b/sysdeps/mach/hurd/i386/libpthread.abilist > @@ -4,7 +4,6 @@ GLIBC_2.12 __pthread_get_cleanup_stack F > GLIBC_2.12 __pthread_key_create F > GLIBC_2.12 __pthread_kill F > GLIBC_2.12 __pthread_mutex_transfer_np F > -GLIBC_2.12 __pthread_self F > GLIBC_2.12 __pthread_spin_destroy F > GLIBC_2.12 __pthread_spin_init F > GLIBC_2.12 __pthread_spin_lock F > @@ -109,7 +108,6 @@ GLIBC_2.12 pthread_rwlockattr_destroy F > GLIBC_2.12 pthread_rwlockattr_getpshared F > GLIBC_2.12 pthread_rwlockattr_init F > GLIBC_2.12 pthread_rwlockattr_setpshared F > -GLIBC_2.12 pthread_self F > GLIBC_2.12 pthread_setcancelstate F > GLIBC_2.12 pthread_setcanceltype F > GLIBC_2.12 pthread_setconcurrency F > -- > 2.30.2 > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.