diff options
author | Roland McGrath <roland@gnu.org> | 2002-09-30 10:26:28 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-09-30 10:26:28 +0000 |
commit | 7de490c6863aa4bb81d3a1cb4a0a35028aeee260 (patch) | |
tree | 53f79d3eb5749bbd9e516ed42c2c55c29f6dcced /sysdeps/unix/sysv/linux | |
parent | 82685ecbd7ffcae45b078cc5e2faeb88205a1785 (diff) | |
download | glibc-7de490c6863aa4bb81d3a1cb4a0a35028aeee260.tar.gz glibc-7de490c6863aa4bb81d3a1cb4a0a35028aeee260.tar.xz glibc-7de490c6863aa4bb81d3a1cb4a0a35028aeee260.zip |
2002-09-30 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h [USE_TLS && HAVE___THREAD] (SYSCALL_ERROR_HANDLER): Use direct-%gs form of TLS access for errno.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sysdep.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 6dbeb3d297..ed0bdf6b7d 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -99,11 +99,10 @@ __i686.get_pc_thunk.reg: \ # define SYSCALL_ERROR_HANDLER \ 0:SETUP_PIC_REG (cx); \ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ + movl errno@gotntpoff(%ecx), %ecx; \ xorl %edx, %edx; \ subl %eax, %edx; \ - movl %gs:0, %eax; \ - subl errno@gottpoff(%ecx), %eax; \ - movl %edx, (%eax); \ + movl %edx, %gs:0(%ecx); \ orl $-1, %eax; \ jmp L(pseudo_end); # else @@ -127,7 +126,7 @@ __i686.get_pc_thunk.reg: \ # endif # else # define SYSCALL_ERROR_HANDLER \ -0:define SETUP_PIC_REG(cx); \ +0:SETUP_PIC_REG(cx); \ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ xorl %edx, %edx; \ subl %eax, %edx; \ |