about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-15 17:00:29 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-15 21:19:16 +0200
commitaa9a7f629632c9180de89632d4f2c1e6039f7781 (patch)
tree8232636305ebbafe77bc1acdcaab416e9a1f0992 /nptl
parentdbdc57dc81437c350c8c8e00a2d40d1749da004e (diff)
downloadglibc-aa9a7f629632c9180de89632d4f2c1e6039f7781.tar.gz
glibc-aa9a7f629632c9180de89632d4f2c1e6039f7781.tar.xz
glibc-aa9a7f629632c9180de89632d4f2c1e6039f7781.zip
nptl: Export _pthread_cleanup_push, _pthread_cleanup_pop again
These were turned into compat symbols as part of the libpthread
move.  It turns out they are used by language run-time libraries
(e.g., the GCC D front end), so it makes to preserve them as
external symbols even though they are not declared in any header
file.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Versions2
-rw-r--r--nptl/cleanup_compat.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/nptl/Versions b/nptl/Versions
index d49dba9c15..62bb939d54 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -260,6 +260,8 @@ libc {
     __pthread_unregister_cancel;
     __pthread_unregister_cancel_restore;
     __pthread_unwind_next;
+    _pthread_cleanup_pop;
+    _pthread_cleanup_push;
     call_once;
     cnd_broadcast;
     cnd_destroy;
diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
index 1a757cf06a..6e3c6b1c1a 100644
--- a/nptl/cleanup_compat.c
+++ b/nptl/cleanup_compat.c
@@ -33,6 +33,8 @@ __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
   THREAD_SETMEM (self, cleanup, buffer);
 }
 libc_hidden_def (__pthread_cleanup_push)
+versioned_symbol (libc, __pthread_cleanup_push, _pthread_cleanup_push,
+		  GLIBC_2_34);
 
 void
 __pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
@@ -47,6 +49,8 @@ __pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
     buffer->__routine (buffer->__arg);
 }
 libc_hidden_def (__pthread_cleanup_pop)
+versioned_symbol (libc, __pthread_cleanup_pop, _pthread_cleanup_pop,
+		  GLIBC_2_34);
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
 compat_symbol (libpthread, __pthread_cleanup_push, _pthread_cleanup_push,