about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog147
-rw-r--r--sysdeps/unix/sysv/linux/arm/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/setuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/setegid.c35
-rw-r--r--sysdeps/unix/sysv/linux/i386/seteuid.c35
-rw-r--r--sysdeps/unix/sysv/linux/i386/setgid.c34
-rw-r--r--sysdeps/unix/sysv/linux/i386/setgroups.c37
-rw-r--r--sysdeps/unix/sysv/linux/i386/setregid.c34
-rw-r--r--sysdeps/unix/sysv/linux/i386/setresgid.c36
-rw-r--r--sysdeps/unix/sysv/linux/i386/setresuid.c36
-rw-r--r--sysdeps/unix/sysv/linux/i386/setreuid.c35
-rw-r--r--sysdeps/unix/sysv/linux/i386/setuid.c35
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/setuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/setgroups.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setegid.c5
-rw-r--r--sysdeps/unix/sysv/linux/seteuid.c5
-rw-r--r--sysdeps/unix/sysv/linux/setgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setgroups.c5
-rw-r--r--sysdeps/unix/sysv/linux/setregid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setresgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setresuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setreuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/sh/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/sh/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/setuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c1
65 files changed, 176 insertions, 379 deletions
diff --git a/ChangeLog b/ChangeLog
index 261a64d1a5..9b6425393b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,150 @@
+2017-03-28  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/unix/sysv/linux/arm/setegid.c: Remove file.
+	* sysdeps/unix/sysv/linux/arm/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/microblaze/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/setegid.c (setegid): Use
+	INLINE_SYSCALL_ERROR_RETURN_VALUE.
+	* sysdeps/unix/sysv/linux/seteuid.c (seteuid): Likewise.
+	* sysdeps/unix/sysv/linux/setgid.c (setgid): Use __NR_setgid32 if
+	defined.
+	* sysdeps/unix/sysv/linux/setgroups.c (setgroups): Use
+	__NR_setgroups32 if defined.
+	* sysdeps/unix/sysv/linux/setregid.c (__setregid): Use __NR_setregid32
+	if defined.
+	* sysdeps/unix/sysv/linux/setresgid.c (__setresgid): Use
+	__NR_setresgid32 is defined.
+	* sysdeps/unix/sysv/linux/setresuid.c (__setresuid): Use
+	__NR_setresuid32 if defined.
+	* sysdeps/unix/sysv/linux/setreuid.c (__setreuid): Use
+	__NR_setreuid32 if defined.
+	* sysdeps/unix/sysv/linux/setuid.c (__setuid): Use __NR_setuid32 if
+	defined.
+	* sysdeps/unix/sysv/linux/arm/setegid.c: Remove file.
+	* sysdeps/unix/sysv/linux/arm/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/microblaze/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sh/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c: Likewise.
+	* sysdeps/unix/sysv/linux/setegid.c (setegid): Use
+	INLINE_SYSCALL_ERROR_RETURN_VALUE.
+	* sysdeps/unix/sysv/linux/seteuid.c (seteuid): Likewise.
+	* sysdeps/unix/sysv/linux/setgid.c (setgid): Use __NR_setgid32 if
+	defined.
+	* sysdeps/unix/sysv/linux/setgroups.c (setgroups): Use
+	__NR_setgroups32 if defined.
+	* sysdeps/unix/sysv/linux/setregid.c (__setregid): Use __NR_setregid32
+	if defined.
+	* sysdeps/unix/sysv/linux/setresgid.c (__setresgid): Use
+	__NR_setresgid32 is defined.
+	* sysdeps/unix/sysv/linux/setresuid.c (__setresuid): Use
+	__NR_setresuid32 if defined.
+	* sysdeps/unix/sysv/linux/setreuid.c (__setreuid): Use
+	__NR_setreuid32 if defined.
+	* sysdeps/unix/sysv/linux/setuid.c (__setuid): Use __NR_setuid32 if
+	defined.
+
 2017-03-27  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #21277]
