aboutsummaryrefslogtreecommitdiff
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
parent14bdd76de37251ebb6f9eb22d1552436f8c65a19 (diff)
downloadglibc-5d865001d84678e696b62126d4c49ad730a1b0a8.zip
glibc-5d865001d84678e696b62126d4c49ad730a1b0a8.tar.gz
glibc-5d865001d84678e696b62126d4c49ad730a1b0a8.tar.bz2
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.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h6
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b283c1..fe25b54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+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.
+
2002-09-29 Ulrich Drepper <drepper@redhat.com>
* posix/regexec.c (sift_states_bkref): Remove ret variable. Use
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 70aa826..53dbe81 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 */