about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-05-17 09:59:14 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-05-17 10:06:44 +0200
commit23ce1cf35a59a4fdb3dabe073e3d1fe2b76fb0ca (patch)
tree694d5fb5e5dbe1af48f5eda2ec8668d38ffc9668
parenta78e5979a92c7985eadad7246740f3874271303f (diff)
downloadglibc-23ce1cf35a59a4fdb3dabe073e3d1fe2b76fb0ca.tar.gz
glibc-23ce1cf35a59a4fdb3dabe073e3d1fe2b76fb0ca.tar.xz
glibc-23ce1cf35a59a4fdb3dabe073e3d1fe2b76fb0ca.zip
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>
-rw-r--r--nptl/Makefile2
-rw-r--r--nptl/Versions2
-rw-r--r--nptl/events.c4
-rw-r--r--nptl/pthreadP.h4
-rw-r--r--nptl_db/db-symbols.awk1
-rw-r--r--nptl_db/structs.def11
6 files changed, 15 insertions, 9 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 37a762d530..b57b010779 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -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 \
diff --git a/nptl/Versions b/nptl/Versions
index fb3379b788..6e2def1b4c 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -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;
diff --git a/nptl/events.c b/nptl/events.c
index 5a07e58402..ab57fefd48 100644
--- a/nptl/events.c
+++ b/nptl/events.c
@@ -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)
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index dc2aece37e..a4a87cb549 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -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;
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
index 9e981537c8..6f326cf379 100644
--- a/nptl_db/db-symbols.awk
+++ b/nptl_db/db-symbols.awk
@@ -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;
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
index 275c12bc7a..71c9f7bfc2 100644
--- a/nptl_db/structs.def
+++ b/nptl_db/structs.def
@@ -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)