about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog63
-rw-r--r--ports/ChangeLog.arm7
-rw-r--r--ports/ChangeLog.ia649
-rw-r--r--ports/ChangeLog.m68k6
-rw-r--r--ports/ChangeLog.mips16
-rw-r--r--ports/sysdeps/ia64/memchr.S3
-rw-r--r--ports/sysdeps/m68k/memchr.S3
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/truncate64.c3
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/umount.c3
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c3
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c7
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c3
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c3
-rw-r--r--sysdeps/generic/bp-checks.h16
-rw-r--r--sysdeps/i386/memchr.S3
-rw-r--r--sysdeps/sparc/sparc32/memchr.S3
-rw-r--r--sysdeps/sparc/sparc64/memchr.S3
-rw-r--r--sysdeps/unix/sysv/linux/execve.c31
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat.c10
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c6
-rw-r--r--sysdeps/unix/sysv/linux/getcwd.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/chown.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/fchownat.c7
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstatat.c10
-rw-r--r--sysdeps/unix/sysv/linux/i386/lchown.c3
-rw-r--r--sysdeps/unix/sysv/linux/i386/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/chown.c3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/lchown.c3
-rw-r--r--sysdeps/unix/sysv/linux/sh/chown.c3
-rw-r--r--sysdeps/unix/sysv/linux/truncate64.c3
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/xmknod.c4
-rw-r--r--sysdeps/unix/sysv/linux/xmknodat.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstat.c5
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c2
39 files changed, 143 insertions, 130 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c19491bdd..eb92349f16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,66 @@
+2013-02-04  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13550]
+	* sysdeps/generic/bp-checks.h [__BOUNDED_POINTERS__]
+	(__ubp_memchr): Remove prototype.
+	[__BOUNDED_POINTERS__] (_CHECK_STRING): Remove macro.
+	[__BOUNDED_POINTERS__] (CHECK_STRING): Likewise.
+	[__BOUNDED_POINTERS__] (CHECK_STRING_NULL_OK): Likewise.
+	[!__BOUNDED_POINTERS__] (CHECK_STRING): Likewise.
+	* sysdeps/i386/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
+	Remove alias.
+	* sysdeps/sparc/sparc32/memchr.S [!__BOUNDED_POINTERS__]
+	(__ubp_memchr): Likewise.
+	* sysdeps/sparc/sparc64/memchr.S [!__BOUNDED_POINTERS__]
+	(__ubp_memchr): Likewise.
+	* sysdeps/unix/sysv/linux/execve.c: Do not include <bp-checks.h>.
+	(__execve) [__BOUNDED_POINTERS__]: Remove conditional code.
+	(__execve) [!__BOUNDED_POINTERS__]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/fxstatat.c (__fxstatat): Do not use
+	CHECK_STRING.
+	* sysdeps/unix/sysv/linux/fxstatat64.c (__fxstatat64): Likewise.
+	* sysdeps/unix/sysv/linux/getcwd.c: Do not include <bp-checks.h>.
+	(__getcwd): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/i386/chown.c: Do not include
+	<bp-checks.h>.
+	(__real_chown): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/i386/fchownat.c: Do not include
+	<bp-checks.h>.
+	(fchownat): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/i386/fxstatat.c (__fxstatat): Do not use
+	CHECK_STRING.
+	* sysdeps/unix/sysv/linux/i386/lchown.c: Do not include
+	<bp-checks.h>.
+	(__lchown): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/i386/lxstat.c (__lxstat): Likewise.
+	* sysdeps/unix/sysv/linux/i386/xstat.c (__xstat): Likewise.
+	* sysdeps/unix/sysv/linux/lxstat.c (__lxstat): Likewise.
+	* sysdeps/unix/sysv/linux/lxstat64.c (___lxstat64): Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: Do not
+	include <bp-checks.h>.
+	(truncate64): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Do not include
+	<bp-checks.h>.
+	(__real_chown): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Do not include
+	<bp-checks.h>.
+	(__lchown): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/sh/chown.c: Do not include
+	<bp-checks.h>.
+	(__chown): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/truncate64.c: Do not include
+	<bp-checks.h>.
+	(truncate64): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/wordsize-64/lxstat.c (__lxstat):
+	Likewise.
+	* sysdeps/unix/sysv/linux/xmknod.c: Do not include <bp-checks.h>.
+	(__xmknod): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/xmknodat.c: Do not include
+	<bp-checks.h>.
+	(__xmknodat): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/xstat.c (__xstat): Likewise.
+	* sysdeps/unix/sysv/linux/xstat64.c (___xstat64): Likewise.
+
 2013-02-04  Andreas Schwab  <schwab@suse.de>
 
 	[BZ #14142]
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index d44ea76244..b4fb546d96 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,10 @@
+2013-02-04  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13550]
+	* sysdeps/unix/sysv/linux/arm/truncate64.c: Do not include
+	<bp-checks.h>.
+	(truncate64): Do not use CHECK_STRING.
+
 2013-01-02  Joseph Myers  <joseph@codesourcery.com>
 
 	* All files with FSF copyright notices: Update copyright dates
diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64
index 4b76b4f6bf..3b00dafe85 100644
--- a/ports/ChangeLog.ia64
+++ b/ports/ChangeLog.ia64
@@ -1,3 +1,12 @@
+2013-02-04  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13550]
+	* sysdeps/ia64/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
+	Remove alias.
+	* sysdeps/unix/sysv/linux/ia64/umount.c: Do not include
+	<bp-checks.h>.
+	(umount): Do not use CHECK_STRING.
+
 2013-01-31  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #13550]
diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k
index 688cce431a..3c2dd00892 100644
--- a/ports/ChangeLog.m68k
+++ b/ports/ChangeLog.m68k
@@ -1,3 +1,9 @@
+2013-02-04  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13550]
+	* sysdeps/m68k/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
+	Remove alias.
+
 2013-01-20  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update.
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 49a3938314..65d420673f 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,19 @@
+2013-02-04  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13550]
+	* sysdeps/unix/sysv/linux/mips/mips32/truncate64.c: Do not include
+	<bp-checks.h>.
+	(truncate64): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c: Do not include
+	<bp-checks.h>.
+	(__fxstatat64): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c: Do not include
+	<bp-checks.h>.
+	(__lxstat64): Do not use CHECK_STRING.
+	* sysdeps/unix/sysv/linux/mips/mips64/xstat64.c: Do not include
+	<bp-checks.h>.
+	(__xstat64): Do not use CHECK_STRING.
+
 2013-01-31  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #13550]
diff --git a/ports/sysdeps/ia64/memchr.S b/ports/sysdeps/ia64/memchr.S
index f23a41cb76..6102644071 100644
--- a/ports/sysdeps/ia64/memchr.S
+++ b/ports/sysdeps/ia64/memchr.S
@@ -154,7 +154,4 @@ ENTRY(__memchr)
 END(__memchr)
 
 weak_alias (__memchr, memchr)
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
 libc_hidden_builtin_def (memchr)
diff --git a/ports/sysdeps/m68k/memchr.S b/ports/sysdeps/m68k/memchr.S
index a15ebded00..07b102523d 100644
--- a/ports/sysdeps/m68k/memchr.S
+++ b/ports/sysdeps/m68k/memchr.S
@@ -304,7 +304,4 @@ L(L9:)
 END(__memchr)
 
 weak_alias (__memchr, memchr)
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
 libc_hidden_builtin_def (memchr)
diff --git a/ports/sysdeps/unix/sysv/linux/arm/truncate64.c b/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
index 4367d1efee..6e52e32637 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
+++ b/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
@@ -22,7 +22,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Truncate the file FD refers to to LENGTH bytes.  */
 int
@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
 {
   unsigned int low = length & 0xffffffff;
   unsigned int high = length >> 32;
-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
+  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
 			       __LONG_LONG_PAIR (high, low));
   return result;
 }
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/umount.c b/ports/sysdeps/unix/sysv/linux/ia64/umount.c
index a15a716869..a3df7863fa 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/umount.c
+++ b/ports/sysdeps/unix/sysv/linux/ia64/umount.c
@@ -20,11 +20,10 @@
 #include <errno.h>
 
 #include <sysdep.h>
-#include <bp-checks.h>
 
 /* Unmount a filesystem.  */
 int
 umount (const char *special_file)
 {
-  return INLINE_SYSCALL (umount, 2, CHECK_STRING (special_file), 0);
+  return INLINE_SYSCALL (umount, 2, special_file, 0);
 }
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c b/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
index 4367d1efee..6e52e32637 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
@@ -22,7 +22,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Truncate the file FD refers to to LENGTH bytes.  */
 int
