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-trylock \
elision-unlock \
events \
futex-internal \
libc-cleanup \
libc_multiple_threads \
@ -200,7 +201,6 @@ shared-only-routines = forward
static-only-routines = pthread_atfork
libpthread-routines = \
events \
libpthread-compat \
nptl-init \
pt-interp \

View File

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

View File

@ -24,10 +24,10 @@ void
__nptl_create_event (void)
{
}
hidden_def (__nptl_create_event)
libc_hidden_def (__nptl_create_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. */
extern void __nptl_create_event (void);
extern void __nptl_death_event (void);
hidden_proto (__nptl_create_event)
hidden_proto (__nptl_death_event)
libc_hidden_proto (__nptl_create_event)
libc_hidden_proto (__nptl_death_event)
/* The fork generation counter, defined in libpthread. */
extern unsigned long int __fork_generation attribute_hidden;

View File

@ -4,6 +4,7 @@
BEGIN {
%define DB_RTLD_VARIABLE(name) /* Nothing. */
%define DB_MAIN_VARIABLE(name) /* Nothing. */
%define DB_MAIN_SYMBOL(name) /* Nothing. */
%define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
%define DB_LOOKUP_NAME(idx, name) required[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)
#endif
/* DB_MAIN_VARIABLE and DB_MAIN_ARRAY_VARIABLE are not covered by the
libpthread symbol check in db-symbols.awk. */
/* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not
covered by the libpthread symbol check in db-symbols.awk. */
#ifndef DB_MAIN_VARIABLE
# define DB_MAIN_VARIABLE(name) DB_VARIABLE (name)
#endif
#ifndef DB_MAIN_SYMBOL
# define DB_MAIN_SYMBOL(name) DB_SYMBOL (name)
#endif
#ifndef DB_MAIN_ARRAY_VARIABLE
# define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name)
#endif
@ -75,8 +78,8 @@ DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
DB_SYMBOL (nptl_version)
DB_FUNCTION (__nptl_create_event)
DB_FUNCTION (__nptl_death_event)
DB_MAIN_SYMBOL (__nptl_create_event)
DB_MAIN_SYMBOL (__nptl_death_event)
DB_SYMBOL (__nptl_threads_events)
DB_MAIN_VARIABLE (__nptl_nthreads)
DB_VARIABLE (__nptl_last_event)