nptl: Move __nptl_create_event, __nptl_death_event into libc

In libthread_db, use the exported GLIBC_PRIVATE symbols directly
instead of relying on _thread_db_* variables in libpthread
(which used to be created by the DB_FUNCTION macros).

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer 2021-05-17 09:59:14 +02:00
parent a78e5979a9
commit 23ce1cf35a
6 changed files with 15 additions and 9 deletions

View File

@ -41,6 +41,7 @@ routines = \
elision-timed \ elision-timed \
elision-trylock \ elision-trylock \
elision-unlock \ elision-unlock \
events \
futex-internal \ futex-internal \
libc-cleanup \ libc-cleanup \
libc_multiple_threads \ libc_multiple_threads \
@ -200,7 +201,6 @@ shared-only-routines = forward
static-only-routines = pthread_atfork static-only-routines = pthread_atfork
libpthread-routines = \ libpthread-routines = \
events \
libpthread-compat \ libpthread-compat \
nptl-init \ nptl-init \
pt-interp \ pt-interp \

View File

@ -351,6 +351,8 @@ libc {
tss_set; tss_set;
} }
GLIBC_PRIVATE { GLIBC_PRIVATE {
__nptl_create_event;
__nptl_death_event;
__default_pthread_attr; __default_pthread_attr;
__default_pthread_attr_lock; __default_pthread_attr_lock;
__futex_abstimed_wait64; __futex_abstimed_wait64;

View File

@ -24,10 +24,10 @@ void
__nptl_create_event (void) __nptl_create_event (void)
{ {
} }
hidden_def (__nptl_create_event) libc_hidden_def (__nptl_create_event)
void void
__nptl_death_event (void) __nptl_death_event (void)
{ {
} }
hidden_def (__nptl_death_event) libc_hidden_def (__nptl_death_event)

View File

@ -337,8 +337,8 @@ rtld_hidden_proto (__nptl_initial_report_events)
/* Event handlers for libthread_db interface. */ /* Event handlers for libthread_db interface. */
extern void __nptl_create_event (void); extern void __nptl_create_event (void);
extern void __nptl_death_event (void); extern void __nptl_death_event (void);
hidden_proto (__nptl_create_event) libc_hidden_proto (__nptl_create_event)
hidden_proto (__nptl_death_event) libc_hidden_proto (__nptl_death_event)
/* The fork generation counter, defined in libpthread. */ /* The fork generation counter, defined in libpthread. */
extern unsigned long int __fork_generation attribute_hidden; extern unsigned long int __fork_generation attribute_hidden;

View File

@ -4,6 +4,7 @@
BEGIN { BEGIN {
%define DB_RTLD_VARIABLE(name) /* Nothing. */ %define DB_RTLD_VARIABLE(name) /* Nothing. */
%define DB_MAIN_VARIABLE(name) /* Nothing. */ %define DB_MAIN_VARIABLE(name) /* Nothing. */
%define DB_MAIN_SYMBOL(name) /* Nothing. */
%define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */ %define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
%define DB_LOOKUP_NAME(idx, name) required[STRINGIFY (name)] = 1; %define DB_LOOKUP_NAME(idx, name) required[STRINGIFY (name)] = 1;
%define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1; %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1;

View File

@ -26,11 +26,14 @@
# define DB_RTLD_VARIABLE(name) DB_VARIABLE (name) # define DB_RTLD_VARIABLE(name) DB_VARIABLE (name)
#endif #endif
/* DB_MAIN_VARIABLE and DB_MAIN_ARRAY_VARIABLE are not covered by the /* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not
libpthread symbol check in db-symbols.awk. */ covered by the libpthread symbol check in db-symbols.awk. */
#ifndef DB_MAIN_VARIABLE #ifndef DB_MAIN_VARIABLE
# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name) # define DB_MAIN_VARIABLE(name) DB_VARIABLE (name)
#endif #endif
#ifndef DB_MAIN_SYMBOL
# define DB_MAIN_SYMBOL(name) DB_SYMBOL (name)
#endif
#ifndef DB_MAIN_ARRAY_VARIABLE #ifndef DB_MAIN_ARRAY_VARIABLE
# define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name) # define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name)
#endif #endif
@ -75,8 +78,8 @@ DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
DB_STRUCT_FIELD (td_eventbuf_t, eventdata) DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
DB_SYMBOL (nptl_version) DB_SYMBOL (nptl_version)
DB_FUNCTION (__nptl_create_event) DB_MAIN_SYMBOL (__nptl_create_event)
DB_FUNCTION (__nptl_death_event) DB_MAIN_SYMBOL (__nptl_death_event)
DB_SYMBOL (__nptl_threads_events) DB_SYMBOL (__nptl_threads_events)
DB_MAIN_VARIABLE (__nptl_nthreads) DB_MAIN_VARIABLE (__nptl_nthreads)
DB_VARIABLE (__nptl_last_event) DB_VARIABLE (__nptl_last_event)