@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
 {
   unsigned int low = length & 0xffffffff;
   unsigned int high = length >> 32;
-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
+  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
 			       __LONG_LONG_PAIR (high, low));
   return result;
 }
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
index 32571e717d..42c9f5c404 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
@@ -25,7 +25,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <kernel-features.h>
 
@@ -96,11 +95,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
     }
 
   if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
+    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
   else
-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
+    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
 
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     return __xstat64_conv (vers, &kst, st);
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
index 106271f759..fdaa755837 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -23,7 +23,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <xstatconv.h>
 
@@ -34,7 +33,7 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
   int result;
   struct kernel_stat kbuf;
 
-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
+  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
   if (result == 0)
     result = __xstat64_conv (vers, &kbuf, buf);
 
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
index 2408e5e374..c6d8b5e798 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -23,7 +23,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <xstatconv.h>
 
@@ -35,7 +34,7 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
   int result;
   struct kernel_stat kbuf;
 
-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
+  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
   if (result == 0)
     result = __xstat64_conv (vers, &kbuf, buf);
 
diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
index cfff9155ec..13d00caf48 100644
--- a/sysdeps/generic/bp-checks.h
+++ b/sysdeps/generic/bp-checks.h
@@ -41,16 +41,6 @@
     && BOUNDS_VIOLATED),				\
    __ptrvalue (ARG))
 
-extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
-
-# define _CHECK_STRING(ARG, COND)				\
-  (((COND)							\
-    && (__ptrvalue (ARG) < __ptrlow (ARG)			\
-	|| !__ubp_memchr (__ptrvalue (ARG), '\0',			\
-		      (__ptrhigh (ARG) - __ptrvalue (ARG))))	\
-    && BOUNDS_VIOLATED),					\
-   __ptrvalue (ARG))
-
 /* Check bounds of a pointer seated to an array of N objects.  */
 # define CHECK_N(ARG, N) _CHECK_N ((ARG), (N), 1)
 /* Same as CHECK_N, but tolerate ARG == NULL.  */
@@ -61,11 +51,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
 /* Same as CHECK_1, but tolerate ARG == NULL.  */
 # define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1)
 
-/* Check for NUL-terminator within string's bounds.  */
-# define CHECK_STRING(ARG) _CHECK_STRING ((ARG), 1)
-/* Same as CHECK_STRING, but tolerate ARG == NULL.  */
-# define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
-
 #else /* !__BOUNDED_POINTERS__ */
 
 /* Do nothing if not compiling with -fbounded-pointers.  */
@@ -77,7 +62,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
 # define CHECK_1_NULL_OK(ARG) (ARG)
 # define CHECK_N(ARG, N) (ARG)
 # define CHECK_N_NULL_OK(ARG, N) (ARG)
-# define CHECK_STRING(ARG) (ARG)
 
 #endif /* !__BOUNDED_POINTERS__ */
 
diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
index 53cba10097..b9bb88a457 100644
--- a/sysdeps/i386/memchr.S
+++ b/sysdeps/i386/memchr.S
@@ -333,7 +333,4 @@ L(pop):	popl %edi		/* pop saved registers */
 END (BP_SYM (__memchr))
 
 weak_alias (BP_SYM (__memchr), BP_SYM (memchr))
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
 libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/sparc/sparc32/memchr.S b/sysdeps/sparc/sparc32/memchr.S
index 295005dd8b..7ea7825381 100644
--- a/sysdeps/sparc/sparc32/memchr.S
+++ b/sysdeps/sparc/sparc32/memchr.S
@@ -139,7 +139,4 @@ ENTRY(__memchr)
 END(__memchr)
 
 weak_alias (__memchr, memchr)
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
 libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S
index ee700b6e2b..0cd2573a07 100644
--- a/sysdeps/sparc/sparc64/memchr.S
+++ b/sysdeps/sparc/sparc64/memchr.S
@@ -256,7 +256,4 @@ ENTRY(__memchr)
 END(__memchr)
 
 weak_alias (__memchr, memchr)
-#if !__BOUNDED_POINTERS__
-weak_alias (__memchr, __ubp_memchr)
-#endif
 libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/unix/sysv/linux/execve.c b/sysdeps/unix/sysv/linux/execve.c
index 4aae3b4302..5ee5ecbe55 100644
--- a/sysdeps/unix/sysv/linux/execve.c
+++ b/sysdeps/unix/sysv/linux/execve.c
@@ -21,7 +21,8 @@
 #include <sysdep.h>
 #include <alloca.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
+
+/* Consider moving to syscalls.list.  */
 
 int
 __execve (file, argv, envp)
