mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-11 20:00:07 +00:00
Don't call internal __pthread_unwind via PLT
Add PTHREAD_UNWIND to replace JUMPTARGET(__pthread_unwind) and define it to __GI___pthread_unwind within libpthread. * sysdeps/unix/sysv/linux/x86_64/cancellation.S (PTHREAD_UNWIND): New (__pthread_unwind): Renamed to ... (PTHREAD_UNWIND): This. (__pthread_enable_asynccancel): Replace JUMPTARGET(__pthread_unwind) with PTHREAD_UNWIND.
This commit is contained in:
parent
48526672b6
commit
d29261db22
@ -1,3 +1,12 @@
|
||||
2016-05-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/x86_64/cancellation.S (PTHREAD_UNWIND):
|
||||
New
|
||||
(__pthread_unwind): Renamed to ...
|
||||
(PTHREAD_UNWIND): This.
|
||||
(__pthread_enable_asynccancel): Replace
|
||||
JUMPTARGET(__pthread_unwind) with PTHREAD_UNWIND.
|
||||
|
||||
2016-05-18 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/bits/sched.h [__USE_GNU]
|
||||
|
@ -21,9 +21,11 @@
|
||||
#include <kernel-features.h>
|
||||
#include "lowlevellock.h"
|
||||
|
||||
#define PTHREAD_UNWIND JUMPTARGET(__pthread_unwind)
|
||||
#if IS_IN (libpthread)
|
||||
# if defined SHARED && !defined NO_HIDDEN
|
||||
# define __pthread_unwind __GI___pthread_unwind
|
||||
# undef PTHREAD_UNWIND
|
||||
# define PTHREAD_UNWIND __GI___pthread_unwind
|
||||
# endif
|
||||
#else
|
||||
# ifndef SHARED
|
||||
@ -76,7 +78,7 @@ ENTRY(__pthread_enable_asynccancel)
|
||||
lock
|
||||
orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
|
||||
mov %fs:CLEANUP_JMP_BUF, %RDI_LP
|
||||
call JUMPTARGET(__pthread_unwind)
|
||||
call PTHREAD_UNWIND
|
||||
hlt
|
||||
END(__pthread_enable_asynccancel)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user