mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +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:
@@ -23,6 +23,9 @@
|
||||
#include <atomic.h>
|
||||
#include <sysdep.h>
|
||||
#include <unistd.h>
|
||||
#include <unwind-link.h>
|
||||
#include <stdio.h>
|
||||
#include <gnu/lib-names.h>
|
||||
|
||||
int
|
||||
__pthread_cancel (pthread_t th)
|
||||
@@ -36,7 +39,12 @@ __pthread_cancel (pthread_t th)
|
||||
|
||||
#ifdef SHARED
|
||||
/* Trigger an error if libgcc_s cannot be loaded. */
|
||||
__pthread_unwind_link_get ();
|
||||
{
|
||||
struct unwind_link *unwind_link = __libc_unwind_link_get ();
|
||||
if (unwind_link == NULL)
|
||||
__libc_fatal (LIBGCC_S_SO
|
||||
" must be installed for pthread_cancel to work\n");
|
||||
}
|
||||
#endif
|
||||
int result = 0;
|
||||
int oldval;
|
||||
|
Reference in New Issue
Block a user