diff --git a/sysdeps/unix/sysv/linux/arm/setegid.c b/sysdeps/unix/sysv/linux/arm/setegid.c
deleted file mode 100644
index 2e3a54c893..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/seteuid.c b/sysdeps/unix/sysv/linux/arm/seteuid.c
deleted file mode 100644
index 18e41d08c1..0000000000
--- a/sysdeps/unix/sysv/linux/arm/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setgid.c b/sysdeps/unix/sysv/linux/arm/setgid.c
deleted file mode 100644
index 377021d9ec..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setgroups.c b/sysdeps/unix/sysv/linux/arm/setgroups.c
deleted file mode 100644
index 0e7086278f..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type.  */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setregid.c b/sysdeps/unix/sysv/linux/arm/setregid.c
deleted file mode 100644
index 99c57ad20f..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setresgid.c b/sysdeps/unix/sysv/linux/arm/setresgid.c
deleted file mode 100644
index daca1a4833..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setresuid.c b/sysdeps/unix/sysv/linux/arm/setresuid.c
deleted file mode 100644
index 3aeabe9ad7..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setreuid.c b/sysdeps/unix/sysv/linux/arm/setreuid.c
deleted file mode 100644
index 8ad61226e9..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/arm/setuid.c b/sysdeps/unix/sysv/linux/arm/setuid.c
deleted file mode 100644
index de394379be..0000000000
--- a/sysdeps/unix/sysv/linux/arm/setuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
diff --git a/sysdeps/unix/sysv/linux/i386/setegid.c b/sysdeps/unix/sysv/linux/i386/setegid.c
deleted file mode 100644
index 5a009e7403..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setegid.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1995-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-setegid (gid_t gid)
-{
-  int result;
-
-  if (gid == (gid_t) ~0)
-    return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-
-  result = INLINE_SETXID_SYSCALL (setresgid32, 3, -1, gid, -1);
-
-  return result;
-}
-libc_hidden_def (setegid)
diff --git a/sysdeps/unix/sysv/linux/i386/seteuid.c b/sysdeps/unix/sysv/linux/i386/seteuid.c
deleted file mode 100644
index 7f5b84c869..0000000000
--- a/sysdeps/unix/sysv/linux/i386/seteuid.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-seteuid (uid_t uid)
-{
-  int result;
-
-  if (uid == (uid_t) ~0)
-    return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-
-  result = INLINE_SETXID_SYSCALL (setresuid32, 3, -1, uid, -1);
-
-  return result;
-}
-libc_hidden_def (seteuid)
diff --git a/sysdeps/unix/sysv/linux/i386/setgid.c b/sysdeps/unix/sysv/linux/i386/setgid.c
deleted file mode 100644
index 9b58e7bb8d..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setgid.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-int
-__setgid (gid_t gid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setgid32, 1, gid);
-
-  return result;
-}
-#ifndef __setgid
-weak_alias (__setgid, setgid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/setgroups.c b/sysdeps/unix/sysv/linux/i386/setgroups.c
deleted file mode 100644
index 13ab4fda36..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setgroups.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1997-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <grp.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-/* Set the group set for the current user to GROUPS (N of them).  For
-   Linux we must convert the array of groups into the format that the
-   kernel expects.  */
-int
-setgroups (size_t n, const gid_t *groups)
-{
-  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, groups);
-}
-libc_hidden_def (setgroups)
diff --git a/sysdeps/unix/sysv/linux/i386/setregid.c b/sysdeps/unix/sysv/linux/i386/setregid.c
deleted file mode 100644
index 3314f55dfd..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setregid.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-int
-__setregid (gid_t rgid, gid_t egid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setregid32, 2, rgid, egid);
-
-  return result;
-}
-#ifndef __setregid
-weak_alias (__setregid, setregid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/setresgid.c b/sysdeps/unix/sysv/linux/i386/setresgid.c
deleted file mode 100644
index 45d6769de1..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setresgid.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-
-int
-__setresgid (gid_t rgid, gid_t egid, gid_t sgid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setresgid32, 3, rgid, egid, sgid);
-
-  return result;
-}
-libc_hidden_def (__setresgid)
-#ifndef __setresgid
-weak_alias (__setresgid, setresgid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/setresuid.c b/sysdeps/unix/sysv/linux/i386/setresuid.c
deleted file mode 100644
index 94a117ea43..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setresuid.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-
-int
-__setresuid (uid_t ruid, uid_t euid, uid_t suid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setresuid32, 3, ruid, euid, suid);
-
-  return result;
-}
-libc_hidden_def (__setresuid)
-#ifndef __setresuid
-weak_alias (__setresuid, setresuid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/setreuid.c b/sysdeps/unix/sysv/linux/i386/setreuid.c
deleted file mode 100644
index ad18330c12..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setreuid.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-
-int
-__setreuid (uid_t ruid, uid_t euid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setreuid32, 2, ruid, euid);
-
-  return result;
-}
-#ifndef __setreuid
-weak_alias (__setreuid, setreuid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/setuid.c b/sysdeps/unix/sysv/linux/i386/setuid.c
deleted file mode 100644
index b1fc9aa930..0000000000
--- a/sysdeps/unix/sysv/linux/i386/setuid.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1998-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-#include <linux/posix_types.h>
-
-
-int
-__setuid (uid_t uid)
-{
-  int result;
-
-  result = INLINE_SETXID_SYSCALL (setuid32, 1, uid);
-
-  return result;
-}
-#ifndef __setuid
-weak_alias (__setuid, setuid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/setegid.c b/sysdeps/unix/sysv/linux/m68k/setegid.c
deleted file mode 100644
index 2e3a54c893..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/seteuid.c b/sysdeps/unix/sysv/linux/m68k/seteuid.c
deleted file mode 100644
index 18e41d08c1..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setgid.c b/sysdeps/unix/sysv/linux/m68k/setgid.c
deleted file mode 100644
index 377021d9ec..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setgroups.c b/sysdeps/unix/sysv/linux/m68k/setgroups.c
deleted file mode 100644
index 0e7086278f..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type.  */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setregid.c b/sysdeps/unix/sysv/linux/m68k/setregid.c
deleted file mode 100644
index 99c57ad20f..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setresgid.c b/sysdeps/unix/sysv/linux/m68k/setresgid.c
deleted file mode 100644
index daca1a4833..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setresuid.c b/sysdeps/unix/sysv/linux/m68k/setresuid.c
deleted file mode 100644
index 3aeabe9ad7..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setreuid.c b/sysdeps/unix/sysv/linux/m68k/setreuid.c
deleted file mode 100644
index 8ad61226e9..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/setuid.c b/sysdeps/unix/sysv/linux/m68k/setuid.c
deleted file mode 100644
index de394379be..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/setuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
diff --git a/sysdeps/unix/sysv/linux/microblaze/setgroups.c b/sysdeps/unix/sysv/linux/microblaze/setgroups.c
deleted file mode 100644
index cb9a7708e3..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/setgroups.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setegid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setegid.c
deleted file mode 100644
index 2e3a54c893..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c b/sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c
deleted file mode 100644
index 18e41d08c1..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setgid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setgid.c
deleted file mode 100644
index 377021d9ec..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c b/sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c
deleted file mode 100644
index 0e7086278f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type.  */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setregid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setregid.c
deleted file mode 100644
index 99c57ad20f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c
deleted file mode 100644
index daca1a4833..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c
deleted file mode 100644
index 3aeabe9ad7..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c
deleted file mode 100644
index 8ad61226e9..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setuid.c b/sysdeps/unix/sysv/linux/s390/s390-32/setuid.c
deleted file mode 100644
index c8fa23e354..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setuid.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
-
diff --git a/sysdeps/unix/sysv/linux/setegid.c b/sysdeps/unix/sysv/linux/setegid.c
index 62ca4ef90f..7d08027762 100644
--- a/sysdeps/unix/sysv/linux/setegid.c
+++ b/sysdeps/unix/sysv/linux/setegid.c
@@ -26,10 +26,7 @@ setegid (gid_t gid)
   int result;
 
   if (gid == (gid_t) ~0)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
+    return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
 
 #ifdef __NR_setresgid32
   result = INLINE_SETXID_SYSCALL (setresgid32, 3, -1, gid, -1);
diff --git a/sysdeps/unix/sysv/linux/seteuid.c b/sysdeps/unix/sysv/linux/seteuid.c
index 469bc9ae23..ece0f45ce5 100644
--- a/sysdeps/unix/sysv/linux/seteuid.c
+++ b/sysdeps/unix/sysv/linux/seteuid.c
@@ -26,10 +26,7 @@ seteuid (uid_t uid)
   int result;
 
   if (uid == (uid_t) ~0)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
+    return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
 
 #ifdef __NR_setresuid32
   result = INLINE_SETXID_SYSCALL (setresuid32, 3, -1, uid, -1);
diff --git a/sysdeps/unix/sysv/linux/setgid.c b/sysdeps/unix/sysv/linux/setgid.c
index 401f998c6d..59aaa10153 100644
--- a/sysdeps/unix/sysv/linux/setgid.c
+++ b/sysdeps/unix/sysv/linux/setgid.c
@@ -23,7 +23,11 @@
 int
 __setgid (gid_t gid)
 {
+#ifdef __NR_setgid32
+  return INLINE_SETXID_SYSCALL (setgid32, 1, gid);
+#else
   return INLINE_SETXID_SYSCALL (setgid, 1, gid);
+#endif
 }
 #ifndef __setgid
 weak_alias (__setgid, setgid)
diff --git a/sysdeps/unix/sysv/linux/setgroups.c b/sysdeps/unix/sysv/linux/setgroups.c
index 25fad17cdd..c556ebbbfe 100644
--- a/sysdeps/unix/sysv/linux/setgroups.c
+++ b/sysdeps/unix/sysv/linux/setgroups.c
@@ -28,8 +28,9 @@ int
 setgroups (size_t n, const gid_t *groups)
 {
 #ifdef __NR_setgroups32
-# error "wrong setgroups.c file used"
-#endif
+  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, groups);
+#else
   return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups);
+#endif
 }
 libc_hidden_def (setgroups)
