diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-01-04 00:37:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-04 00:37:51 +0000 |
commit | 52354636d3ba63e3467c9062f6ddbaf5138f0229 (patch) | |
tree | fdf70fbff2c72b1bff8958306d4ce5e3d259808d | |
parent | e3aaaa2732fbde38c612442fe4f688f2f58801ff (diff) | |
download | glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.zip glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.tar.gz glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.tar.bz2 |
Update.
2000-01-03 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on
kernel without mmap2 syscall.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/mmap64.S | 20 |
2 files changed, 15 insertions, 10 deletions
@@ -1,3 +1,8 @@ +2000-01-03 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on + kernel without mmap2 syscall. + 2000-01-03 Philip Blundell <philb@gnu.org> * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MMAP2_SYSCALL, diff --git a/sysdeps/unix/sysv/linux/i386/mmap64.S b/sysdeps/unix/sysv/linux/i386/mmap64.S index 0785bce..22515a1 100644 --- a/sysdeps/unix/sysv/linux/i386/mmap64.S +++ b/sysdeps/unix/sysv/linux/i386/mmap64.S @@ -62,6 +62,12 @@ L(do_syscall): popl %ebx popl %ebp +#ifndef __ASSUME_MMAP2_SYSCALL +2: + cmp $-ENOSYS, %eax + je 3f +#endif + /* If 0 > %eax > -4096 there was an error. */ cmpl $-4096, %eax ja SYSCALL_ERROR_LABEL @@ -70,12 +76,6 @@ L(do_syscall): L(pseudo_end): ret -#ifndef __ASSUME_MMAP2_SYSCALL -2: - cmp $-ENOSYS, %eax - je 3f -#endif - /* This means the offset value is too large. */ L(einval): popl %edi @@ -88,12 +88,11 @@ L(einval): #if !defined __ASSUME_MMAP2_SYSCALL || !defined __NR_mmap2 -# ifndef __NR_mmap2 +3: /* Save registers. */ movl %ebx, %edx -# endif -3: - cmpl $0, 44(%esp) + + cmpl $0, 28(%esp) jne L(einval) movl $SYS_ify(mmap), %eax /* System call number in %eax. */ @@ -119,6 +118,7 @@ L(pseudo_end): ret L(einval): + movl %edx, %ebx movl $-EINVAL, %eax jmp SYSCALL_ERROR_LABEL # endif |