diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-12-07 11:27:29 +0200 |
---|---|---|
committer | Austin Foxley <austinf@cetoncorp.com> | 2010-12-09 08:19:53 -0800 |
commit | 1f674977c0f3ea1e67deea93fa8f4e795cc869ad (patch) | |
tree | c4f22ad83588c519b29b21e10c241a4f386ad772 /libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S | |
parent | a1aaae7b8731a25b7dd8b6a58713dcfc339c3c44 (diff) |
nptl: fix Unwind_Resume PLT calls
My change a49b3a18e463cbe8c94c41501e386e7f4c61609e fixed two
Unwind_Resume calls to go via PLT to avoid text relocations for PIC
builds. However, it looks the reason for upstream not using PLT calls
is that ebx gets clobbered. So we need to reload it.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S')
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S index ac7983c49..3b61367e1 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S @@ -648,6 +648,10 @@ __condvar_tw_cleanup: movl %esi, (%esp) .LcallUR: +#ifdef __PIC__ + call __i686.get_pc_thunk.bx + addl $_GLOBAL_OFFSET_TABLE_, %ebx +#endif call _Unwind_Resume@PLT hlt .LENDCODE: |