about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/m68k
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-11-07 01:35:04 +0000
committerUlrich Drepper <drepper@redhat.com>1996-11-07 01:35:04 +0000
commitb57910379e9a0fa1c6985840bbbe19b30595e361 (patch)
tree9bf68210227e7cc5022fdefaa8510313b651e709 /sysdeps/unix/sysv/linux/m68k
parent2c6fe0bd3b270fc644dd4c773f2d47b93f404efe (diff)
downloadglibc-b57910379e9a0fa1c6985840bbbe19b30595e361.tar.gz
glibc-b57910379e9a0fa1c6985840bbbe19b30595e361.tar.xz
glibc-b57910379e9a0fa1c6985840bbbe19b30595e361.zip
update from 961105, second try cvs/libc-961107
Diffstat (limited to 'sysdeps/unix/sysv/linux/m68k')
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall.S30
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S32
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h7
3 files changed, 36 insertions, 33 deletions
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall.S b/sysdeps/unix/sysv/linux/m68k/syscall.S
index b7417aa911..d2328dc545 100644
--- a/sysdeps/unix/sysv/linux/m68k/syscall.S
+++ b/sysdeps/unix/sysv/linux/m68k/syscall.S
@@ -1,25 +1,25 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include <sysdep.h>
 
 /* Please consult the file sysdeps/unix/sysv/linux/m68k/sysdep.h for
-   more information about the value -128 used below.*/
+   more information about the value -4096 used below.*/
 
 	.text
 ENTRY (syscall)
@@ -27,7 +27,7 @@ ENTRY (syscall)
 	_DOARGS_5 (24)		/* Frob arguments.  */
 	trap &0			/* Do the system call.  */
 	UNDOARGS_5		/* Unfrob arguments.  */
-	moveq.l &-128, %d1
+	moveq.l &-4096, %d1
 	cmp.l %d1, %d0		/* Check %d0 for error.  */
 	jcc syscall_error	/* Jump to error handler if negative.  */
 	rts			/* Return to caller.  */
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 7016a26a60..95e63542ee 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -1,20 +1,20 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include <sysdep.h>
 
@@ -62,7 +62,11 @@ __syscall_error:
 END (__syscall_error)
 #endif /* PIC */
 
-ENTRY (__errno_location)
+	.weak __errno_location
+	.type __errno_location,@function
+	.align 4
+__errno_location:
+	CALL_MCOUNT
 #ifdef PIC
 	move.l	(%pc, errno@GOTPC), %a0
 #else
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index 3366caab45..46d5a7e48f 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -74,14 +74,13 @@ Cambridge, MA 02139, USA.  */
    even if the call succeeded.  E.g., the `lseek' system call might return
    a large offset.  Therefore we must not anymore test for < 0, but test
    for a real error by making sure the value in %d0 is a real error
-   number.  For now (as of 2.1.1) 122 is the largest defined error number.
-   We allow for a bit of room for development and treat -128 to -1 as
-   error values.  */
+   number.  Linus said he will make sure the no syscall returns a value
+   in -1 .. -4095 as a valid result so we can savely test with -4096.  */
 #define	PSEUDO(name, syscall_name, args)				      \
   .text;								      \
   ENTRY (name)								      \
     DO_CALL (&SYS_ify (syscall_name), args);				      \
-    moveq.l &-128, %d1;							      \
+    moveq.l &-4096, %d1;						      \
     cmp.l %d1, %d0;							      \
     jcc syscall_error