summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/sysdeps/linux/alpha/Makefile.arch2
-rw-r--r--libc/sysdeps/linux/alpha/__syscall_error.c (renamed from libc/sysdeps/linux/alpha/sysdep.c)7
2 files changed, 5 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/alpha/Makefile.arch b/libc/sysdeps/linux/alpha/Makefile.arch
index 4d33cef26..2a66bc1a4 100644
--- a/libc/sysdeps/linux/alpha/Makefile.arch
+++ b/libc/sysdeps/linux/alpha/Makefile.arch
@@ -5,7 +5,7 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-CSRC := sysdep.c
+CSRC := __syscall_error.c
SSRC := \
__longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \
diff --git a/libc/sysdeps/linux/alpha/sysdep.c b/libc/sysdeps/linux/alpha/__syscall_error.c
index cb3cb2639..7c081f3b5 100644
--- a/libc/sysdeps/linux/alpha/sysdep.c
+++ b/libc/sysdeps/linux/alpha/__syscall_error.c
@@ -8,8 +8,9 @@
/* This routine is jumped to by all the syscall handlers, to stash
an error number into errno. */
-int attribute_hidden __syscall_error (int err_no)
+int attribute_hidden __syscall_error (void)
{
- __set_errno (err_no);
- return -1;
+ register int err_no __asm__("$0");
+ __set_errno (err_no);
+ return -1;
}