diff --git a/sysdeps/unix/sysv/linux/setregid.c b/sysdeps/unix/sysv/linux/setregid.c
index c48e5240ef..b50842b7c0 100644
--- a/sysdeps/unix/sysv/linux/setregid.c
+++ b/sysdeps/unix/sysv/linux/setregid.c
@@ -23,7 +23,11 @@
 int
 __setregid (gid_t rgid, gid_t egid)
 {
+#ifdef __NR_setregid32
+  return INLINE_SETXID_SYSCALL (setregid32, 2, rgid, egid);
+#else
   return INLINE_SETXID_SYSCALL (setregid, 2, rgid, egid);
+#endif
 }
 #ifndef __setregid
 weak_alias (__setregid, setregid)
diff --git a/sysdeps/unix/sysv/linux/setresgid.c b/sysdeps/unix/sysv/linux/setresgid.c
index d3496c2904..1e9a9b7ec6 100644
--- a/sysdeps/unix/sysv/linux/setresgid.c
+++ b/sysdeps/unix/sysv/linux/setresgid.c
@@ -23,7 +23,11 @@
 int
 __setresgid (gid_t rgid, gid_t egid, gid_t sgid)
 {
+#ifdef __NR_setresgid32
+  return INLINE_SETXID_SYSCALL (setresgid32, 3, rgid, egid, sgid);
+#else
   return INLINE_SETXID_SYSCALL (setresgid, 3, rgid, egid, sgid);
+#endif
 }
 libc_hidden_def (__setresgid)
 #ifndef __setresgid