@@ -29,34 +30,6 @@ __execve (file, argv, envp)
      char *const argv[];
      char *const envp[];
 {
-#if __BOUNDED_POINTERS__
-  {
-    char *const *v;
-    int i;
-    char *__unbounded *__unbounded ubp_argv;
-    char *__unbounded *__unbounded ubp_envp;
-    char *__unbounded *__unbounded ubp_v;
-
-    for (v = argv; *v; v++)
-      ;
-    i = v - argv + 1;
-    ubp_argv = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_argv) * i);
-    for (v = argv, ubp_v = ubp_argv; --i; v++, ubp_v++)
-      *ubp_v = CHECK_STRING (*v);
-    *ubp_v = 0;
-
-    for (v = envp; *v; v++)
-      ;
-    i = v - envp + 1;
-    ubp_envp = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_envp) * i);
-    for (v = envp, ubp_v = ubp_envp; --i; v++, ubp_v++)
-      *ubp_v = CHECK_STRING (*v);
-    *ubp_v = 0;
-
-    return INLINE_SYSCALL (execve, 3, CHECK_STRING (file), ubp_argv, ubp_envp);
-  }
-#else
   return INLINE_SYSCALL (execve, 3, file, argv, envp);
-#endif
 }
 weak_alias (__execve, execve)
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
index 1cb4acfd2e..c0835bb68f 100644
--- a/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
@@ -109,10 +109,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
   if (vers == _STAT_VER_KERNEL)
     {
       if (flag & AT_SYMLINK_NOFOLLOW)
-	result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
+	result = INTERNAL_SYSCALL (lstat, err, 2, file,
 				   CHECK_1 ((struct kernel_stat *) st));
       else
-	result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
+	result = INTERNAL_SYSCALL (stat, err, 2, file,
 				   CHECK_1 ((struct kernel_stat *) st));
 
       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
@@ -126,11 +126,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
     }
 #else
   if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
+    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
   else
-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
+    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
 
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     return __xstat_conv (vers, &kst, st);
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index 4837b733ee..c81fe18822 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -99,11 +99,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
     }
 
   if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
-			       CHECK_1 (st));
+    result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st));
   else
-    result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
-			       CHECK_1 (st));
+    result = INTERNAL_SYSCALL (stat64, err, 2, file, CHECK_1 (st));
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     {
 # if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
index 72fb0c96ad..212b6b7a21 100644
--- a/sysdeps/unix/sysv/linux/getcwd.c
+++ b/sysdeps/unix/sysv/linux/getcwd.c
@@ -26,7 +26,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <kernel-features.h>
 
@@ -78,7 +77,7 @@ __getcwd (char *buf, size_t size)
 
   int retval;
 
-  retval = INLINE_SYSCALL (getcwd, 2, CHECK_STRING (path), alloc_size);
+  retval = INLINE_SYSCALL (getcwd, 2, path, alloc_size);
   if (retval >= 0)
     {
 #ifndef NO_ALLOCATION
diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c
index bb6d7009c3..94f294007e 100644
--- a/sysdeps/unix/sysv/linux/i386/chown.c
+++ b/sysdeps/unix/sysv/linux/i386/chown.c
@@ -21,7 +21,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 #include <shlib-compat.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 
@@ -45,7 +44,7 @@ extern int __real_chown (const char *__file, uid_t __owner, gid_t __group);
 int
 __real_chown (const char *file, uid_t owner, gid_t group)
 {
-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
+  return INLINE_SYSCALL (chown32, 3, file, owner, group);
 }
 
 
diff --git a/sysdeps/unix/sysv/linux/i386/fchownat.c b/sysdeps/unix/sysv/linux/i386/fchownat.c
index 8dab70022b..4a8288b378 100644
--- a/sysdeps/unix/sysv/linux/i386/fchownat.c
+++ b/sysdeps/unix/sysv/linux/i386/fchownat.c
@@ -24,7 +24,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 #include <shlib-compat.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 #include <kernel-features.h>
@@ -86,11 +85,9 @@ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
   INTERNAL_SYSCALL_DECL (err);
 
   if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lchown32, err, 3, CHECK_STRING (file), owner,
-			       group);
+    result = INTERNAL_SYSCALL (lchown32, err, 3, file, owner, group);
   else
-    result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
-			       group);
+    result = INTERNAL_SYSCALL (chown32, err, 3, file, owner, group);
 
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
     {
diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
index 866a6bc555..3f5420cf34 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -102,20 +102,18 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
   if (vers == _STAT_VER_KERNEL)
     {
       if (flag & AT_SYMLINK_NOFOLLOW)
-	result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
+	result = INTERNAL_SYSCALL (lstat, err, 2, file,
 				   CHECK_1 ((struct kernel_stat *) st));
       else
-	result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
+	result = INTERNAL_SYSCALL (stat, err, 2, file,
 				   CHECK_1 ((struct kernel_stat *) st));
       goto out;
     }
 
   if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&st64));
