From 5d865001d84678e696b62126d4c49ad730a1b0a8 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 30 Sep 2002 07:08:16 +0000 Subject: [PATCH] Update. 2002-09-30 Andreas Jaeger * 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. --- ChangeLog | 7 +++++++ sysdeps/unix/sysv/linux/x86_64/sysdep.h | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b283c1fa7..fe25b54998 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-09-30 Andreas Jaeger + + * 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 * 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 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 */ -- 2.43.5