mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
nptl: Move __pthread_unwind_next into libc
It's necessary to stub out __libc_disable_asynccancel and __libc_enable_asynccancel via rtld-stubbed-symbols because the new direct references to the unwinder result in symbol conflicts when the rtld exception handling from libc is linked in during the construction of librtld.map. unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs the functions that were previously only used in libpthread. The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are no longer needed, so switch them to hidden symbols. The symbol __pthread_unwind_next has been moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
@ -25,6 +25,7 @@
|
||||
#include "pthreadP.h"
|
||||
#include <libc-diag.h>
|
||||
#include <jmpbuf-unwind.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#ifdef _STACK_GROWS_DOWN
|
||||
# define FRAME_LEFT(frame, other, adj) \
|
||||
@ -134,15 +135,19 @@ __pthread_unwind (__pthread_unwind_buf_t *buf)
|
||||
/* We better do not get here. */
|
||||
abort ();
|
||||
}
|
||||
hidden_def (__pthread_unwind)
|
||||
|
||||
libc_hidden_def (__pthread_unwind)
|
||||
|
||||
void
|
||||
__cleanup_fct_attribute __attribute ((noreturn))
|
||||
__pthread_unwind_next (__pthread_unwind_buf_t *buf)
|
||||
___pthread_unwind_next (__pthread_unwind_buf_t *buf)
|
||||
{
|
||||
struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
|
||||
|
||||
__pthread_unwind ((__pthread_unwind_buf_t *) ibuf->priv.data.prev);
|
||||
}
|
||||
hidden_def (__pthread_unwind_next)
|
||||
versioned_symbol (libc, ___pthread_unwind_next, __pthread_unwind_next,
|
||||
GLIBC_2_34);
|
||||
#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_34)
|
||||
compat_symbol (libpthread, ___pthread_unwind_next, __pthread_unwind_next,
|
||||
GLIBC_2_3_3);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user