1
0
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:
Florian Weimer
2021-04-21 19:49:50 +02:00
parent 3fec7f18bf
commit 1d95b035c7
82 changed files with 126 additions and 189 deletions

View File

@ -18,11 +18,20 @@
#include <stdlib.h>
#include "pthreadP.h"
#include <unwind-link.h>
#include <stdio.h>
#include <gnu/lib-names.h>
void
__pthread_exit (void *value)
{
{
struct unwind_link *unwind_link = __libc_unwind_link_get ();
if (unwind_link == NULL)
__libc_fatal (LIBGCC_S_SO
" must be installed for pthread_exit to work\n");
}
THREAD_SETMEM (THREAD_SELF, result, value);
__do_cancel ();