aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-09-30 07:08:16 +0000
committerAndreas Jaeger <aj@suse.de>2002-09-30 07:08:16 +0000
commit5d865001d84678e696b62126d4c49ad730a1b0a8 (patch)
treeffe3d130ea7a813ddbcb25d0c19f73761fdcb8a9 /sysdeps
parent14bdd76de37251ebb6f9eb22d1552436f8c65a19 (diff)
downloadglibc-5d865001d84678e696b62126d4c49ad730a1b0a8.tar
glibc-5d865001d84678e696b62126d4c49ad730a1b0a8.tar.gz
glibc-5d865001d84678e696b62126d4c49ad730a1b0a8.tar.bz2
glibc-5d865001d84678e696b62126d4c49ad730a1b0a8.zip
Update.
2002-09-30 Andreas Jaeger <aj@suse.de> * iconvdata/tst-e2big.c (test): Use %td in printf for ptrdiff_t. * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): Store 4 bytes into errno, not 8 bytes.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 70aa826b18..53dbe8143f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -79,7 +79,7 @@
#ifndef PIC
#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
#else
-/* Store (- %rax) into errno through the GOT. */
+/* Store (- %rax) into errno through the GOT. Note that errno occupies 4 bytes. */
#ifdef _LIBC_REENTRANT
#define SYSCALL_ERROR_HANDLER \
0: \
@@ -90,7 +90,7 @@
call BP_SYM (__errno_location)@PLT; \
POP_ERRNO_LOCATION_RETURN; \
popq %rdx; \
- movq %rdx, (%rax); \
+ movl %edx, (%rax); \
orq $-1, %rax; \
jmp L(pseudo_end);
@@ -101,7 +101,7 @@
0:movq errno@GOTPCREL(%RIP), %rcx; \
xorq %rdx, %rdx; \
subq %rax, %rdx; \
- movq %rdx, (%rcx); \
+ movl %edx, (%rcx); \
orq $-1, %rax; \
jmp L(pseudo_end);
#endif /* _LIBC_REENTRANT */