2000-01-03  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on
	kernel without mmap2 syscall.
This commit is contained in:
Ulrich Drepper 2000-01-04 00:37:51 +00:00
parent e3aaaa2732
commit 52354636d3
2 changed files with 15 additions and 10 deletions

View file

@ -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,

View file

@ -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