[02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc

Message ID 9f464e7bf0f0b5616ab3d8a2c107e89eb9cf732b.1620838411.git.fweimer@redhat.com
State Committed
Commit 23ce1cf35a59a4fdb3dabe073e3d1fe2b76fb0ca
Headers
Series nptl: Move almost all remaining functions into libc |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Florian Weimer May 12, 2021, 4:57 p.m. UTC
  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).
---
 nptl/Makefile          |  2 +-
 nptl/Versions          |  2 ++
 nptl/events.c          |  4 ++--
 nptl/pthreadP.h        |  4 ++--
 nptl_db/db-symbols.awk |  1 +
 nptl_db/structs.def    | 11 +++++++----
 6 files changed, 15 insertions(+), 9 deletions(-)
  

Comments

Adhemerval Zanella Netto May 13, 2021, 6:04 p.m. UTC | #1
On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> 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).

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  nptl/Makefile          |  2 +-
>  nptl/Versions          |  2 ++
>  nptl/events.c          |  4 ++--
>  nptl/pthreadP.h        |  4 ++--
>  nptl_db/db-symbols.awk |  1 +
>  nptl_db/structs.def    | 11 +++++++----
>  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 \

Ok.

> @@ -200,7 +201,6 @@ shared-only-routines = forward
>  static-only-routines = pthread_atfork
>  
>  libpthread-routines = \
> -  events \
>    libpthread-compat \
>    nptl-init \
>    pt-interp \

Ok.

> 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;

Ok.

> 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)

Ok.

> 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;

Ok.

> 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;

Ok.

> 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

Ok.

> @@ -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)
> 

OK.
  

Patch

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)