diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sysdep.h | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index d335df9885..2fc910e675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-10-11 Roland McGrath <roland@redhat.com> + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): + Fix typos. + * sysdeps/generic/dl-lookupcfg.h: Include <tls.h>. * sysdeps/sh/dl-lookupcfg.h: File removed. * sysdeps/i386/dl-lookupcfg.h: File removed. diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h index d7fde39311..17f2ca919f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h @@ -88,14 +88,18 @@ movq errno@GOTTPOFF(%rip), %rcx; \ xorq %rdx, %rdx; \ subq %rax, %rdx; \ - movl %eax, %fs:0(%rcx); + movl %edx, %fs:(%rcx); \ + orq $-1, %rax; \ + jmp L(pseudo_end); #elif RTLD_PRIVATE_ERRNO # define SYSCALL_ERROR_HANDLER \ 0: \ leaq errno(%rip), %rcx; \ xorq %rdx, %rdx; \ subq %rax, %rdx; \ - movl %eax, (%rcx); + movl %edx, (%rcx); \ + orq $-1, %rax; \ + jmp L(pseudo_end); #elif defined _LIBC_REENTRANT /* Store (- %rax) into errno through the GOT. Note that errno occupies only 4 bytes. */ |