diff --git a/sysdeps/unix/sysv/linux/setresuid.c b/sysdeps/unix/sysv/linux/setresuid.c
index 0f582f495f..3d3faa9e39 100644
--- a/sysdeps/unix/sysv/linux/setresuid.c
+++ b/sysdeps/unix/sysv/linux/setresuid.c
@@ -23,7 +23,11 @@
 int
 __setresuid (uid_t ruid, uid_t euid, uid_t suid)
 {
+#ifdef __NR_setresuid32
+  return INLINE_SETXID_SYSCALL (setresuid32, 3, ruid, euid, suid);
+#else
   return INLINE_SETXID_SYSCALL (setresuid, 3, ruid, euid, suid);
+#endif
 }
 libc_hidden_def (__setresuid)
 #ifndef __setresuid
diff --git a/sysdeps/unix/sysv/linux/setreuid.c b/sysdeps/unix/sysv/linux/setreuid.c
index 377f5e589c..5cc68ae28d 100644
--- a/sysdeps/unix/sysv/linux/setreuid.c
+++ b/sysdeps/unix/sysv/linux/setreuid.c
@@ -23,7 +23,11 @@
 int
 __setreuid (uid_t ruid, uid_t euid)
 {
+#ifdef __NR_setreuid32
+  return INLINE_SETXID_SYSCALL (setreuid32, 2, ruid, euid);
+#else
   return INLINE_SETXID_SYSCALL (setreuid, 2, ruid, euid);
+#endif
 }
 #ifndef __setreuid
 weak_alias (__setreuid, setreuid)
