aboutsummaryrefslogtreecommitdiff
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.zip
glibc-aa9a7f629632c9180de89632d4f2c1e6039f7781.tar.gz
glibc-aa9a7f629632c9180de89632d4f2c1e6039f7781.tar.bz2
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 d49dba9..62bb939 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 1a757cf..6e3c6b1 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,