aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
index ec21949a49..7865f7165e 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
@@ -96,19 +96,21 @@
# define CENABLE call __pthread_enable_asynccancel;
# define CDISABLE call __pthread_disable_asynccancel
# elif defined IS_IN_librt
-# ifdef __PIC__
+# ifdef PIC
# define CENABLE pushl %ebx; \
- SETUP_PIC_REG(bx); \
+ call __i686.get_pc_thunk.bx; \
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \
call __librt_enable_asynccancel@PLT; \
popl %ebx;
# define CDISABLE pushl %ebx; \
- SETUP_PIC_REG(bx); \
+ call __i686.get_pc_thunk.bx; \
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \
call __librt_disable_asynccancel@PLT; \
popl %ebx;
# else
# define CENABLE call __librt_enable_asynccancel;
# define CDISABLE call __librt_disable_asynccancel
- #endif
+# endif
# else
# define CENABLE call __libc_enable_asynccancel;
# define CDISABLE call __libc_disable_asynccancel