+    result = INTERNAL_SYSCALL (lstat64, err, 2, file, __ptrvalue (&st64));
   else
-    result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&st64));
+    result = INTERNAL_SYSCALL (stat64, err, 2, file, __ptrvalue (&st64));
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     return __xstat32_conv (vers, &st64, st);
 
diff --git a/sysdeps/unix/sysv/linux/i386/lchown.c b/sysdeps/unix/sysv/linux/i386/lchown.c
index 9357df4b49..0b7073c14a 100644
--- a/sysdeps/unix/sysv/linux/i386/lchown.c
+++ b/sysdeps/unix/sysv/linux/i386/lchown.c
@@ -20,7 +20,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 
@@ -29,7 +28,7 @@
 int
 __lchown (const char *file, uid_t owner, gid_t group)
 {
-  return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group);
+  return INLINE_SYSCALL (lchown32, 3, file, owner, group);
 }
 
 weak_alias (__lchown, lchown)
diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
index a3d42d49f4..b083afdd4d 100644
--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -41,12 +41,12 @@ __lxstat (int vers, const char *name, struct stat *buf)
   int result;
 
   if (vers == _STAT_VER_KERNEL)
-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
+    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
 
   {
     struct stat64 buf64;
 
-    result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
+    result = INLINE_SYSCALL (lstat64, 2, name, __ptrvalue (&buf64));
     if (result == 0)
       result = __xstat32_conv (vers, &buf64, buf);
     return result;
diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
index 4e7354aaa6..071f7fb972 100644
--- a/sysdeps/unix/sysv/linux/i386/xstat.c
+++ b/sysdeps/unix/sysv/linux/i386/xstat.c
@@ -41,12 +41,12 @@ __xstat (int vers, const char *name, struct stat *buf)
   int result;
 
   if (vers == _STAT_VER_KERNEL)
-    return INLINE_SYSCALL (stat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
+    return INLINE_SYSCALL (stat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
 
   {
     struct stat64 buf64;
 
-    result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
+    result = INLINE_SYSCALL (stat64, 2, name, __ptrvalue (&buf64));
     if (result == 0)
       result = __xstat32_conv (vers, &buf64, buf);
     return result;
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index 7abd2b45a0..f76e08191d 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -36,7 +36,7 @@ int
 __lxstat (int vers, const char *name, struct stat *buf)
 {
   if (vers == _STAT_VER_KERNEL)
-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name),
+    return INLINE_SYSCALL (lstat, 2, name,
 			   CHECK_1 ((struct kernel_stat *) buf));
 
 #ifdef STAT_IS_KERNEL_STAT
@@ -46,7 +46,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
   struct kernel_stat kbuf;
   int result;
 
-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
+  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
   if (result == 0)
     result = __xstat_conv (vers, &kbuf, buf);
 
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 12ab8202b3..c6199bb311 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -32,7 +32,7 @@ int
 ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
-  result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf));
+  result = INLINE_SYSCALL (lstat64, 2, name, CHECK_1 (buf));
 #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
     buf->st_ino = buf->__st_ino;
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
index 3146dde71f..c018cecdbc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
@@ -21,7 +21,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Truncate the file referenced by FD to LENGTH bytes.  */
 int
@@ -30,7 +29,7 @@ truncate64 (path, length)
      off64_t length;
 {
   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
+  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
 			       (long) (length >> 32),
 			       (long) length);
   return result;
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
index 408d24aae8..cd0cb743b5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
@@ -21,7 +21,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 #include <shlib-compat.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 
@@ -42,7 +41,7 @@
 int
 __real_chown (const char *file, uid_t owner, gid_t group)
 {
-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
+  return INLINE_SYSCALL (chown32, 3, file, owner, group);
 }
 
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c b/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
index 9357df4b49..0b7073c14a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
@@ -20,7 +20,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 
@@ -29,7 +28,7 @@
 int
 __lchown (const char *file, uid_t owner, gid_t group)
 {
-  return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group);
+  return INLINE_SYSCALL (lchown32, 3, file, owner, group);
 }
 
 weak_alias (__lchown, lchown)
diff --git a/sysdeps/unix/sysv/linux/sh/chown.c b/sysdeps/unix/sysv/linux/sh/chown.c
index 2714969368..853d48af8d 100644
--- a/sysdeps/unix/sysv/linux/sh/chown.c
+++ b/sysdeps/unix/sysv/linux/sh/chown.c
@@ -20,7 +20,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 #include <linux/posix_types.h>
 
@@ -29,7 +28,7 @@
 int
 __chown (const char *file, uid_t owner, gid_t group)
 {
-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
+  return INLINE_SYSCALL (chown32, 3, file, owner, group);
 }
 libc_hidden_def (__chown)
 weak_alias (__chown, chown)
diff --git a/sysdeps/unix/sysv/linux/truncate64.c b/sysdeps/unix/sysv/linux/truncate64.c
index 82c132782a..8c9e8488be 100644
--- a/sysdeps/unix/sysv/linux/truncate64.c
+++ b/sysdeps/unix/sysv/linux/truncate64.c
@@ -22,7 +22,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Truncate the file referenced by FD to LENGTH bytes.  */
 int
@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
 {
   unsigned int low = length & 0xffffffff;
   unsigned int high = length >> 32;
-  int result = INLINE_SYSCALL (truncate64, 3, CHECK_STRING (path),
+  int result = INLINE_SYSCALL (truncate64, 3, path,
 			       __LONG_LONG_PAIR (high, low));
   return result;
 }
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
index 4a34c84125..6a78d6ceb4 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
@@ -33,7 +33,7 @@ int
 __lxstat (int vers, const char *name, struct stat *buf)
 {
   if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf));
+    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 (buf));
 
   __set_errno (EINVAL);
   return -1;
diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
index 23c83ef241..154dc9a037 100644
--- a/sysdeps/unix/sysv/linux/xmknod.c
+++ b/sysdeps/unix/sysv/linux/xmknod.c
@@ -23,7 +23,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Create a device file named PATH, with permission and special bits MODE
    and device number DEV (which can be constructed from major and minor
@@ -47,8 +46,7 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
       return -1;
     }
 
-  return INLINE_SYSCALL (mknod, 3, CHECK_STRING (path), mode,
-			 (unsigned int) k_dev);
+  return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev);
 }
 
 weak_alias (__xmknod, _xmknod)
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
index 79f3e55bc4..8cb9021272 100644
--- a/sysdeps/unix/sysv/linux/xmknodat.c
+++ b/sysdeps/unix/sysv/linux/xmknodat.c
@@ -26,7 +26,6 @@
 #include <sysdep.h>
 #include <kernel-features.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 
 /* Create a device file named PATH relative to FD, with permission and
@@ -92,8 +91,7 @@ __xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
       file = buf;
     }
 
-  return INLINE_SYSCALL (mknod, 3, CHECK_STRING (file), mode,
-			 (unsigned int) k_dev);
+  return INLINE_SYSCALL (mknod, 3, file, mode, (unsigned int) k_dev);
 #endif
 }
 
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
index 07fbcd08e8..2cdceb5a09 100644
--- a/sysdeps/unix/sysv/linux/xstat.c
+++ b/sysdeps/unix/sysv/linux/xstat.c
@@ -36,7 +36,7 @@ int
 __xstat (int vers, const char *name, struct stat *buf)
 {
   if (vers == _STAT_VER_KERNEL)
-    return INLINE_SYSCALL (stat, 2, CHECK_STRING (name),
+    return INLINE_SYSCALL (stat, 2, name,
 			   CHECK_1 ((struct kernel_stat *) buf));
 
 #ifdef STAT_IS_KERNEL_STAT
@@ -46,8 +46,7 @@ __xstat (int vers, const char *name, struct stat *buf)
   struct kernel_stat kbuf;
   int result;
 
-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name),
-			   __ptrvalue (&kbuf));
+  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
   if (result == 0)
     result = __xstat_conv (vers, &kbuf, buf);
 
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index 061de1a4da..c9f32cc476 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -33,7 +33,7 @@ int
 ___xstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
-  result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), CHECK_1 (buf));
+  result = INLINE_SYSCALL (stat64, 2, name, CHECK_1 (buf));
 #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
     buf->st_ino = buf->__st_ino;