@@ -2,11 +2,6 @@ abi-variants := 32 64
abi-32-condition := __WORDSIZE == 32
abi-64-condition := __WORDSIZE == 64
-ifeq ($(subdir),rt)
-librt-routines += rt-sysdep
-librt-shared-only-routines += rt-sysdep
-endif
-
ifeq ($(subdir),sysvipc)
sysdep_routines += getshmlba
endif
@@ -17,6 +12,6 @@ endif
ifeq ($(subdir),nptl)
# pull in __syscall_error routine
-libpthread-routines += sysdep sigreturn_stub
-libpthread-shared-only-routines += sysdep sigreturn_stub
+libpthread-routines += sigreturn_stub
+libpthread-shared-only-routines += sigreturn_stub
endif
deleted file mode 100644
@@ -1 +0,0 @@
-#include <sysdep.c>
@@ -26,6 +26,7 @@ ENTRY(__libc_pipe)
ta 0x10
bcc 1f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
1: st %o0, [%o2] /* PIPEDES[0] = %o0; */
@@ -30,6 +30,7 @@ ENTRY(syscall)
ta 0x10
bcc 1f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
1: retl
@@ -65,6 +65,7 @@ ENTRY(name); \
#ifndef PIC
# define SYSCALL_ERROR_HANDLER \
mov %o7, %g1; \
+ neg %o0, %o0; \
call __syscall_error; \
mov %g1, %o7;
#else
@@ -26,6 +26,7 @@ ENTRY(__libc_vfork)
ta 0x10
bcc 2f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
2: sub %o1, 1, %o1
@@ -27,6 +27,7 @@ ENTRY(__libc_pipe)
ta 0x6d
bcc,pt %xcc, 1f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
1: st %o0, [%o2] /* PIPEDES[0] = %o0; */
@@ -32,6 +32,7 @@ ENTRY(syscall)
bcc,pt %xcc, 1f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
1: retl
@@ -65,6 +65,7 @@ ENTRY(name); \
#ifndef PIC
# define SYSCALL_ERROR_HANDLER \
mov %o7, %g1; \
+ neg %o0, %o0; \
call __syscall_error; \
mov %g1, %o7;
#else
@@ -26,6 +26,7 @@ ENTRY(__libc_vfork)
ta 0x6d
bcc,pt %xcc, 2f
mov %o7, %g1
+ neg %o0, %o0
call __syscall_error
mov %g1, %o7
2: sub %o1, 1, %o1
deleted file mode 100644
@@ -1,27 +0,0 @@
-/* Copyright (C) 1997-2020 Free Software Foundation, Inc.
- 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-
-/* This routine is jumped to by all the syscall handlers, to stash
- an error number into errno. */
-int
-__syscall_error (int err_no)
-{
- __set_errno (err_no);
- return -1;
-}
@@ -19,6 +19,8 @@
#ifndef _LINUX_SPARC_SYSDEP_H
#define _LINUX_SPARC_SYSDEP_H 1
+#define SYSCALL_ERROR_FUNC
+
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/sparc/sysdep.h>