diff --git a/sysdeps/unix/sysv/linux/setuid.c b/sysdeps/unix/sysv/linux/setuid.c
index 6308e1ab07..2d0775279f 100644
--- a/sysdeps/unix/sysv/linux/setuid.c
+++ b/sysdeps/unix/sysv/linux/setuid.c
@@ -22,7 +22,11 @@
 int
 __setuid (uid_t uid)
 {
+#ifdef __NR_setuid32
+  return INLINE_SETXID_SYSCALL (setuid32, 1, uid);
+#else
   return INLINE_SETXID_SYSCALL (setuid, 1, uid);
+#endif
 }
 #ifndef __setuid
 weak_alias (__setuid, setuid)
diff --git a/sysdeps/unix/sysv/linux/sh/setegid.c b/sysdeps/unix/sysv/linux/sh/setegid.c
deleted file mode 100644
index 2e3a54c893..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/seteuid.c b/sysdeps/unix/sysv/linux/sh/seteuid.c
deleted file mode 100644
index 18e41d08c1..0000000000
--- a/sysdeps/unix/sysv/linux/sh/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setgid.c b/sysdeps/unix/sysv/linux/sh/setgid.c
deleted file mode 100644
index 377021d9ec..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setgroups.c b/sysdeps/unix/sysv/linux/sh/setgroups.c
deleted file mode 100644
index 0e7086278f..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type.  */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setregid.c b/sysdeps/unix/sysv/linux/sh/setregid.c
deleted file mode 100644
index 99c57ad20f..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setresgid.c b/sysdeps/unix/sysv/linux/sh/setresgid.c
deleted file mode 100644
index daca1a4833..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setresuid.c b/sysdeps/unix/sysv/linux/sh/setresuid.c
deleted file mode 100644
index 3aeabe9ad7..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setreuid.c b/sysdeps/unix/sysv/linux/sh/setreuid.c
deleted file mode 100644
index 8ad61226e9..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/setuid.c b/sysdeps/unix/sysv/linux/sh/setuid.c
deleted file mode 100644
index de394379be..0000000000
--- a/sysdeps/unix/sysv/linux/sh/setuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c
deleted file mode 100644
index 2e3a54c893..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c
deleted file mode 100644
index 18e41d08c1..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c
deleted file mode 100644
index 377021d9ec..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c
deleted file mode 100644
index 0e7086278f..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type.  */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c
deleted file mode 100644
index 99c57ad20f..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c
deleted file mode 100644
index daca1a4833..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c
deleted file mode 100644
index 3aeabe9ad7..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c
deleted file mode 100644
index 8ad61226e9..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c b/sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c
deleted file mode 100644
index de394379be..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>