* [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self @ 2023-01-03 10:45 Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 1/3] htl: move __pthtread_total into libc Guy-Fleury Iteriteka ` (5 more replies) 0 siblings, 6 replies; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-01-03 10:45 UTC (permalink / raw) To: libc-alpha; +Cc: bug-hurd With this patch i boot up a hurd system with flavio scripts. Guy-Fleury Iteriteka (3): htl: move __pthtread_total into libc htl: move __pthread_self into libc. htl: move pthread_self into libc htl/Makefile | 3 +-- htl/Versions | 15 ++++++++++++--- htl/forward.c | 4 ---- htl/pt-create.c | 6 ------ htl/pt-initialize.c | 1 - htl/pt-internal.h | 2 ++ htl/pt-nthreads.c | 23 +++++++++++++++++++++++ htl/pt-self.c | 8 ++++++-- sysdeps/htl/pthread-functions.h | 2 -- sysdeps/mach/hurd/htl/pt-pthread_self.c | 22 ++++++++++++++++++++++ sysdeps/mach/hurd/htl/pt-sysdep.c | 2 -- sysdeps/mach/hurd/htl/pt-sysdep.h | 3 +++ sysdeps/mach/hurd/i386/libc.abilist | 2 ++ sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- 14 files changed, 71 insertions(+), 24 deletions(-) create mode 100644 htl/pt-nthreads.c create mode 100644 sysdeps/mach/hurd/htl/pt-pthread_self.c -- 2.38.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] htl: move __pthtread_total into libc 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka @ 2023-01-03 10:45 ` Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 2/3] htl: move ___pthread_self " Guy-Fleury Iteriteka ` (4 subsequent siblings) 5 siblings, 0 replies; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-01-03 10:45 UTC (permalink / raw) To: libc-alpha; +Cc: bug-hurd htl/pt-nthreads.c: new file. htl/Makefile: Add it to routine. htl/Versions: version it as private libc symbol. htl/pt-create.c: remove his definition here. htl/pt-internal.h: add propertie to it declaration. --- htl/Makefile | 2 +- htl/Versions | 1 + htl/pt-create.c | 6 ------ htl/pt-internal.h | 1 + htl/pt-nthreads.c | 23 +++++++++++++++++++++++ 5 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 htl/pt-nthreads.c diff --git a/htl/Makefile b/htl/Makefile index 0b403e2f..61944148 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -164,7 +164,7 @@ headers := \ distribute := -routines := forward libc_pthread_init alloca_cutoff htlfreeres +routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads shared-only-routines = forward extra-libs := libpthread diff --git a/htl/Versions b/htl/Versions index 4e0ebac2..113110f4 100644 --- a/htl/Versions +++ b/htl/Versions @@ -30,6 +30,7 @@ libc { __libc_alloca_cutoff; __libc_pthread_init; __pthread_cleanup_stack; + __pthread_total; } } diff --git a/htl/pt-create.c b/htl/pt-create.c index 5d37edbb..34a63b6a 100644 --- a/htl/pt-create.c +++ b/htl/pt-create.c @@ -36,12 +36,6 @@ # include <locale.h> #endif -/* The total number of pthreads currently active. This is defined - here since it would be really stupid to have a threads-using - program that doesn't call `pthread_create'. */ -unsigned int __pthread_total; -\f - /* The entry-point for new threads. */ static void entry_point (struct __pthread *self, void *(*start_routine) (void *), void *arg) diff --git a/htl/pt-internal.h b/htl/pt-internal.h index f01cb7ce..b787acf8 100644 --- a/htl/pt-internal.h +++ b/htl/pt-internal.h @@ -165,6 +165,7 @@ __pthread_dequeue (struct __pthread *thread) /* The total number of threads currently active. */ extern unsigned int __pthread_total; +libc_hidden_proto (__pthread_total) /* Concurrency hint. */ extern int __pthread_concurrency; diff --git a/htl/pt-nthreads.c b/htl/pt-nthreads.c new file mode 100644 index 00000000..9a6140ee --- /dev/null +++ b/htl/pt-nthreads.c @@ -0,0 +1,23 @@ +/* Thread counter variable. + Copyright (C) 2021-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <pt-internal.h> + +/* Number of threads running. */ +unsigned int __pthread_total; +libc_hidden_data_def (__pthread_total) -- 2.38.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/3] htl: move ___pthread_self into libc. 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 1/3] htl: move __pthtread_total into libc Guy-Fleury Iteriteka @ 2023-01-03 10:45 ` Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 3/3] htl: move pthread_self " Guy-Fleury Iteriteka ` (3 subsequent siblings) 5 siblings, 0 replies; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-01-03 10:45 UTC (permalink / raw) To: libc-alpha; +Cc: bug-hurd sysdeps/mach/hurd/htl/pt-pthread_self.c: New file. htl/Makefile: .. Add it to libc routine. sysdeps/mach/hurd/htl/pt-sysdep.c(__pthread_self): Remove it. sysdeps/mach/hurd/htl/pt-sysdep.h(__pthread_self): Add hidden propertie. htl/Versions(__pthread_self) Version it as private symbol. --- htl/Makefile | 2 +- htl/Versions | 1 + sysdeps/mach/hurd/htl/pt-pthread_self.c | 22 ++++++++++++++++++++++ sysdeps/mach/hurd/htl/pt-sysdep.c | 2 -- sysdeps/mach/hurd/htl/pt-sysdep.h | 3 +++ 5 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 sysdeps/mach/hurd/htl/pt-pthread_self.c diff --git a/htl/Makefile b/htl/Makefile index 61944148..b569cfcd 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -164,7 +164,7 @@ headers := \ distribute := -routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads +routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads pt-pthread_self shared-only-routines = forward extra-libs := libpthread diff --git a/htl/Versions b/htl/Versions index 113110f4..9ec84811 100644 --- a/htl/Versions +++ b/htl/Versions @@ -31,6 +31,7 @@ libc { __libc_pthread_init; __pthread_cleanup_stack; __pthread_total; + ___pthread_self; } } diff --git a/sysdeps/mach/hurd/htl/pt-pthread_self.c b/sysdeps/mach/hurd/htl/pt-pthread_self.c new file mode 100644 index 00000000..6398af65 --- /dev/null +++ b/sysdeps/mach/hurd/htl/pt-pthread_self.c @@ -0,0 +1,22 @@ +/* Thread counter variable. + Copyright (C) 2021-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <pt-sysdep.h> + +__thread struct __pthread *___pthread_self; +libc_hidden_tls_def (___pthread_self) diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c index 2d828545..4cd6ba3a 100644 --- a/sysdeps/mach/hurd/htl/pt-sysdep.c +++ b/sysdeps/mach/hurd/htl/pt-sysdep.c @@ -26,8 +26,6 @@ #include <pt-internal.h> #include <pthreadP.h> -__thread struct __pthread *___pthread_self; - static void reset_pthread_total (void) { diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.h b/sysdeps/mach/hurd/htl/pt-sysdep.h index 854c365c..94d77678 100644 --- a/sysdeps/mach/hurd/htl/pt-sysdep.h +++ b/sysdeps/mach/hurd/htl/pt-sysdep.h @@ -19,6 +19,7 @@ #ifndef _PT_SYSDEP_H #define _PT_SYSDEP_H 1 +#include <stddef.h> #include <mach.h> /* XXX */ @@ -32,6 +33,8 @@ mach_msg_header_t wakeupmsg; extern __thread struct __pthread *___pthread_self; +libc_hidden_tls_proto (___pthread_self) + #ifdef DEBUG #define _pthread_self() \ ({ \ -- 2.38.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] htl: move pthread_self into libc 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 1/3] htl: move __pthtread_total into libc Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 2/3] htl: move ___pthread_self " Guy-Fleury Iteriteka @ 2023-01-03 10:45 ` Guy-Fleury Iteriteka 2023-01-03 21:50 ` Samuel Thibault 2023-01-03 17:22 ` [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Zack Weinberg ` (2 subsequent siblings) 5 siblings, 1 reply; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-01-03 10:45 UTC (permalink / raw) To: libc-alpha; +Cc: bug-hurd --- htl/Makefile | 3 +-- htl/Versions | 13 ++++++++++--- htl/forward.c | 4 ---- htl/pt-initialize.c | 1 - htl/pt-internal.h | 1 + htl/pt-self.c | 8 ++++++-- sysdeps/htl/pthread-functions.h | 2 -- sysdeps/mach/hurd/i386/libc.abilist | 2 ++ sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- 9 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htl/Makefile b/htl/Makefile index b569cfcd..c75855ad 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..e1cb362c 100644 --- a/htl/Versions +++ b/htl/Versions @@ -1,4 +1,9 @@ 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 +31,11 @@ libc { thrd_current; thrd_equal; thrd_sleep; thrd_yield; } + GLIBC_2.37 { + pthread_self; + __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 00527348..57b0b66c 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 02e6ad6b..fcad3b13 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-internal.h b/htl/pt-internal.h index b787acf8..ade71b24 100644 --- a/htl/pt-internal.h +++ b/htl/pt-internal.h @@ -192,6 +192,7 @@ extern int __pthread_max_threads; extern struct __pthread *_pthread_self (void); #endif +libc_hidden_proto (__pthread_self) /* Stores the stack of cleanup handlers for the thread. */ extern __thread struct __pthread_cancelation_handler *__pthread_cleanup_stack; \f diff --git a/htl/pt-self.c b/htl/pt-self.c index e05ec69b..dc37d5dc 100644 --- a/htl/pt-self.c +++ b/htl/pt-self.c @@ -17,7 +17,7 @@ <https://www.gnu.org/licenses/>. */ #include <pthread.h> - +#include <shlib-compat.h> #include <pt-internal.h> /* Return the thread ID of the calling thread. */ @@ -36,4 +36,8 @@ __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_37); +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_37) +compat_symbol (libc, __pthread_self, pthread_self, GLIBC_2_12); +#endif \ No newline at end of file diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h index ccccc8e5..2f0e3df0 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/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 4e3200ef..29b08e73 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -28,6 +28,7 @@ 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.13 __fentry__ F GLIBC_2.14 syncfs F GLIBC_2.15 __fdelt_chk F @@ -2294,6 +2295,7 @@ GLIBC_2.36 arc4random_buf F GLIBC_2.36 arc4random_uniform F GLIBC_2.36 c8rtomb F GLIBC_2.36 mbrtoc8 F +GLIBC_2.37 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.38.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] htl: move pthread_self into libc 2023-01-03 10:45 ` [PATCH 3/3] htl: move pthread_self " Guy-Fleury Iteriteka @ 2023-01-03 21:50 ` Samuel Thibault 2023-01-03 23:02 ` Samuel Thibault 0 siblings, 1 reply; 14+ messages in thread From: Samuel Thibault @ 2023-01-03 21:50 UTC (permalink / raw) To: Guy-Fleury Iteriteka; +Cc: libc-alpha, bug-hurd Hello, Make sure to run the abi checks, you can e.g. run from the build directory: make -C $src_dir/elf objdir=$PWD subdir=elf ..=../ $PWD/elf/check-localplt.out make -C $src_dir/elf objdir=$PWD subdir=elf ..=../ $PWD/elf/check-abi-libc.out make -C $src_dir/htl objdir=$PWD subdir=htl ..=../ $PWD/elf/check-abi-libpthread.out It will show this issue: @@ -30,0 +31 @@ GLIBC_2.11 mkstemps64 F +GLIBC_2.12 __pthread_self F @@ -2006 +2006,0 @@ GLIBC_2.21 pthread_mutex_unlock F -GLIBC_2.21 pthread_self F You indeed need to tell that __pthread_self is now exported by glibc. And your change drops the 2.21 version that was coming from forward.c, we need to keep it. So you need to add it as a compat symbol, something like: +#if SHLIB_COMPAT (libc, GLIBC_2_21, GLIBC_2_37) +compat_symbol (libc, __pthread_self, pthread_self, GLIBC_2_21); +#endif Concerning check-localplt.out: Extra PLT reference: libc.so: __pthread_self it means that some C file is not getting access to the hidden declaration. That's because you have put the hidden declaration in htl/pt-internal.h, while it should go to ./sysdeps/htl/pthreadP.h so that various code get it from there like they do with NPTL. (generally, if in doubt, look at how NPTL does things). Samuel Guy-Fleury Iteriteka via Libc-alpha, le mar. 03 janv. 2023 12:45:15 +0200, a ecrit: > --- > htl/Makefile | 3 +-- > htl/Versions | 13 ++++++++++--- > htl/forward.c | 4 ---- > htl/pt-initialize.c | 1 - > htl/pt-internal.h | 1 + > htl/pt-self.c | 8 ++++++-- > sysdeps/htl/pthread-functions.h | 2 -- > sysdeps/mach/hurd/i386/libc.abilist | 2 ++ > sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- > 9 files changed, 20 insertions(+), 16 deletions(-) > > diff --git a/htl/Makefile b/htl/Makefile > index b569cfcd..c75855ad 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..e1cb362c 100644 > --- a/htl/Versions > +++ b/htl/Versions > @@ -1,4 +1,9 @@ > 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 +31,11 @@ libc { > thrd_current; thrd_equal; thrd_sleep; thrd_yield; > } > > + GLIBC_2.37 { > + pthread_self; > + __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 00527348..57b0b66c 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 02e6ad6b..fcad3b13 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-internal.h b/htl/pt-internal.h > index b787acf8..ade71b24 100644 > --- a/htl/pt-internal.h > +++ b/htl/pt-internal.h > @@ -192,6 +192,7 @@ extern int __pthread_max_threads; > extern struct __pthread *_pthread_self (void); > #endif > > +libc_hidden_proto (__pthread_self) > /* Stores the stack of cleanup handlers for the thread. */ > extern __thread struct __pthread_cancelation_handler *__pthread_cleanup_stack; > \f > diff --git a/htl/pt-self.c b/htl/pt-self.c > index e05ec69b..dc37d5dc 100644 > --- a/htl/pt-self.c > +++ b/htl/pt-self.c > @@ -17,7 +17,7 @@ > <https://www.gnu.org/licenses/>. */ > > #include <pthread.h> > - > +#include <shlib-compat.h> > #include <pt-internal.h> > > /* Return the thread ID of the calling thread. */ > @@ -36,4 +36,8 @@ __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_37); > +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_37) > +compat_symbol (libc, __pthread_self, pthread_self, GLIBC_2_12); > +#endif > \ No newline at end of file > diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h > index ccccc8e5..2f0e3df0 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/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist > index 4e3200ef..29b08e73 100644 > --- a/sysdeps/mach/hurd/i386/libc.abilist > +++ b/sysdeps/mach/hurd/i386/libc.abilist > @@ -28,6 +28,7 @@ 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.13 __fentry__ F > GLIBC_2.14 syncfs F > GLIBC_2.15 __fdelt_chk F > @@ -2294,6 +2295,7 @@ GLIBC_2.36 arc4random_buf F > GLIBC_2.36 arc4random_uniform F > GLIBC_2.36 c8rtomb F > GLIBC_2.36 mbrtoc8 F > +GLIBC_2.37 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.38.1 > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] htl: move pthread_self into libc 2023-01-03 21:50 ` Samuel Thibault @ 2023-01-03 23:02 ` Samuel Thibault 0 siblings, 0 replies; 14+ messages in thread From: Samuel Thibault @ 2023-01-03 23:02 UTC (permalink / raw) To: Guy-Fleury Iteriteka, libc-alpha, bug-hurd Samuel Thibault, le mar. 03 janv. 2023 22:50:01 +0100, a ecrit: > make -C $src_dir/htl objdir=$PWD subdir=htl ..=../ $PWD/elf/check-abi-libpthread.out Actually make -C $src_dir/htl objdir=$PWD subdir=htl ..=../ $PWD/htl/check-abi-libpthread.out Samuel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka ` (2 preceding siblings ...) 2023-01-03 10:45 ` [PATCH 3/3] htl: move pthread_self " Guy-Fleury Iteriteka @ 2023-01-03 17:22 ` Zack Weinberg 2023-01-03 18:28 ` Samuel Thibault 2023-01-03 18:30 ` Guy-Fleury Iteriteka 2023-01-03 21:50 ` Samuel Thibault 2023-01-04 8:49 ` gfleury 5 siblings, 2 replies; 14+ messages in thread From: Zack Weinberg @ 2023-01-03 17:22 UTC (permalink / raw) To: Guy-Fleury Iteriteka; +Cc: libc-alpha, bug-hurd > With this patch i boot up a hurd system with flavio scripts. Can we get a link to these scripts, please? So we know why they care about these symbols being in libc. zw ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 17:22 ` [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Zack Weinberg @ 2023-01-03 18:28 ` Samuel Thibault 2023-01-09 21:59 ` Zack Weinberg 2023-01-03 18:30 ` Guy-Fleury Iteriteka 1 sibling, 1 reply; 14+ messages in thread From: Samuel Thibault @ 2023-01-03 18:28 UTC (permalink / raw) To: Zack Weinberg; +Cc: Guy-Fleury Iteriteka, libc-alpha, bug-hurd Hello, Zack Weinberg via Libc-alpha, le mar. 03 janv. 2023 12:22:20 -0500, a ecrit: > > With this patch i boot up a hurd system with flavio scripts. > > Can we get a link to these scripts, please? So we know why they care > about these symbols being in libc. He just means that he was able to check the change with a Hurd system built by flavio scripts. Those scripts work fine without the change, the change is meant to move pthread symbols from libpthread.so to libc.so, like was done for NPTL. Samuel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 18:28 ` Samuel Thibault @ 2023-01-09 21:59 ` Zack Weinberg 0 siblings, 0 replies; 14+ messages in thread From: Zack Weinberg @ 2023-01-09 21:59 UTC (permalink / raw) To: Samuel Thibault; +Cc: Guy-Fleury Iteriteka, GNU libc development, bug-hurd On Tue, Jan 3, 2023, at 1:28 PM, Samuel Thibault wrote: > Zack Weinberg via Libc-alpha, le mar. 03 janv. 2023 12:22:20 -0500, a ecrit: >> > With this patch i boot up a hurd system with flavio scripts. >> >> Can we get a link to these scripts, please? So we know why they care >> about these symbols being in libc. > > He just means that he was able to check the change with a Hurd system > built by flavio scripts. Those scripts work fine without the change, the > change is meant to move pthread symbols from libpthread.so to libc.so, > like was done for NPTL. Oh, I see. Thanks for clarifying. zw ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 17:22 ` [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Zack Weinberg 2023-01-03 18:28 ` Samuel Thibault @ 2023-01-03 18:30 ` Guy-Fleury Iteriteka 1 sibling, 0 replies; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-01-03 18:30 UTC (permalink / raw) To: Zack Weinberg; +Cc: libc-alpha, bug-hurd On January 3, 2023 7:22:20 PM GMT+02:00, Zack Weinberg <zack@owlfolio.org> wrote: > >> With this patch i boot up a hurd system with flavio scripts. > >Can we get a link to these scripts, please? So we know why they care >about these symbols being in libc. https://github.com/flavioc/cross-hurd We are trying to move htl(hurd pthread library) like it was done for linux nptl. > >zw ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka ` (3 preceding siblings ...) 2023-01-03 17:22 ` [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Zack Weinberg @ 2023-01-03 21:50 ` Samuel Thibault 2023-01-04 8:49 ` gfleury 5 siblings, 0 replies; 14+ messages in thread From: Samuel Thibault @ 2023-01-03 21:50 UTC (permalink / raw) To: Guy-Fleury Iteriteka; +Cc: libc-alpha, bug-hurd Hello, Apart from the symbols visibility, that looks good to me, thanks! We're however in glibc slushy ABI freeze period, I guess we should refrain from including this patch for 2.37? The release is expected on february 1st, in the meanwhile you can work on moving the other symbols. Ideally we'll have moved all the symbols by 2.38 :) Samuel Guy-Fleury Iteriteka via Libc-alpha, le mar. 03 janv. 2023 12:45:12 +0200, a ecrit: > With this patch i boot up a hurd system with flavio scripts. > > Guy-Fleury Iteriteka (3): > htl: move __pthtread_total into libc > htl: move __pthread_self into libc. > htl: move pthread_self into libc > > htl/Makefile | 3 +-- > htl/Versions | 15 ++++++++++++--- > htl/forward.c | 4 ---- > htl/pt-create.c | 6 ------ > htl/pt-initialize.c | 1 - > htl/pt-internal.h | 2 ++ > htl/pt-nthreads.c | 23 +++++++++++++++++++++++ > htl/pt-self.c | 8 ++++++-- > sysdeps/htl/pthread-functions.h | 2 -- > sysdeps/mach/hurd/htl/pt-pthread_self.c | 22 ++++++++++++++++++++++ > sysdeps/mach/hurd/htl/pt-sysdep.c | 2 -- > sysdeps/mach/hurd/htl/pt-sysdep.h | 3 +++ > sysdeps/mach/hurd/i386/libc.abilist | 2 ++ > sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- > 14 files changed, 71 insertions(+), 24 deletions(-) > create mode 100644 htl/pt-nthreads.c > create mode 100644 sysdeps/mach/hurd/htl/pt-pthread_self.c > > -- > 2.38.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka ` (4 preceding siblings ...) 2023-01-03 21:50 ` Samuel Thibault @ 2023-01-04 8:49 ` gfleury 5 siblings, 0 replies; 14+ messages in thread From: gfleury @ 2023-01-04 8:49 UTC (permalink / raw) To: Samuel Thibault; +Cc: libc-alpha, bug-hurd 3 janvier 2023 à 23:50 "Samuel Thibault" <samuel.thibault@gnu.org> a écrit: hello, > > Hello, > > Apart from the symbols visibility, that looks good to me, thanks! > > We're however in glibc slushy ABI freeze period, I guess we should > refrain from including this patch for 2.37? > No problem, i send a second version for review. > The release is expected on february 1st, in the meanwhile you can work > on moving the other symbols. Ideally we'll have moved all the symbols by > 2.38 :) > I will try to move what i can > Samuel > > Guy-Fleury Iteriteka via Libc-alpha, le mar. 03 janv. 2023 12:45:12 +0200, a ecrit: > > > > > With this patch i boot up a hurd system with flavio scripts. > > > > Guy-Fleury Iteriteka (3): > > htl: move __pthtread_total into libc > > htl: move __pthread_self into libc. > > htl: move pthread_self into libc > > > > htl/Makefile | 3 +-- > > htl/Versions | 15 ++++++++++++--- > > htl/forward.c | 4 ---- > > htl/pt-create.c | 6 ------ > > htl/pt-initialize.c | 1 - > > htl/pt-internal.h | 2 ++ > > htl/pt-nthreads.c | 23 +++++++++++++++++++++++ > > htl/pt-self.c | 8 ++++++-- > > sysdeps/htl/pthread-functions.h | 2 -- > > sysdeps/mach/hurd/htl/pt-pthread_self.c | 22 ++++++++++++++++++++++ > > sysdeps/mach/hurd/htl/pt-sysdep.c | 2 -- > > sysdeps/mach/hurd/htl/pt-sysdep.h | 3 +++ > > sysdeps/mach/hurd/i386/libc.abilist | 2 ++ > > sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- > > 14 files changed, 71 insertions(+), 24 deletions(-) > > create mode 100644 htl/pt-nthreads.c > > create mode 100644 sysdeps/mach/hurd/htl/pt-pthread_self.c > > > > -- > > 2.38.1 > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 0/3] htl: move some symbol into libc @ 2023-03-18 9:58 Guy-Fleury Iteriteka 2023-03-18 9:58 ` [PATCH 1/3] htl: move __pthtread_total " Guy-Fleury Iteriteka 0 siblings, 1 reply; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-03-18 9:58 UTC (permalink / raw) To: libc-alpha; +Cc: Guy-Fleury Iteriteka Hello, this attempt to move pthread_self first and will try others as i get experiencces. I boostrap a hurd with this scripts https://github.com/flavioc/cross-hurd Guy-Fleury Iteriteka (3): htl: move __pthtread_total into libc htl: move ___pthread_self into libc. htl: move pthread_self info libc. htl/Makefile | 3 +-- htl/Versions | 15 ++++++++++++--- htl/forward.c | 4 ---- htl/pt-create.c | 6 ------ htl/pt-initialize.c | 1 - htl/pt-internal.h | 1 + htl/pt-nthreads.c | 23 +++++++++++++++++++++++ htl/pt-self.c | 13 +++++++++++-- sysdeps/htl/pthread-functions.h | 2 -- sysdeps/htl/pthreadP.h | 2 ++ sysdeps/mach/hurd/htl/pt-pthread_self.c | 22 ++++++++++++++++++++++ sysdeps/mach/hurd/htl/pt-sysdep.c | 2 -- sysdeps/mach/hurd/htl/pt-sysdep.h | 3 +++ sysdeps/mach/hurd/i386/libc.abilist | 3 +++ sysdeps/mach/hurd/i386/libpthread.abilist | 2 -- 15 files changed, 78 insertions(+), 24 deletions(-) create mode 100644 htl/pt-nthreads.c create mode 100644 sysdeps/mach/hurd/htl/pt-pthread_self.c -- 2.30.2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] htl: move __pthtread_total into libc 2023-03-18 9:58 [PATCH 0/3] htl: move some symbol into libc Guy-Fleury Iteriteka @ 2023-03-18 9:58 ` Guy-Fleury Iteriteka 2023-04-04 23:27 ` Samuel Thibault 0 siblings, 1 reply; 14+ messages in thread From: Guy-Fleury Iteriteka @ 2023-03-18 9:58 UTC (permalink / raw) To: libc-alpha; +Cc: Guy-Fleury Iteriteka htl/pt-nthreads.c: new file. htl/Makefile: Add it to routine. htl/Versions: version it as private libc symbol. htl/pt-create.c: remove his definition here. htl/pt-internal.h: add propertie to it declaration. Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> --- htl/Makefile | 2 +- htl/Versions | 1 + htl/pt-create.c | 6 ------ htl/pt-internal.h | 1 + htl/pt-nthreads.c | 23 +++++++++++++++++++++++ 5 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 htl/pt-nthreads.c diff --git a/htl/Makefile b/htl/Makefile index fe570be9..9194c4fb 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -164,7 +164,7 @@ headers := \ distribute := -routines := forward libc_pthread_init alloca_cutoff htlfreeres +routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads shared-only-routines = forward extra-libs := libpthread diff --git a/htl/Versions b/htl/Versions index 4e0ebac2..113110f4 100644 --- a/htl/Versions +++ b/htl/Versions @@ -30,6 +30,7 @@ libc { __libc_alloca_cutoff; __libc_pthread_init; __pthread_cleanup_stack; + __pthread_total; } } diff --git a/htl/pt-create.c b/htl/pt-create.c index 0e840b86..203b8085 100644 --- a/htl/pt-create.c +++ b/htl/pt-create.c @@ -36,12 +36,6 @@ # include <locale.h> #endif -/* The total number of pthreads currently active. This is defined - here since it would be really stupid to have a threads-using - program that doesn't call `pthread_create'. */ -unsigned int __pthread_total; -\f - /* The entry-point for new threads. */ static void entry_point (struct __pthread *self, void *(*start_routine) (void *), void *arg) diff --git a/htl/pt-internal.h b/htl/pt-internal.h index c3b1d75b..5179428c 100644 --- a/htl/pt-internal.h +++ b/htl/pt-internal.h @@ -165,6 +165,7 @@ __pthread_dequeue (struct __pthread *thread) /* The total number of threads currently active. */ extern unsigned int __pthread_total; +libc_hidden_proto (__pthread_total) /* Concurrency hint. */ extern int __pthread_concurrency; diff --git a/htl/pt-nthreads.c b/htl/pt-nthreads.c new file mode 100644 index 00000000..9a6140ee --- /dev/null +++ b/htl/pt-nthreads.c @@ -0,0 +1,23 @@ +/* Thread counter variable. + Copyright (C) 2021-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <pt-internal.h> + +/* Number of threads running. */ +unsigned int __pthread_total; +libc_hidden_data_def (__pthread_total) -- 2.30.2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] htl: move __pthtread_total into libc 2023-03-18 9:58 ` [PATCH 1/3] htl: move __pthtread_total " Guy-Fleury Iteriteka @ 2023-04-04 23:27 ` Samuel Thibault 0 siblings, 0 replies; 14+ messages in thread From: Samuel Thibault @ 2023-04-04 23:27 UTC (permalink / raw) To: Guy-Fleury Iteriteka; +Cc: libc-alpha Applied, thanks! Guy-Fleury Iteriteka via Libc-alpha, le sam. 18 mars 2023 11:58:24 +0200, a ecrit: > htl/pt-nthreads.c: new file. > htl/Makefile: Add it to routine. > htl/Versions: version it as private libc symbol. > htl/pt-create.c: remove his definition here. > htl/pt-internal.h: add propertie to it declaration. > > Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> > --- > htl/Makefile | 2 +- > htl/Versions | 1 + > htl/pt-create.c | 6 ------ > htl/pt-internal.h | 1 + > htl/pt-nthreads.c | 23 +++++++++++++++++++++++ > 5 files changed, 26 insertions(+), 7 deletions(-) > create mode 100644 htl/pt-nthreads.c > > diff --git a/htl/Makefile b/htl/Makefile > index fe570be9..9194c4fb 100644 > --- a/htl/Makefile > +++ b/htl/Makefile > @@ -164,7 +164,7 @@ headers := \ > > distribute := > > -routines := forward libc_pthread_init alloca_cutoff htlfreeres > +routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads > shared-only-routines = forward > > extra-libs := libpthread > diff --git a/htl/Versions b/htl/Versions > index 4e0ebac2..113110f4 100644 > --- a/htl/Versions > +++ b/htl/Versions > @@ -30,6 +30,7 @@ libc { > __libc_alloca_cutoff; > __libc_pthread_init; > __pthread_cleanup_stack; > + __pthread_total; > } > } > > diff --git a/htl/pt-create.c b/htl/pt-create.c > index 0e840b86..203b8085 100644 > --- a/htl/pt-create.c > +++ b/htl/pt-create.c > @@ -36,12 +36,6 @@ > # include <locale.h> > #endif > > -/* The total number of pthreads currently active. This is defined > - here since it would be really stupid to have a threads-using > - program that doesn't call `pthread_create'. */ > -unsigned int __pthread_total; > -\f > - > /* The entry-point for new threads. */ > static void > entry_point (struct __pthread *self, void *(*start_routine) (void *), void *arg) > diff --git a/htl/pt-internal.h b/htl/pt-internal.h > index c3b1d75b..5179428c 100644 > --- a/htl/pt-internal.h > +++ b/htl/pt-internal.h > @@ -165,6 +165,7 @@ __pthread_dequeue (struct __pthread *thread) > > /* The total number of threads currently active. */ > extern unsigned int __pthread_total; > +libc_hidden_proto (__pthread_total) > > /* Concurrency hint. */ > extern int __pthread_concurrency; > diff --git a/htl/pt-nthreads.c b/htl/pt-nthreads.c > new file mode 100644 > index 00000000..9a6140ee > --- /dev/null > +++ b/htl/pt-nthreads.c > @@ -0,0 +1,23 @@ > +/* Thread counter variable. > + Copyright (C) 2021-2023 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, see > + <https://www.gnu.org/licenses/>. */ > + > +#include <pt-internal.h> > + > +/* Number of threads running. */ > +unsigned int __pthread_total; > +libc_hidden_data_def (__pthread_total) > -- > 2.30.2 > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria. ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-04-04 23:27 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-01-03 10:45 [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 1/3] htl: move __pthtread_total into libc Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 2/3] htl: move ___pthread_self " Guy-Fleury Iteriteka 2023-01-03 10:45 ` [PATCH 3/3] htl: move pthread_self " Guy-Fleury Iteriteka 2023-01-03 21:50 ` Samuel Thibault 2023-01-03 23:02 ` Samuel Thibault 2023-01-03 17:22 ` [PATCH 0/3] htl: move __pthtread_total, ___pthread_self, pthread_self Zack Weinberg 2023-01-03 18:28 ` Samuel Thibault 2023-01-09 21:59 ` Zack Weinberg 2023-01-03 18:30 ` Guy-Fleury Iteriteka 2023-01-03 21:50 ` Samuel Thibault 2023-01-04 8:49 ` gfleury 2023-03-18 9:58 [PATCH 0/3] htl: move some symbol into libc Guy-Fleury Iteriteka 2023-03-18 9:58 ` [PATCH 1/3] htl: move __pthtread_total " Guy-Fleury Iteriteka 2023-04-04 23:27 ` Samuel Thibault
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).