summaryrefslogtreecommitdiff
path: root/libc/sysdeps/unix/sysv
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/unix/sysv')
-rw-r--r--libc/sysdeps/unix/sysv/linux/aio_sigqueue.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/dl-sysdep.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/execve.c31
-rw-r--r--libc/sysdeps/unix/sysv/linux/fips-private.h2
-rw-r--r--libc/sysdeps/unix/sysv/linux/fxstat.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/fxstat64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/fxstatat.c15
-rw-r--r--libc/sysdeps/unix/sysv/linux/fxstatat64.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/gai_sigqueue.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/getcwd.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/getdents.c9
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/bp-thunks.h4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/brk.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/chown.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/clone.S18
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/fchownat.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/fxstat.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/fxstatat.c15
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/getgroups.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/getresgid.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/getresuid.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/lchown.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/lxstat.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/mmap64.S12
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/msgctl.c14
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S8
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/semctl.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/semtimedop.S8
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/setgroups.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/setrlimit.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/shmctl.c10
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/sigaction.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/sysdep.h2
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/xstat.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/kernel-features.h5
-rw-r--r--libc/sysdeps/unix/sysv/linux/llseek.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/lxstat.c6
-rw-r--r--libc/sysdeps/unix/sysv/linux/lxstat64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/mmap64.c9
-rw-r--r--libc/sysdeps/unix/sysv/linux/msgctl.c20
-rw-r--r--libc/sysdeps/unix/sysv/linux/msgrcv.c11
-rw-r--r--libc/sysdeps/unix/sysv/linux/msgsnd.c6
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c36
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S9
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S11
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/pread.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/pread64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/ptrace.c75
-rw-r--r--libc/sysdeps/unix/sysv/linux/pwrite.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/pwrite64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/readv.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/gettimeofday.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/semctl.c21
-rw-r--r--libc/sysdeps/unix/sysv/linux/semop.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/semtimedop.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/chown.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/pread.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/pread64.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/pwrite.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/pwrite64.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/shmat.c18
-rw-r--r--libc/sysdeps/unix/sysv/linux/shmctl.c18
-rw-r--r--libc/sysdeps/unix/sysv/linux/shmdt.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigaction.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigpending.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigprocmask.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigqueue.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigsuspend.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigtimedwait.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigwait.c6
-rw-r--r--libc/sysdeps/unix/sysv/linux/sigwaitinfo.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c6
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/sysctl.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/truncate64.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/ulimit.c91
-rw-r--r--libc/sysdeps/unix/sysv/linux/ustat.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/wordsize-64/xstat.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/writev.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86/bits/wchar.h32
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/clone.S8
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/sigpending.c3
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/sysdep.h2
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist3
-rw-r--r--libc/sysdeps/unix/sysv/linux/xmknod.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/xmknodat.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/xstat.c7
-rw-r--r--libc/sysdeps/unix/sysv/linux/xstat64.c3
120 files changed, 259 insertions, 633 deletions
diff --git a/libc/sysdeps/unix/sysv/linux/aio_sigqueue.c b/libc/sysdeps/unix/sysv/linux/aio_sigqueue.c
index 1cd5802d7..9af05e86a 100644
--- a/libc/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/libc/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -47,8 +47,7 @@ __aio_sigqueue (sig, val, caller_pid)
info.si_uid = getuid ();
info.si_value = val;
- return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid,
- sig, __ptrvalue (&info));
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
}
#else
# include <rt/aio_sigqueue.c>
diff --git a/libc/sysdeps/unix/sysv/linux/dl-sysdep.c b/libc/sysdeps/unix/sysv/linux/dl-sysdep.c
index a4ca119d8..e80cb8d9f 100644
--- a/libc/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/libc/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -43,7 +43,7 @@ int
attribute_hidden
_dl_discover_osversion (void)
{
-#if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
+#if defined NEED_DL_SYSINFO_DSO && defined SHARED
if (GLRO(dl_sysinfo_map) != NULL)
{
/* If the kernel-supplied DSO contains a note indicating the kernel's
diff --git a/libc/sysdeps/unix/sysv/linux/execve.c b/libc/sysdeps/unix/sysv/linux/execve.c
index 4aae3b430..5ee5ecbe5 100644
--- a/libc/sysdeps/unix/sysv/linux/execve.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/fips-private.h b/libc/sysdeps/unix/sysv/linux/fips-private.h
index ceae4891c..271dca3e5 100644
--- a/libc/sysdeps/unix/sysv/linux/fips-private.h
+++ b/libc/sysdeps/unix/sysv/linux/fips-private.h
@@ -29,7 +29,7 @@
/* Return true if FIPS mode is enabled. See
sysdeps/generic/fips-private.h for more information. */
-static inline bool
+static bool
fips_enabled_p (void)
{
static enum
diff --git a/libc/sysdeps/unix/sysv/linux/fxstat.c b/libc/sysdeps/unix/sysv/linux/fxstat.c
index d2dd10910..3623fdf1c 100644
--- a/libc/sysdeps/unix/sysv/linux/fxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/fxstat.c
@@ -28,7 +28,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <xstatconv.h>
@@ -37,7 +36,7 @@ int
__fxstat (int vers, int fd, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL)
- return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
+ return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT
errno = EINVAL;
@@ -46,7 +45,7 @@ __fxstat (int vers, int fd, struct stat *buf)
struct kernel_stat kbuf;
int result;
- result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
+ result = INLINE_SYSCALL (fstat, 2, fd, &kbuf);
if (result == 0)
result = __xstat_conv (vers, &kbuf, buf);
diff --git a/libc/sysdeps/unix/sysv/linux/fxstat64.c b/libc/sysdeps/unix/sysv/linux/fxstat64.c
index a13beeba5..3cb1c3503 100644
--- a/libc/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/libc/sysdeps/unix/sysv/linux/fxstat64.c
@@ -23,7 +23,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -33,7 +32,7 @@ int
___fxstat64 (int vers, int fd, struct stat64 *buf)
{
int result;
- result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
+ result = INLINE_SYSCALL (fstat64, 2, fd, 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/libc/sysdeps/unix/sysv/linux/fxstatat.c b/libc/sysdeps/unix/sysv/linux/fxstatat.c
index 1cb4acfd2..b8bd8a5c1 100644
--- a/libc/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/libc/sysdeps/unix/sysv/linux/fxstatat.c
@@ -29,7 +29,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
#include <xstatconv.h>
@@ -109,11 +108,11 @@ __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),
- CHECK_1 ((struct kernel_stat *) st));
+ result = INTERNAL_SYSCALL (lstat, err, 2, file,
+ (struct kernel_stat *) st);
else
- result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
- CHECK_1 ((struct kernel_stat *) st));
+ result = INTERNAL_SYSCALL (stat, err, 2, file,
+ (struct kernel_stat *) st);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return result;
@@ -126,11 +125,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, &kst);
else
- result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
- __ptrvalue (&kst));
+ result = INTERNAL_SYSCALL (stat, err, 2, file, &kst);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return __xstat_conv (vers, &kst, st);
diff --git a/libc/sysdeps/unix/sysv/linux/fxstatat64.c b/libc/sysdeps/unix/sysv/linux/fxstatat64.c
index 4837b733e..abd39ea90 100644
--- a/libc/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/libc/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -25,7 +25,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -99,11 +98,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, st);
else
- result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
- CHECK_1 (st));
+ result = INTERNAL_SYSCALL (stat64, err, 2, file, 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/libc/sysdeps/unix/sysv/linux/gai_sigqueue.c b/libc/sysdeps/unix/sysv/linux/gai_sigqueue.c
index 5097dc730..5c8cb4498 100644
--- a/libc/sysdeps/unix/sysv/linux/gai_sigqueue.c
+++ b/libc/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -47,8 +47,7 @@ __gai_sigqueue (sig, val, caller_pid)
info.si_uid = __getuid ();
info.si_value = val;
- return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid,
- sig, __ptrvalue (&info));
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
}
#else
# include <resolv/gai_sigqueue.c>
diff --git a/libc/sysdeps/unix/sysv/linux/getcwd.c b/libc/sysdeps/unix/sysv/linux/getcwd.c
index 72fb0c96a..212b6b7a2 100644
--- a/libc/sysdeps/unix/sysv/linux/getcwd.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/getdents.c b/libc/sysdeps/unix/sysv/linux/getdents.c
index eebdee8ec..2d588a602 100644
--- a/libc/sysdeps/unix/sysv/linux/getdents.c
+++ b/libc/sysdeps/unix/sysv/linux/getdents.c
@@ -28,7 +28,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <linux/posix_types.h>
@@ -109,7 +108,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
&& (offsetof (struct kernel_dirent, d_reclen)
== offsetof (struct dirent, d_reclen)))
{
- retval = INLINE_SYSCALL (getdents, 3, fd, CHECK_N(buf, nbytes), nbytes);
+ retval = INLINE_SYSCALL (getdents, 3, fd, buf, nbytes);
/* The kernel added the d_type value after the name. Change
this now. */
@@ -158,8 +157,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
- offsetof (DIRENT_TYPE, d_name);
kbuf = __alloca(kbytes);
}
- retval = INLINE_SYSCALL (getdents64, 3, fd, CHECK_N(kbuf, kbytes),
- kbytes);
+ retval = INLINE_SYSCALL (getdents64, 3, fd, kbuf, kbytes);
# ifndef __ASSUME_GETDENTS64_SYSCALL
if (retval != -1 || (errno != EINVAL && errno != ENOSYS))
# endif
@@ -255,8 +253,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
skdp = kdp = __alloca (red_nbytes);
- retval = INLINE_SYSCALL (getdents, 3, fd,
- CHECK_N ((char *) kdp, red_nbytes), red_nbytes);
+ retval = INLINE_SYSCALL (getdents, 3, fd, (char *) kdp, red_nbytes);
if (retval == -1)
return -1;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/bp-thunks.h b/libc/sysdeps/unix/sysv/linux/i386/bp-thunks.h
deleted file mode 100644
index 59a42ddef..000000000
--- a/libc/sysdeps/unix/sysv/linux/i386/bp-thunks.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef __ASSEMBLER__
-# include <sysdeps/generic/bp-thunks.h>
-# include <sys/vm86.h>
-#endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/brk.c b/libc/sysdeps/unix/sysv/linux/i386/brk.c
index eea4e02b0..880542a61 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/brk.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/brk.c
@@ -20,8 +20,6 @@
#include <unistd.h>
#include <sysdep.h>
-#include <bp-checks.h>
-
/* This must be initialized data because commons can't have aliases. */
void *__curbrk = 0;
@@ -33,11 +31,10 @@ weak_alias (__curbrk, ___brk_addr)
int
__brk (void *addr)
{
- void *__unbounded newbrk;
+ void *newbrk;
INTERNAL_SYSCALL_DECL (err);
- newbrk = (void *__unbounded) INTERNAL_SYSCALL (brk, err, 1,
- __ptrvalue (addr));
+ newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
__curbrk = newbrk;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/chown.c b/libc/sysdeps/unix/sysv/linux/i386/chown.c
index bb6d7009c..94f294007 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/chown.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/i386/clone.S b/libc/sysdeps/unix/sysv/linux/i386/clone.S
index 4df18c8be..dbd65d8da 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/clone.S
@@ -23,20 +23,18 @@
#define _ERRNO_H 1
#include <bits/errno.h>
#include <asm-syntax.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
-#define PARMS LINKAGE /* no space for saved regs */
+#define PARMS 4 /* no space for saved regs */
#define FUNC PARMS
#define STACK FUNC+4
-#define FLAGS STACK+PTR_SIZE
+#define FLAGS STACK+4
#define ARG FLAGS+4
-#define PTID ARG+PTR_SIZE
-#define TLS PTID+PTR_SIZE
-#define CTID TLS+PTR_SIZE
+#define PTID ARG+4
+#define TLS PTID+4
+#define CTID TLS+4
#define __NR_clone 120
#define SYS_clone 120
@@ -45,7 +43,7 @@
#define CLONE_THREAD 0x00010000
.text
-ENTRY (BP_SYM (__clone))
+ENTRY (__clone)
/* Sanity check arguments. */
movl $-EINVAL,%eax
movl FUNC(%esp),%ecx /* no NULL function pointers */
@@ -156,6 +154,6 @@ L(nomoregetpid):
cfi_endproc;
cfi_startproc
-PSEUDO_END (BP_SYM (__clone))
+PSEUDO_END (__clone)
-weak_alias (BP_SYM (__clone), BP_SYM (clone))
+weak_alias (__clone, clone)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/fchownat.c b/libc/sysdeps/unix/sysv/linux/i386/fchownat.c
index 8dab70022..4a8288b37 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/fchownat.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/i386/fxstat.c b/libc/sysdeps/unix/sysv/linux/i386/fxstat.c
index 0ab94f53d..4f34a4cef 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/fxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/fxstat.c
@@ -27,7 +27,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -40,12 +39,12 @@ __fxstat (int vers, int fd, struct stat *buf)
int result;
if (vers == _STAT_VER_KERNEL)
- return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
+ return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
{
struct stat64 buf64;
- result = INLINE_SYSCALL (fstat64, 2, fd, __ptrvalue (&buf64));
+ result = INLINE_SYSCALL (fstat64, 2, fd, &buf64);
if (result == 0)
result = __xstat32_conv (vers, &buf64, buf);
return result;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/fxstatat.c b/libc/sysdeps/unix/sysv/linux/i386/fxstatat.c
index 866a6bc55..7ecbbe089 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/fxstatat.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -29,7 +29,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -102,20 +101,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),
- CHECK_1 ((struct kernel_stat *) st));
+ result = INTERNAL_SYSCALL (lstat, err, 2, file,
+ (struct kernel_stat *) st);
else
- result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
- CHECK_1 ((struct kernel_stat *) st));
+ result = INTERNAL_SYSCALL (stat, err, 2, file,
+ (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, &st64);
else
- result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
- __ptrvalue (&st64));
+ result = INTERNAL_SYSCALL (stat64, err, 2, file, &st64);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return __xstat32_conv (vers, &st64, st);
diff --git a/libc/sysdeps/unix/sysv/linux/i386/getgroups.c b/libc/sysdeps/unix/sysv/linux/i386/getgroups.c
index c7e44fd03..7d85f8f39 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/getgroups.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/getgroups.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <linux/posix_types.h>
@@ -34,7 +33,7 @@
int
__getgroups (int n, gid_t *groups)
{
- return INLINE_SYSCALL (getgroups32, 2, n, CHECK_N (groups, n));
+ return INLINE_SYSCALL (getgroups32, 2, n, groups);
}
weak_alias (__getgroups, getgroups)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/getresgid.c b/libc/sysdeps/unix/sysv/linux/i386/getresgid.c
index e0b6999dd..bdc3b82b6 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/getresgid.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/getresgid.c
@@ -23,15 +23,13 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Consider moving to syscalls.list. */
int
__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
{
- return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid),
- CHECK_1 (egid), CHECK_1 (sgid));
+ return INLINE_SYSCALL (getresgid32, 3, rgid, egid, sgid);
}
libc_hidden_def (__getresgid)
weak_alias (__getresgid, getresgid)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/getresuid.c b/libc/sysdeps/unix/sysv/linux/i386/getresuid.c
index 5a06ad68d..49b330284 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/getresuid.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/getresuid.c
@@ -23,15 +23,13 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Consider moving to syscalls.list. */
int
__getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
{
- return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid),
- CHECK_1 (euid), CHECK_1 (suid));
+ return INLINE_SYSCALL (getresuid32, 3, ruid, euid, suid);
}
libc_hidden_def (__getresuid)
weak_alias (__getresuid, getresuid)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/lchown.c b/libc/sysdeps/unix/sysv/linux/i386/lchown.c
index 9357df4b4..0b7073c14 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/lchown.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/i386/lxstat.c b/libc/sysdeps/unix/sysv/linux/i386/lxstat.c
index a3d42d49f..8e595b1b5 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/lxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -27,7 +27,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -41,12 +40,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, (struct kernel_stat *) buf);
{
struct stat64 buf64;
- result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
+ result = INLINE_SYSCALL (lstat64, 2, name, &buf64);
if (result == 0)
result = __xstat32_conv (vers, &buf64, buf);
return result;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/mmap64.S b/libc/sysdeps/unix/sysv/linux/i386/mmap64.S
index 4f9c7856f..31a0f6782 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/mmap64.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/mmap64.S
@@ -16,8 +16,6 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
#include <kernel-features.h>
@@ -25,9 +23,9 @@
#define ENOSYS 38
#define SVRSP 16 /* saved register space */
-#define PARMS LINKAGE+SVRSP /* space for 4 saved regs */
+#define PARMS 4+SVRSP /* space for 4 saved regs */
#define ADDR PARMS
-#define LEN ADDR+PTR_SIZE
+#define LEN ADDR+4
#define PROT LEN+4
#define FLAGS PROT+4
#define FD FLAGS+4
@@ -35,7 +33,7 @@
#define OFFHI OFFLO+4
.text
-ENTRY (BP_SYM (__mmap64))
+ENTRY (__mmap64)
/* Save registers. */
pushl %ebp
@@ -115,6 +113,6 @@ L(einval):
movl $-EINVAL, %eax
jmp SYSCALL_ERROR_LABEL
-PSEUDO_END (BP_SYM (__mmap64))
+PSEUDO_END (__mmap64)
-weak_alias (BP_SYM (__mmap64), BP_SYM (mmap64))
+weak_alias (__mmap64, mmap64)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/msgctl.c b/libc/sysdeps/unix/sysv/linux/i386/msgctl.c
index 37cfcb6fc..e0af4e3e9 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/msgctl.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/msgctl.c
@@ -23,20 +23,19 @@
#include <sysdep.h>
#include <string.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <shlib-compat.h>
struct __old_msqid_ds
{
struct __old_ipc_perm msg_perm; /* structure describing operation permission */
- struct msg *__unbounded __msg_first; /* pointer to first message on queue */
- struct msg *__unbounded __msg_last; /* pointer to last message on queue */
+ struct msg *__msg_first; /* pointer to first message on queue */
+ struct msg *__msg_last; /* pointer to last message on queue */
__time_t msg_stime; /* time of last msgsnd command */
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
- struct wait_queue *__unbounded __wwait; /* ??? */
- struct wait_queue *__unbounded __rwait; /* ??? */
+ struct wait_queue *__wwait; /* ??? */
+ struct wait_queue *__rwait; /* ??? */
unsigned short int __msg_cbytes; /* current number of bytes on queue */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes; /* max number of bytes allowed on queue */
@@ -56,8 +55,7 @@ int
attribute_compat_text_section
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd, 0, CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
}
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
#endif
@@ -66,7 +64,7 @@ int
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
{
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
+ msqid, cmd | __IPC_64, 0, buf);
}
versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);
diff --git a/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
index 67d592959..3cb314ddf 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
@@ -1819,6 +1819,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_IO_adjust_wcolumn F
diff --git a/libc/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S b/libc/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
index 5f9de9d80..6c42c610f 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
@@ -16,15 +16,13 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
#define EINVAL 22
#define ENOSYS 38
#define EOVERFLOW 75
#define SVRSP 16 /* saved register space */
-#define PARMS LINKAGE+SVRSP /* space for 4 saved regs */
+#define PARMS 4+SVRSP /* space for 4 saved regs */
#define FD PARMS
#define OFFLO FD+4
#define OFFHI OFFLO+4
@@ -33,7 +31,7 @@
#define FLAGS LENHI+4
.text
-ENTRY (BP_SYM (__posix_fadvise64_l64))
+ENTRY (__posix_fadvise64_l64)
/* Save registers. */
pushl %ebp
@@ -81,7 +79,7 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
/* Successful; return the syscall's value. */
ret
-END (BP_SYM (__posix_fadvise64_l64))
+END (__posix_fadvise64_l64)
.section .text.compat, "ax"
ENTRY (__posix_fadvise64_l32)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/semctl.c b/libc/sysdeps/unix/sysv/linux/i386/semctl.c
index f3299eace..67e75a1c7 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/semctl.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/semctl.c
@@ -49,9 +49,6 @@ union semun
struct __old_semid_ds *__old_buf;
};
-#include <bp-checks.h>
-#include <bp-semctl.h> /* definition of CHECK_SEMCTL needs union semum */
-
/* Return identifier for array of NSEMS semaphores associated with
KEY. */
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
@@ -75,7 +72,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
va_end (ap);
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd));
+ &arg);
}
compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
#endif
@@ -94,7 +91,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
va_end (ap);
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
- CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
+ &arg);
}
versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
diff --git a/libc/sysdeps/unix/sysv/linux/i386/semtimedop.S b/libc/sysdeps/unix/sysv/linux/i386/semtimedop.S
index 01250f65e..35eb4a872 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/semtimedop.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/semtimedop.S
@@ -21,14 +21,14 @@
#define SYSOP_semtimedop 4
#define SVRSP 12 /* saved register space */
-#define PARMS LINKAGE+SVRSP /* space for 3 saved regs */
+#define PARMS 4+SVRSP /* space for 3 saved regs */
#define SEMID PARMS
#define SOPS SEMID+4
-#define NSOPS SOPS+PTR_SIZE
+#define NSOPS SOPS+4
#define TIMEOUT NSOPS+4
.text
-ENTRY (BP_SYM (semtimedop))
+ENTRY (semtimedop)
pushl %ebp
cfi_adjust_cfa_offset (4)
@@ -70,4 +70,4 @@ ENTRY (BP_SYM (semtimedop))
#ifdef PIC
.align 4
#endif
-PSEUDO_END (BP_SYM (semtimedop))
+PSEUDO_END (semtimedop)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/setgroups.c b/libc/sysdeps/unix/sysv/linux/i386/setgroups.c
index c0895a19b..701ce6ee7 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/setgroups.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/setgroups.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <setxid.h>
#include <linux/posix_types.h>
@@ -33,6 +32,6 @@
int
setgroups (size_t n, const gid_t *groups)
{
- return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
+ return INLINE_SETXID_SYSCALL (setgroups32, 2, n, groups);
}
libc_hidden_def (setgroups)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/setrlimit.c b/libc/sysdeps/unix/sysv/linux/i386/setrlimit.c
index cc1184710..0fe31e19d 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/setrlimit.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/setrlimit.c
@@ -22,17 +22,16 @@
#include <sysdep.h>
#include <sys/syscall.h>
#include <shlib-compat.h>
-#include <bp-checks.h>
extern int __new_setrlimit (enum __rlimit_resource resource,
- const struct rlimit *__unboundedrlimits);
+ const struct rlimit *rlimits);
/* Consider moving to syscalls.list. */
int
__new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
{
- return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits));
+ return INLINE_SYSCALL (setrlimit, 2, resource, rlimits);
}
weak_alias (__new_setrlimit, __setrlimit);
diff --git a/libc/sysdeps/unix/sysv/linux/i386/shmctl.c b/libc/sysdeps/unix/sysv/linux/i386/shmctl.c
index 15f055d84..8459dff32 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/shmctl.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/shmctl.c
@@ -24,7 +24,6 @@
#include <string.h>
#include <sys/syscall.h>
#include <bits/wordsize.h>
-#include <bp-checks.h>
#include <shlib-compat.h>
@@ -39,8 +38,8 @@ struct __old_shmid_ds
__ipc_pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
unsigned short int __shm_npages; /* size of segment (pages) */
- unsigned long int *__unbounded __shm_pages; /* array of ptrs to frames -> SHMMAX */
- struct vm_area_struct *__unbounded __attaches; /* descriptors for attaches */
+ unsigned long int *__shm_pages; /* array of ptrs to frames -> SHMMAX */
+ struct vm_area_struct *__attaches; /* descriptors for attaches */
};
struct __old_shminfo
@@ -63,8 +62,7 @@ int
attribute_compat_text_section
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,
- shmid, cmd, 0, CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
}
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
#endif
@@ -73,7 +71,7 @@ int
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,
- shmid, cmd | __IPC_64, 0, CHECK_1 (buf));
+ shmid, cmd | __IPC_64, 0, buf);
}
versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);
diff --git a/libc/sysdeps/unix/sysv/linux/i386/sigaction.c b/libc/sysdeps/unix/sysv/linux/i386/sigaction.c
index 6b70b1541..d2bac9122 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -72,8 +72,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
result = INLINE_SYSCALL (rt_sigaction, 4,
- sig, act ? __ptrvalue (&kact) : NULL,
- oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
+ sig, act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
if (oact && result >= 0)
{
diff --git a/libc/sysdeps/unix/sysv/linux/i386/sysdep.h b/libc/sysdeps/unix/sysv/linux/i386/sysdep.h
index 071da7140..684fe27d6 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/libc/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -21,8 +21,6 @@
/* There is some commonality. */
#include <sysdeps/unix/i386/sysdep.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
#include <dl-sysdep.h>
#include <tls.h>
diff --git a/libc/sysdeps/unix/sysv/linux/i386/xstat.c b/libc/sysdeps/unix/sysv/linux/i386/xstat.c
index 4e7354aaa..e2abe8bb9 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/xstat.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/xstat.c
@@ -27,7 +27,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -41,12 +40,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, (struct kernel_stat *) buf);
{
struct stat64 buf64;
- result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
+ result = INLINE_SYSCALL (stat64, 2, name, &buf64);
if (result == 0)
result = __xstat32_conv (vers, &buf64, buf);
return result;
diff --git a/libc/sysdeps/unix/sysv/linux/kernel-features.h b/libc/sysdeps/unix/sysv/linux/kernel-features.h
index 21eef4372..8fdff7e38 100644
--- a/libc/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/libc/sysdeps/unix/sysv/linux/kernel-features.h
@@ -187,6 +187,11 @@
# define __ASSUME_PWRITEV 1
#endif
+/* Support for FUTEX_*_REQUEUE_PI was added in 2.6.31. */
+#if __LINUX_KERNEL_VERSION >= 0x02061f
+# define __ASSUME_REQUEUE_PI 1
+#endif
+
/* Support for F_GETOWN_EX was introduced in 2.6.32. */
#if __LINUX_KERNEL_VERSION >= 0x020620
# define __ASSUME_F_GETOWN_EX 1
diff --git a/libc/sysdeps/unix/sysv/linux/llseek.c b/libc/sysdeps/unix/sysv/linux/llseek.c
index 4580b872f..a15be3024 100644
--- a/libc/sysdeps/unix/sysv/linux/llseek.c
+++ b/libc/sysdeps/unix/sysv/linux/llseek.c
@@ -32,7 +32,7 @@ __llseek (int fd, loff_t offset, int whence)
return (loff_t) (INLINE_SYSCALL (_llseek, 5, fd, (off_t) (offset >> 32),
(off_t) (offset & 0xffffffff),
- __ptrvalue (&retval), whence) ?: retval);
+ &retval, whence) ?: retval);
}
weak_alias (__llseek, llseek)
strong_alias (__llseek, __libc_lseek64)
diff --git a/libc/sysdeps/unix/sysv/linux/lxstat.c b/libc/sysdeps/unix/sysv/linux/lxstat.c
index 7abd2b45a..3a838918e 100644
--- a/libc/sysdeps/unix/sysv/linux/lxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/lxstat.c
@@ -27,7 +27,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <xstatconv.h>
@@ -36,8 +35,7 @@ int
__lxstat (int vers, const char *name, struct stat *buf)
{
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, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT
errno = EINVAL;
@@ -46,7 +44,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, &kbuf);
if (result == 0)
result = __xstat_conv (vers, &kbuf, buf);
diff --git a/libc/sysdeps/unix/sysv/linux/lxstat64.c b/libc/sysdeps/unix/sysv/linux/lxstat64.c
index 12ab8202b..de889966f 100644
--- a/libc/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/libc/sysdeps/unix/sysv/linux/lxstat64.c
@@ -23,7 +23,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -32,7 +31,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, 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/libc/sysdeps/unix/sysv/linux/mmap64.c b/libc/sysdeps/unix/sysv/linux/mmap64.c
index 7d94c1db9..175e4abba 100644
--- a/libc/sysdeps/unix/sysv/linux/mmap64.c
+++ b/libc/sysdeps/unix/sysv/linux/mmap64.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -54,14 +53,10 @@ __mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
return MAP_FAILED;
}
void *result;
- __ptrvalue (result) = (void *__unbounded)
- INLINE_SYSCALL (mmap2, 6, __ptrvalue (addr),
+ result = (void *)
+ INLINE_SYSCALL (mmap2, 6, addr,
len, prot, flags, fd,
(off_t) (offset >> MMAP2_PAGE_SHIFT));
-#if __BOUNDED_POINTERS__
- __ptrlow (result) = __ptrvalue (result);
- __ptrhigh (result) = __ptrvalue (result) + len;
-#endif
return result;
}
weak_alias (__mmap64, mmap64)
diff --git a/libc/sysdeps/unix/sysv/linux/msgctl.c b/libc/sysdeps/unix/sysv/linux/msgctl.c
index 4dc6b0887..0bbaf086c 100644
--- a/libc/sysdeps/unix/sysv/linux/msgctl.c
+++ b/libc/sysdeps/unix/sysv/linux/msgctl.c
@@ -24,20 +24,19 @@
#include <string.h>
#include <sys/syscall.h>
#include <shlib-compat.h>
-#include <bp-checks.h>
#include <kernel-features.h>
struct __old_msqid_ds
{
struct __old_ipc_perm msg_perm; /* structure describing operation permission */
- struct msg *__unbounded __msg_first; /* pointer to first message on queue */
- struct msg *__unbounded __msg_last; /* pointer to last message on queue */
+ struct msg *__msg_first; /* pointer to first message on queue */
+ struct msg *__msg_last; /* pointer to last message on queue */
__time_t msg_stime; /* time of last msgsnd command */
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
- struct wait_queue *__unbounded __wwait; /* ??? */
- struct wait_queue *__unbounded __rwait; /* ??? */
+ struct wait_queue *__wwait; /* ??? */
+ struct wait_queue *__rwait; /* ??? */
unsigned short int __msg_cbytes; /* current number of bytes on queue */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes; /* max number of bytes allowed on queue */
@@ -57,7 +56,7 @@ int
attribute_compat_text_section
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
}
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
#endif
@@ -67,7 +66,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
{
#if __ASSUME_IPC64 > 0
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
+ msqid, cmd | __IPC_64, 0, buf);
#else
switch (cmd) {
case MSG_STAT:
@@ -76,7 +75,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
break;
default:
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd, 0, CHECK_1 (buf));
+ msqid, cmd, 0, buf);
}
{
@@ -86,7 +85,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
/* Unfortunately there is no way how to find out for sure whether
we should use old or new msgctl. */
result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
+ msqid, cmd | __IPC_64, 0, buf);
if (result != -1 || errno != EINVAL)
return result;
@@ -104,8 +103,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
return -1;
}
}
- result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
- msqid, cmd, 0, __ptrvalue (&old));
+ result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, &old);
if (result != -1 && cmd != IPC_SET)
{
memset(buf, 0, sizeof(*buf));
diff --git a/libc/sysdeps/unix/sysv/linux/msgrcv.c b/libc/sysdeps/unix/sysv/linux/msgrcv.c
index f9b399ebd..7ec9b253b 100644
--- a/libc/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/libc/sysdeps/unix/sysv/linux/msgrcv.c
@@ -23,13 +23,11 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
-
/* Kludge to work around Linux' restriction of only up to five
arguments to a system call. */
struct ipc_kludge
{
- void *__unbounded msgp;
+ void *msgp;
long int msgtyp;
};
@@ -46,17 +44,16 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
fives parameters to a system call. */
struct ipc_kludge tmp;
- tmp.msgp = CHECK_N (msgp, msgsz);
+ tmp.msgp = msgp;
tmp.msgtyp = msgtyp;
if (SINGLE_THREAD_P)
- return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
- __ptrvalue (&tmp));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg, &tmp);
int oldtype = LIBC_CANCEL_ASYNC ();
ssize_t result = INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
- __ptrvalue (&tmp));
+ &tmp);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/msgsnd.c b/libc/sysdeps/unix/sysv/linux/msgsnd.c
index 853ea9174..556159b32 100644
--- a/libc/sysdeps/unix/sysv/linux/msgsnd.c
+++ b/libc/sysdeps/unix/sysv/linux/msgsnd.c
@@ -23,8 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
-
int
__libc_msgsnd (msqid, msgp, msgsz, msgflg)
int msqid;
@@ -34,12 +32,12 @@ __libc_msgsnd (msqid, msgp, msgsz, msgflg)
{
if (SINGLE_THREAD_P)
return INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
- msgflg, (void *) CHECK_N (msgp, msgsz));
+ msgflg, (void *) msgp);
int oldtype = LIBC_CANCEL_ASYNC ();
int result = INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
- msgflg, (void *) CHECK_N (msgp, msgsz));
+ msgflg, (void *) msgp);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
index 36512a0fc..f60748507 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
@@ -16,7 +16,6 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <bp-checks.h>
#include <stddef.h>
#include <sys/time.h>
#include <time.h>
@@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
struct timeval *tv;
struct timezone *tz;
{
- return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
+ return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
}
libc_hidden_def (__gettimeofday)
weak_alias (__gettimeofday, gettimeofday)
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
index c1794227b..ba3dc5a18 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -19,8 +19,6 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <sysdep.h>
-#include <bp-start.h>
-#include <bp-sym.h>
int __cache_line_size attribute_hidden;
@@ -34,43 +32,35 @@ int __cache_line_size attribute_hidden;
struct startup_info
{
- void *__unbounded sda_base;
+ void *sda_base;
int (*main) (int, char **, char **, void *);
int (*init) (int, char **, char **, void *);
void (*fini) (void);
};
int
-/* GKM FIXME: GCC: this should get __BP_ prefix by virtue of the
- BPs in the arglist of startup_info.main and startup_info.init. */
- BP_SYM (__libc_start_main) (int argc, char *__unbounded *__unbounded ubp_av,
- char *__unbounded *__unbounded ubp_ev,
- ElfW (auxv_t) * __unbounded auxvec,
- void (*rtld_fini) (void),
- struct startup_info *__unbounded stinfo,
- char *__unbounded *__unbounded stack_on_entry)
+__libc_start_main (int argc, char **argv,
+ char **ev,
+ ElfW (auxv_t) * auxvec,
+ void (*rtld_fini) (void),
+ struct startup_info *stinfo,
+ char **stack_on_entry)
{
-#if __BOUNDED_POINTERS__
- char **argv;
-#else
-# define argv ubp_av
-#endif
-
/* the PPC SVR4 ABI says that the top thing on the stack will
be a NULL pointer, so if not we assume that we're being called
as a statically-linked program by Linux... */
if (*stack_on_entry != NULL)
{
- char *__unbounded * __unbounded temp;
+ char **temp;
/* ...in which case, we have argc as the top thing on the
stack, followed by argv (NULL-terminated), envp (likewise),
and the auxilary vector. */
/* 32/64-bit agnostic load from stack */
- argc = *(long int *__unbounded) stack_on_entry;
- ubp_av = stack_on_entry + 1;
- ubp_ev = ubp_av + argc + 1;
+ argc = *(long int *) stack_on_entry;
+ argv = stack_on_entry + 1;
+ ev = argv + argc + 1;
#ifdef HAVE_AUX_VECTOR
- temp = ubp_ev;
+ temp = ev;
while (*temp != NULL)
++temp;
auxvec = (ElfW (auxv_t) *)++ temp;
@@ -100,7 +90,7 @@ int
break;
}
- return generic_start_main (stinfo->main, argc, ubp_av, auxvec,
+ return generic_start_main (stinfo->main, argc, argv, auxvec,
stinfo->init, stinfo->fini, rtld_fini,
stack_on_entry);
}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
index 2fc9fa237..eb27f42cd 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
@@ -19,13 +19,10 @@
#include <sysdep.h>
#define _ERRNO_H 1
#include <bits/errno.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
.comm __curbrk,4,4
.section ".text"
-ENTRY (BP_SYM (__brk))
- DISCARD_BOUNDS (r3) /* the bounds are meaningless, so toss 'em */
+ENTRY (__brk)
mflr r0
stwu r1,-16(r1)
cfi_adjust_cfa_offset (16)
@@ -50,6 +47,6 @@ ENTRY (BP_SYM (__brk))
blelr+
li r3,ENOMEM
b __syscall_error@local
-END (BP_SYM (__brk))
+END (__brk)
-weak_alias (BP_SYM (__brk), BP_SYM (brk))
+weak_alias (__brk, brk)
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index 197b85203..5790eff4c 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -20,8 +20,6 @@
#define _ERRNO_H 1
#include <bits/errno.h>
#include <kernel-features.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
#define CLONE_VM 0x00000100
#define CLONE_THREAD 0x00010000
@@ -35,10 +33,7 @@
int flags [r5], void *arg [r6], void *parent_tid [r7],
void *tls [r8], void *child_tid [r9]); */
-ENTRY (BP_SYM (__clone))
- /* GKM FIXME: add bounds checks, where sensible. */
- DISCARD_BOUNDS (r4)
- DISCARD_BOUNDS (r6)
+ENTRY (__clone)
/* Check for child_stack == NULL || fn == NULL. */
cmpwi cr0,r4,0
@@ -124,6 +119,6 @@ L(badargs):
b __syscall_error@local
cfi_startproc
-END (BP_SYM (__clone))
+END (__clone)
-weak_alias (BP_SYM (__clone), BP_SYM (clone))
+weak_alias (__clone, clone)
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
index 8e4595825..f27b48b3c 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
@@ -1781,6 +1781,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_IO_adjust_wcolumn F
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
index 3695d8fb9..619db3261 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -38,7 +37,7 @@ __libc_pread (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count,
0, offset >> 31, offset);
return result;
@@ -47,7 +46,7 @@ __libc_pread (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count,
0, offset >> 31, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
index 12e83aa95..75407b316 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -38,7 +37,7 @@ __libc_pread64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count,
0, (long) (offset >> 32),
(long) offset);
@@ -48,7 +47,7 @@ __libc_pread64 (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count,
0, (long) (offset >> 32),
(long) offset);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
index 005e24f96..e71c91b26 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -39,7 +38,7 @@ __libc_pwrite (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
0, offset >> 31, offset);
return result;
@@ -48,7 +47,7 @@ __libc_pwrite (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
0, offset >> 31, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
index f001c6e97..7094e93d3 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -38,7 +37,7 @@ __libc_pwrite64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
0, (long) (offset >> 32),
(long) offset);
@@ -48,7 +47,7 @@ __libc_pwrite64 (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
/* On PPC32 64bit values are aligned in odd/even register pairs. */
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
0, (long) (offset >> 32),
(long) offset);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
index 3146dde71..c018cecdb 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
index 8eaaccdfc..195b58757 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
@@ -87,6 +87,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.3
GLIBC_2.3 A
_Exit F
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
index 896a415d8..70f1d6c58 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -40,16 +39,14 @@ __libc_pread (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
index aaf18e5da..a11f6e31f 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -39,16 +38,14 @@ __libc_pread64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
index 9795756f2..0ccb0a98a 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -40,16 +39,14 @@ __libc_pwrite (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
index 65ddefd3c..6a8acb451 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -39,16 +38,14 @@ __libc_pwrite64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
- offset);
+ result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/pread.c b/libc/sysdeps/unix/sysv/linux/pread.c
index aa3ee6379..1494879ab 100644
--- a/libc/sysdeps/unix/sysv/linux/pread.c
+++ b/libc/sysdeps/unix/sysv/linux/pread.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -44,7 +43,7 @@ do_pread (int fd, void *buf, size_t count, off_t offset)
ssize_t result;
assert (sizeof (offset) == 4);
- result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 5, fd, buf, count,
__LONG_LONG_PAIR (offset >> 31, offset));
return result;
diff --git a/libc/sysdeps/unix/sysv/linux/pread64.c b/libc/sysdeps/unix/sysv/linux/pread64.c
index 36cb66b8b..be829ce3f 100644
--- a/libc/sysdeps/unix/sysv/linux/pread64.c
+++ b/libc/sysdeps/unix/sysv/linux/pread64.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -39,7 +38,7 @@ do_pread64 (int fd, void *buf, size_t count, off64_t offset)
{
ssize_t result;
- result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pread, 5, fd, buf, count,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
diff --git a/libc/sysdeps/unix/sysv/linux/ptrace.c b/libc/sysdeps/unix/sysv/linux/ptrace.c
index 926dfbd9e..3a6ca6c0e 100644
--- a/libc/sysdeps/unix/sysv/linux/ptrace.c
+++ b/libc/sysdeps/unix/sysv/linux/ptrace.c
@@ -24,7 +24,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
long int
ptrace (enum __ptrace_request request, ...)
@@ -43,79 +42,7 @@ ptrace (enum __ptrace_request request, ...)
if (request > 0 && request < 4)
data = &ret;
-#if __BOUNDED_POINTERS__
- switch (request)
- {
- case PTRACE_PEEKTEXT:
- case PTRACE_PEEKDATA:
- case PTRACE_PEEKUSER:
- case PTRACE_POKETEXT:
- case PTRACE_POKEDATA:
- case PTRACE_POKEUSER:
- (void) CHECK_1 ((int *) addr);
- (void) CHECK_1 ((int *) data);
- break;
-
- case PTRACE_GETREGS:
- case PTRACE_SETREGS:
-#ifdef __i386__
- (void) CHECK_1 ((struct user_regs_struct *) data);
-#else
- /* We don't know the size of data, so the best we can do is ensure
- that `data' is valid for at least one word. */
- (void) CHECK_1 ((int *) data);
-#endif
- break;
-
- case PTRACE_GETFPREGS:
- case PTRACE_SETFPREGS:
-#ifdef __i386__
- (void) CHECK_1 ((struct user_fpregs_struct *) data);
-#else
- /* We don't know the size of data, so the best we can do is ensure
- that `data' is valid for at least one word. */
- (void) CHECK_1 ((int *) data);
-#endif
- break;
-
- case PTRACE_GETFPXREGS:
- case PTRACE_SETFPXREGS:
-#ifdef __i386__
- (void) CHECK_1 ((struct user_fpxregs_struct *) data);
-#else
- /* We don't know the size of data, so the best we can do is ensure
- that `data' is valid for at least one word. */
- (void) CHECK_1 ((int *) data);
-#endif
- break;
-
- case PTRACE_GETSIGINFO:
- case PTRACE_SETSIGINFO:
- (void) CHECK_1 ((siginfo_t *) data);
- break;
-
- case PTRACE_GETEVENTMSG:
- (void) CHECK_1 ((unsigned long *) data);
- break;
-
- case PTRACE_SETOPTIONS:
- (void) CHECK_1 ((long *) data);
- break;
-
- case PTRACE_TRACEME:
- case PTRACE_CONT:
- case PTRACE_KILL:
- case PTRACE_SINGLESTEP:
- case PTRACE_ATTACH:
- case PTRACE_DETACH:
- case PTRACE_SYSCALL:
- /* Neither `data' nor `addr' needs any checks. */
- break;
- };
-#endif
-
- res = INLINE_SYSCALL (ptrace, 4, request, pid,
- __ptrvalue (addr), __ptrvalue (data));
+ res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, data);
if (res >= 0 && request > 0 && request < 4)
{
__set_errno (0);
diff --git a/libc/sysdeps/unix/sysv/linux/pwrite.c b/libc/sysdeps/unix/sysv/linux/pwrite.c
index 25147167d..5a31d17ed 100644
--- a/libc/sysdeps/unix/sysv/linux/pwrite.c
+++ b/libc/sysdeps/unix/sysv/linux/pwrite.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -44,7 +43,7 @@ do_pwrite (int fd, const void *buf, size_t count, off_t offset)
ssize_t result;
assert (sizeof (offset) == 4);
- result = INLINE_SYSCALL (pwrite, 5, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 5, fd, buf, count,
__LONG_LONG_PAIR (offset >> 31, offset));
return result;
diff --git a/libc/sysdeps/unix/sysv/linux/pwrite64.c b/libc/sysdeps/unix/sysv/linux/pwrite64.c
index f2a99b662..fb46e4ba5 100644
--- a/libc/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/libc/sysdeps/unix/sysv/linux/pwrite64.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -39,7 +38,7 @@ do_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
{
ssize_t result;
- result = INLINE_SYSCALL (pwrite, 5, fd, CHECK_N (buf, count), count,
+ result = INLINE_SYSCALL (pwrite, 5, fd, buf, count,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
diff --git a/libc/sysdeps/unix/sysv/linux/readv.c b/libc/sysdeps/unix/sysv/linux/readv.c
index efee11d4e..8bdb97a0b 100644
--- a/libc/sysdeps/unix/sysv/linux/readv.c
+++ b/libc/sysdeps/unix/sysv/linux/readv.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
#ifndef __ASSUME_COMPLETE_READV_WRITEV
@@ -47,12 +46,12 @@ __libc_readv (fd, vector, count)
ssize_t result;
if (SINGLE_THREAD_P)
- result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count);
+ result = INLINE_SYSCALL (readv, 3, fd, vector, count);
else
{
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count);
+ result = INLINE_SYSCALL (readv, 3, fd, vector, count);
LIBC_CANCEL_RESET (oldtype);
}
diff --git a/libc/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/libc/sysdeps/unix/sysv/linux/s390/gettimeofday.c
index 54c5e1d20..22df7282a 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/gettimeofday.c
+++ b/libc/sysdeps/unix/sysv/linux/s390/gettimeofday.c
@@ -16,7 +16,6 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <bp-checks.h>
#include <stddef.h>
#include <sys/time.h>
#include <time.h>
@@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
struct timeval *tv;
struct timezone *tz;
{
- return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
+ return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
}
libc_hidden_def (__gettimeofday)
weak_alias (__gettimeofday, gettimeofday)
diff --git a/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c b/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
index 408d24aae..cd0cb743b 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c b/libc/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
index 9357df4b4..0b7073c14 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
index d9914ff53..b6256d5c2 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
@@ -1771,6 +1771,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_IO_adjust_wcolumn F
diff --git a/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
index ef1ead306..265f66d90 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
@@ -92,6 +92,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_Exit F
diff --git a/libc/sysdeps/unix/sysv/linux/semctl.c b/libc/sysdeps/unix/sysv/linux/semctl.c
index 40d31f914..b28861d42 100644
--- a/libc/sysdeps/unix/sysv/linux/semctl.c
+++ b/libc/sysdeps/unix/sysv/linux/semctl.c
@@ -33,10 +33,10 @@ struct __old_semid_ds
struct __old_ipc_perm sem_perm; /* operation permission struct */
__time_t sem_otime; /* last semop() time */
__time_t sem_ctime; /* last time changed by semctl() */
- struct sem *__unbounded __sembase; /* ptr to first semaphore in array */
- struct sem_queue *__unbounded __sem_pending; /* pending operations */
- struct sem_queue *__unbounded __sem_pending_last; /* last pending operation */
- struct sem_undo *__unbounded __undo; /* ondo requests on this array */
+ struct sem *__sembase; /* ptr to first semaphore in array */
+ struct sem_queue *__sem_pending; /* pending operations */
+ struct sem_queue *__sem_pending_last; /* last pending operation */
+ struct sem_undo *__undo; /* ondo requests on this array */
unsigned short int sem_nsems; /* number of semaphores in set */
};
@@ -50,9 +50,6 @@ union semun
struct __old_semid_ds *__old_buf;
};
-#include <bp-checks.h>
-#include <bp-semctl.h> /* definition of CHECK_SEMCTL needs union semum */
-
/* Return identifier for array of NSEMS semaphores associated with
KEY. */
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
@@ -91,7 +88,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
va_end (ap);
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd));
+ &arg);
}
compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
#endif
@@ -126,7 +123,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
#if __ASSUME_IPC64 > 0
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
- CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
+ &arg);
#else
switch (cmd)
{
@@ -136,7 +133,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
break;
default:
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd));
+ &arg);
}
{
@@ -147,7 +144,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
/* Unfortunately there is no way how to find out for sure whether
we should use old or new semctl. */
result = INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
- CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
+ &arg);
if (result != -1 || errno != EINVAL)
return result;
@@ -167,7 +164,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
}
}
result = INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd));
+ &arg);
if (result != -1 && cmd != IPC_SET)
{
memset(buf, 0, sizeof(*buf));
diff --git a/libc/sysdeps/unix/sysv/linux/semop.c b/libc/sysdeps/unix/sysv/linux/semop.c
index f0ea7780b..cbe42ac62 100644
--- a/libc/sysdeps/unix/sysv/linux/semop.c
+++ b/libc/sysdeps/unix/sysv/linux/semop.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Perform user-defined atomical operation of array of semaphores. */
@@ -32,6 +31,5 @@ semop (semid, sops, nsops)
struct sembuf *sops;
size_t nsops;
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_semop,
- semid, (int) nsops, 0, CHECK_N (sops, nsops));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_semop, semid, (int) nsops, 0, sops);
}
diff --git a/libc/sysdeps/unix/sysv/linux/semtimedop.c b/libc/sysdeps/unix/sysv/linux/semtimedop.c
index 22a50375f..3da355470 100644
--- a/libc/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/libc/sysdeps/unix/sysv/linux/semtimedop.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Perform user-defined atomical operation of array of semaphores. */
@@ -34,6 +33,6 @@ semtimedop (semid, sops, nsops, timeout)
const struct timespec *timeout;
{
return INLINE_SYSCALL (ipc, 6, IPCOP_semtimedop,
- semid, (int) nsops, 0, CHECK_N (sops, nsops),
+ semid, (int) nsops, 0, sops,
timeout);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sh/chown.c b/libc/sysdeps/unix/sysv/linux/sh/chown.c
index 271496936..853d48af8 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/chown.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
index 733b550fe..a653292c2 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
@@ -92,6 +92,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_Exit F
diff --git a/libc/sysdeps/unix/sysv/linux/sh/pread.c b/libc/sysdeps/unix/sysv/linux/sh/pread.c
index 6f0c3badb..ae338dc21 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/pread.c
+++ b/libc/sysdeps/unix/sysv/linux/sh/pread.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -46,14 +45,14 @@ __libc_pread (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
__LONG_LONG_PAIR (offset >> 31, offset));
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
__LONG_LONG_PAIR (offset >> 31, offset));
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/sh/pread64.c b/libc/sysdeps/unix/sysv/linux/sh/pread64.c
index acce914c7..2a46d7034 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/pread64.c
+++ b/libc/sysdeps/unix/sysv/linux/sh/pread64.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -45,7 +44,7 @@ __libc_pread64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
return result;
@@ -53,7 +52,7 @@ __libc_pread64 (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
diff --git a/libc/sysdeps/unix/sysv/linux/sh/pwrite.c b/libc/sysdeps/unix/sysv/linux/sh/pwrite.c
index 441c867bf..4b20e518c 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/pwrite.c
+++ b/libc/sysdeps/unix/sysv/linux/sh/pwrite.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -46,14 +45,14 @@ __libc_pwrite (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
__LONG_LONG_PAIR (offset >> 31, offset));
return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
__LONG_LONG_PAIR (offset >> 31, offset));
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/sh/pwrite64.c b/libc/sysdeps/unix/sysv/linux/sh/pwrite64.c
index a4ca56077..5639b3c41 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/pwrite64.c
+++ b/libc/sysdeps/unix/sysv/linux/sh/pwrite64.c
@@ -22,7 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -45,7 +44,7 @@ __libc_pwrite64 (fd, buf, count, offset)
if (SINGLE_THREAD_P)
{
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
@@ -54,7 +53,7 @@ __libc_pwrite64 (fd, buf, count, offset)
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
+ result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
__LONG_LONG_PAIR ((off_t) (offset >> 32),
(off_t) (offset & 0xffffffff)));
diff --git a/libc/sysdeps/unix/sysv/linux/shmat.c b/libc/sysdeps/unix/sysv/linux/shmat.c
index cb5aa50bd..bac1b290a 100644
--- a/libc/sysdeps/unix/sysv/linux/shmat.c
+++ b/libc/sysdeps/unix/sysv/linux/shmat.c
@@ -23,7 +23,6 @@
#include <sysdep.h>
#include <unistd.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Attach the shared memory segment associated with SHMID to the data
segment of the calling process. SHMADDR and SHMFLG determine how
@@ -37,26 +36,17 @@ shmat (shmid, shmaddr, shmflg)
{
INTERNAL_SYSCALL_DECL(err);
unsigned long resultvar;
- void *__unbounded raddr;
-
-#if __BOUNDED_POINTERS__
- size_t length = ~0;
- struct shmid_ds shmds;
- /* It's unfortunate that we need to make another system call to get
- the shared memory segment length... */
- if (shmctl (shmid, IPC_STAT, &shmds) == 0)
- length = shmds.shm_segsz;
-#endif
+ void *raddr;
resultvar = INTERNAL_SYSCALL (ipc, err, 5, IPCOP_shmat,
shmid, shmflg,
- (long int) __ptrvalue (&raddr),
- __ptrvalue ((void *) shmaddr));
+ (long int) &raddr,
+ (void *) shmaddr);
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err))
{
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err));
return (void *) -1l;
}
- return BOUNDED_N (raddr, length);
+ return raddr;
}
diff --git a/libc/sysdeps/unix/sysv/linux/shmctl.c b/libc/sysdeps/unix/sysv/linux/shmctl.c
index 01dbdd087..34806fbb6 100644
--- a/libc/sysdeps/unix/sysv/linux/shmctl.c
+++ b/libc/sysdeps/unix/sysv/linux/shmctl.c
@@ -25,7 +25,6 @@
#include <sys/syscall.h>
#include <bits/wordsize.h>
#include <shlib-compat.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -40,8 +39,8 @@ struct __old_shmid_ds
__ipc_pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
unsigned short int __shm_npages; /* size of segment (pages) */
- unsigned long int *__unbounded __shm_pages; /* array of ptrs to frames -> SHMMAX */
- struct vm_area_struct *__unbounded __attaches; /* descriptors for attaches */
+ unsigned long int *__shm_pages; /* array of ptrs to frames -> SHMMAX */
+ struct vm_area_struct *__attaches; /* descriptors for attaches */
};
struct __old_shminfo
@@ -64,8 +63,7 @@ int
attribute_compat_text_section
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
- cmd, 0, CHECK_1_NULL_OK (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
}
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
#endif
@@ -75,7 +73,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{
#if __ASSUME_IPC64 > 0
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
- CHECK_1 (buf));
+ buf);
#else
switch (cmd) {
case SHM_STAT:
@@ -86,8 +84,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
#endif
break;
default:
- return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0,
- CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
}
{
@@ -101,7 +98,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
/* Unfortunately there is no way how to find out for sure whether
we should use old or new shmctl. */
result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
- CHECK_1 (buf));
+ buf);
if (result != -1 || errno != EINVAL)
return result;
@@ -118,8 +115,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
return -1;
}
}
- result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0,
- __ptrvalue (&old.ds));
+ result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, &old.ds);
if (result != -1 && (cmd == SHM_STAT || cmd == IPC_STAT))
{
memset(buf, 0, sizeof(*buf));
diff --git a/libc/sysdeps/unix/sysv/linux/shmdt.c b/libc/sysdeps/unix/sysv/linux/shmdt.c
index aac66199b..260526bb7 100644
--- a/libc/sysdeps/unix/sysv/linux/shmdt.c
+++ b/libc/sysdeps/unix/sysv/linux/shmdt.c
@@ -30,5 +30,5 @@ int
shmdt (shmaddr)
const void *shmaddr;
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_shmdt, 0, 0, 0, __ptrvalue ((void *) shmaddr));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_shmdt, 0, 0, 0, (void *) shmaddr);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sigaction.c b/libc/sysdeps/unix/sysv/linux/sigaction.c
index 3fe882eec..336975c51 100644
--- a/libc/sysdeps/unix/sysv/linux/sigaction.c
+++ b/libc/sysdeps/unix/sysv/linux/sigaction.c
@@ -55,8 +55,8 @@ __libc_sigaction (sig, act, oact)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
result = INLINE_SYSCALL (rt_sigaction, 4, sig,
- act ? __ptrvalue (&kact) : NULL,
- oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
+ act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
if (oact && result >= 0)
{
diff --git a/libc/sysdeps/unix/sysv/linux/sigpending.c b/libc/sysdeps/unix/sysv/linux/sigpending.c
index 74bb9094c..56f581ea4 100644
--- a/libc/sysdeps/unix/sysv/linux/sigpending.c
+++ b/libc/sysdeps/unix/sysv/linux/sigpending.c
@@ -21,7 +21,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -32,5 +31,5 @@ int
sigpending (set)
sigset_t *set;
{
- return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sigprocmask.c b/libc/sysdeps/unix/sysv/linux/sigprocmask.c
index a40caf68a..1af03c3cd 100644
--- a/libc/sysdeps/unix/sysv/linux/sigprocmask.c
+++ b/libc/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -55,7 +54,6 @@ __sigprocmask (how, set, oset)
}
#endif
- return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET_NULL_OK (set),
- CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
}
weak_alias (__sigprocmask, sigprocmask)
diff --git a/libc/sysdeps/unix/sysv/linux/sigqueue.c b/libc/sysdeps/unix/sysv/linux/sigqueue.c
index eb056f3e9..37d61c8a1 100644
--- a/libc/sysdeps/unix/sysv/linux/sigqueue.c
+++ b/libc/sysdeps/unix/sysv/linux/sigqueue.c
@@ -43,7 +43,7 @@ __sigqueue (pid, sig, val)
info.si_uid = __getuid ();
info.si_value = val;
- return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, __ptrvalue (&info));
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info);
}
weak_alias (__sigqueue, sigqueue)
#else
diff --git a/libc/sysdeps/unix/sysv/linux/sigsuspend.c b/libc/sysdeps/unix/sysv/linux/sigsuspend.c
index 667ba415a..992a422da 100644
--- a/libc/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/libc/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -29,7 +28,7 @@
static inline int __attribute__ ((always_inline))
do_sigsuspend (const sigset_t *set)
{
- return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
}
/* Change the set of blocked signals to SET,
diff --git a/libc/sysdeps/unix/sysv/linux/sigtimedwait.c b/libc/sysdeps/unix/sysv/linux/sigtimedwait.c
index 283215e5b..20fe3550d 100644
--- a/libc/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/libc/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -21,7 +21,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#ifdef __NR_rt_sigtimedwait
@@ -51,8 +50,8 @@ do_sigtimedwait (const sigset_t *set, siginfo_t *info,
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
- CHECK_1 (info), timeout, _NSIG / 8);
+ int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+ info, timeout, _NSIG / 8);
/* The kernel generates a SI_TKILL code in si_code in case tkill is
used. tkill is transparently used in raise(). Since having
diff --git a/libc/sysdeps/unix/sysv/linux/sigwait.c b/libc/sysdeps/unix/sysv/linux/sigwait.c
index aaea9d680..9ea21d077 100644
--- a/libc/sysdeps/unix/sysv/linux/sigwait.c
+++ b/libc/sysdeps/unix/sysv/linux/sigwait.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#ifdef __NR_rt_sigtimedwait
@@ -58,7 +57,7 @@ do_sigwait (const sigset_t *set, int *sig)
#ifdef INTERNAL_SYSCALL
INTERNAL_SYSCALL_DECL (err);
do
- ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, CHECK_SIGSET (set),
+ ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set,
NULL, NULL, _NSIG / 8);
while (INTERNAL_SYSCALL_ERROR_P (ret, err)
&& INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
@@ -71,8 +70,7 @@ do_sigwait (const sigset_t *set, int *sig)
ret = INTERNAL_SYSCALL_ERRNO (ret, err);
#else
do
- ret = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
- NULL, NULL, _NSIG / 8);
+ ret = INLINE_SYSCALL (rt_sigtimedwait, 4, set, NULL, NULL, _NSIG / 8);
while (ret == -1 && errno == EINTR);
if (ret != -1)
{
diff --git a/libc/sysdeps/unix/sysv/linux/sigwaitinfo.c b/libc/sysdeps/unix/sysv/linux/sigwaitinfo.c
index bd85e9595..50fa72bf4 100644
--- a/libc/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/libc/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#ifdef __NR_rt_sigtimedwait
@@ -52,8 +51,8 @@ do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
- CHECK_1 (info), NULL, _NSIG / 8);
+ int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+ info, NULL, _NSIG / 8);
/* The kernel generates a SI_TKILL code in si_code in case tkill is
used. tkill is transparently used in raise(). Since having
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
index 3a96ea883..9defbdf13 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
@@ -1776,6 +1776,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_IO_adjust_wcolumn F
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
index ef93f8c53..1a4bbac8f 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
@@ -50,9 +50,6 @@ union semun
struct __old_semid_ds *__old_buf;
};
-#include <bp-checks.h>
-#include <bp-semctl.h> /* definition of CHECK_SEMCTL needs union semum */
-
/* Return identifier for array of NSEMS semaphores associated with
KEY. */
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
@@ -87,7 +84,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
}
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd));
+ &arg);
}
compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
#endif
@@ -117,7 +114,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
}
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
- CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
+ &arg);
}
versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
index 3bda4b275..d55511e10 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Allows to control internal state and destruction of message queue
objects. */
@@ -33,5 +32,5 @@ msgctl (msqid, cmd, buf)
int cmd;
struct msqid_ds *buf;
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
index bce7a58d2..625eeb27c 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
@@ -22,8 +22,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
-
ssize_t
__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
int msqid;
@@ -34,12 +32,12 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
{
if (SINGLE_THREAD_P)
return INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
- CHECK_N (msgp, msgsz), msgtyp);
+ msgp, msgtyp);
int oldtype = LIBC_CANCEL_ASYNC ();
ssize_t result = INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
- CHECK_N (msgp, msgsz), msgtyp);
+ msgp, msgtyp);
LIBC_CANCEL_RESET (oldtype);
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
index aa892b8b8..35987faa6 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
@@ -97,6 +97,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2
GLIBC_2.2 A
_Exit F
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
index 4303d10e0..9ada8e847 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
@@ -33,9 +33,6 @@ union semun
struct seminfo *__buf; /* buffer for IPC_INFO */
};
-#include <bp-checks.h>
-#include <bp-semctl.h> /* definition of CHECK_SEMCTL needs union semum */
-
/* Return identifier for array of NSEMS semaphores associated with
KEY. */
@@ -53,5 +50,5 @@ semctl (int semid, int semnum, int cmd, ...)
va_end (ap);
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
- CHECK_SEMCTL (&arg, semid, cmd)->array);
+ arg.array);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
index fc2573905..7c4af7476 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Provide operations to control over shared memory segments. */
@@ -32,5 +31,5 @@ shmctl (shmid, cmd, buf)
int cmd;
struct shmid_ds *buf;
{
- return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, CHECK_1 (buf));
+ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
index 988d26662..d5e708777 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
@@ -48,8 +48,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
ret = INLINE_SYSCALL (rt_sigaction, 5, sig,
- act ? __ptrvalue (&kact) : 0,
- oact ? __ptrvalue (&koact) : 0, stub, _NSIG / 8);
+ act ? &kact : 0,
+ oact ? &koact : 0, stub, _NSIG / 8);
if (oact && ret >= 0)
{
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
index ca6ff6948..57d172d61 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
@@ -21,7 +21,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Change the set of blocked signals to SET,
wait until a signal arrives, and restore the set of blocked signals. */
@@ -31,5 +30,5 @@ sigpending (set)
{
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
}
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
index 14cda4dd8..c7a30606f 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
@@ -21,7 +21,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get and/or change the set of blocked signals. */
int
@@ -32,7 +31,6 @@ __sigprocmask (how, set, oset)
{
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set),
- CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
}
weak_alias (__sigprocmask, sigprocmask)
diff --git a/libc/sysdeps/unix/sysv/linux/sysctl.c b/libc/sysdeps/unix/sysv/linux/sysctl.c
index 5c6b1fb30..4ff1bf378 100644
--- a/libc/sysdeps/unix/sysv/linux/sysctl.c
+++ b/libc/sysdeps/unix/sysv/linux/sysctl.c
@@ -22,13 +22,11 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
int
__sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
void *newval, size_t newlen)
{
- /* GKM FIXME: force __sysctl_args decl to have unbounded pointers. */
struct __sysctl_args args =
{
.name = name,
@@ -38,11 +36,8 @@ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
.newval = newval,
.newlen = newlen
};
- (void) CHECK_N (name, nlen);
- (void) CHECK_N (oldval, *oldlenp);
- (void) CHECK_N (newval, newlen);
- return INLINE_SYSCALL (_sysctl, 1, __ptrvalue (&args));
+ return INLINE_SYSCALL (_sysctl, 1, &args);
}
libc_hidden_def (__sysctl)
weak_alias (__sysctl, sysctl)
diff --git a/libc/sysdeps/unix/sysv/linux/truncate64.c b/libc/sysdeps/unix/sysv/linux/truncate64.c
index 82c132782..8c9e8488b 100644
--- a/libc/sysdeps/unix/sysv/linux/truncate64.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/ulimit.c b/libc/sysdeps/unix/sysv/linux/ulimit.c
deleted file mode 100644
index 8c382ac18..000000000
--- a/libc/sysdeps/unix/sysv/linux/ulimit.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 1991-2013 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 <stdarg.h>
-#include <sysdep.h>
-#include <ulimit.h>
-#include <unistd.h>
-#include <sys/resource.h>
-
-/* Function depends on CMD:
- 1 = Return the limit on the size of a file, in units of 512 bytes.
- 2 = Set the limit on the size of a file to NEWLIMIT. Only the
- super-user can increase the limit.
- 3 = illegal due to shared libraries; normally is
- (Return the maximum possible address of the data segment.)
- 4 = Return the maximum number of files that the calling process
- can open.
- Returns -1 on errors. */
-long int
-__ulimit (int cmd, ...)
-{
- struct rlimit limit;
- va_list va;
- long int result = -1;
-
- va_start (va, cmd);
-
- switch (cmd)
- {
- case UL_GETFSIZE:
- /* Get limit on file size. */
- if (__getrlimit (RLIMIT_FSIZE, &limit) == 0)
- /* Convert from bytes to 512 byte units. */
- result = (limit.rlim_cur == RLIM_INFINITY
- ? LONG_MAX : limit.rlim_cur / 512);
- break;
-
- case UL_SETFSIZE:
- /* Set limit on file size. */
- {
- long int newlimit = va_arg (va, long int);
- long int newlen;
-
- if ((rlim_t) newlimit > RLIM_INFINITY / 512)
- {
- limit.rlim_cur = RLIM_INFINITY;
- limit.rlim_max = RLIM_INFINITY;
- newlen = LONG_MAX;
- }
- else
- {
- limit.rlim_cur = newlimit * 512;
- limit.rlim_max = newlimit * 512;
- newlen = newlimit;
- }
-
- result = __setrlimit (RLIMIT_FSIZE, &limit);
- if (result != -1)
- result = newlen;
- }
- break;
-
- case __UL_GETOPENMAX:
- result = __sysconf (_SC_OPEN_MAX);
- break;
-
- default:
- __set_errno (EINVAL);
- }
-
- va_end (va);
-
- return result;
-}
-
-weak_alias (__ulimit, ulimit);
diff --git a/libc/sysdeps/unix/sysv/linux/ustat.c b/libc/sysdeps/unix/sysv/linux/ustat.c
index 7a57ee1e9..499ed7eaf 100644
--- a/libc/sysdeps/unix/sysv/linux/ustat.c
+++ b/libc/sysdeps/unix/sysv/linux/ustat.c
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
int
ustat (dev_t dev, struct ustat *ubuf)
@@ -37,5 +36,5 @@ ustat (dev_t dev, struct ustat *ubuf)
return -1;
}
- return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, CHECK_1 (ubuf));
+ return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
}
diff --git a/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c b/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
index bbaa0e04d..d6023e2a2 100644
--- a/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
@@ -26,14 +26,13 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get information about the file FD in BUF. */
int
__fxstat (int vers, int fd, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
- return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 (buf));
+ return INLINE_SYSCALL (fstat, 2, fd, buf);
__set_errno (EINVAL);
return -1;
diff --git a/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c b/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
index 733348cbf..73a2e871c 100644
--- a/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
+++ b/libc/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
@@ -29,7 +29,6 @@
#include <sysdep.h>
#include <kernel-features.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get information about the file NAME relative to FD in ST. */
@@ -95,9 +94,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
INTERNAL_SYSCALL_DECL (err);
if (flag & AT_SYMLINK_NOFOLLOW)
- res = INTERNAL_SYSCALL (lstat, err, 2, file, CHECK_1 (st));
+ res = INTERNAL_SYSCALL (lstat, err, 2, file, st);
else
- res = INTERNAL_SYSCALL (stat, err, 2, file, CHECK_1 (st));
+ res = INTERNAL_SYSCALL (stat, err, 2, file, st);
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0))
{
diff --git a/libc/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/libc/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
index 4a34c8412..62b6c89ba 100644
--- a/libc/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+++ b/libc/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
@@ -26,14 +26,13 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get information about the file FD in BUF. */
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, buf);
__set_errno (EINVAL);
return -1;
diff --git a/libc/sysdeps/unix/sysv/linux/wordsize-64/xstat.c b/libc/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
index b9b533d30..1fa2280c2 100644
--- a/libc/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
+++ b/libc/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
@@ -26,14 +26,13 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get information about the file NAME in BUF. */
int
__xstat (int vers, const char *name, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
- return INLINE_SYSCALL (stat, 2, name, CHECK_1 (buf));
+ return INLINE_SYSCALL (stat, 2, name, buf);
__set_errno (EINVAL);
return -1;
diff --git a/libc/sysdeps/unix/sysv/linux/writev.c b/libc/sysdeps/unix/sysv/linux/writev.c
index 993660a11..e53c0d345 100644
--- a/libc/sysdeps/unix/sysv/linux/writev.c
+++ b/libc/sysdeps/unix/sysv/linux/writev.c
@@ -23,7 +23,6 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
#ifndef __ASSUME_COMPLETE_READV_WRITEV
@@ -47,12 +46,12 @@ __libc_writev (fd, vector, count)
ssize_t result;
if (SINGLE_THREAD_P)
- result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count);
+ result = INLINE_SYSCALL (writev, 3, fd, vector, count);
else
{
int oldtype = LIBC_CANCEL_ASYNC ();
- result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count);
+ result = INLINE_SYSCALL (writev, 3, fd, vector, count);
LIBC_CANCEL_RESET (oldtype);
}
diff --git a/libc/sysdeps/unix/sysv/linux/x86/bits/wchar.h b/libc/sysdeps/unix/sysv/linux/x86/bits/wchar.h
deleted file mode 100644
index 16b8b77c8..000000000
--- a/libc/sysdeps/unix/sysv/linux/x86/bits/wchar.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* wchar_t type related definitions. i386/x86-64 version.
- Copyright (C) 2000-2013 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/>. */
-
-#ifndef _BITS_WCHAR_H
-#define _BITS_WCHAR_H 1
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __WCHAR_MIN (-2147483647 - 1)
-# define __WCHAR_MAX (2147483647)
-#else
-# define __WCHAR_MIN (-2147483647l - 1l)
-# define __WCHAR_MAX (2147483647l)
-#endif
-
-#endif /* bits/wchar.h */
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
index a42d424cd..914b5908f 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
@@ -88,6 +88,9 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
GLIBC_2.2.5
GLIBC_2.2.5 A
_Exit F
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/clone.S b/libc/sysdeps/unix/sysv/linux/x86_64/clone.S
index c131a4024..144eaf752 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -22,8 +22,6 @@
#define _ERRNO_H 1
#include <bits/errno.h>
#include <asm-syntax.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
#define CLONE_VM 0x00000100
#define CLONE_THREAD 0x00010000
@@ -52,7 +50,7 @@
.text
-ENTRY (BP_SYM (__clone))
+ENTRY (__clone)
/* Sanity check arguments. */
movq $-EINVAL,%rax
testq %rdi,%rdi /* no NULL function pointers */
@@ -117,6 +115,6 @@ L(thread_start):
cfi_endproc;
cfi_startproc;
-PSEUDO_END (BP_SYM (__clone))
+PSEUDO_END (__clone)
-weak_alias (BP_SYM (__clone), BP_SYM (clone))
+weak_alias (__clone, clone)
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c
index 0fcb754a5..4b5d1e1a8 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c
@@ -62,8 +62,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
result = INLINE_SYSCALL (rt_sigaction, 4,
- sig, act ? __ptrvalue (&kact) : NULL,
- oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
+ sig, act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
if (oact && result >= 0)
{
oact->sa_handler = koact.k_sa_handler;
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sigpending.c b/libc/sysdeps/unix/sysv/linux/x86_64/sigpending.c
index 523fb39aa..e68f77622 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/sigpending.c
@@ -24,7 +24,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Change the set of blocked signals to SET,
wait until a signal arrives, and restore the set of blocked signals. */
@@ -34,5 +33,5 @@ sigpending (set)
{
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
}
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/libc/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
index f755049ea..6d12326db 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
@@ -25,7 +25,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
/* Get and/or change the set of blocked signals. */
int
@@ -37,7 +36,6 @@ __sigprocmask (how, set, oset)
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
- return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set),
- CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
}
weak_alias (__sigprocmask, sigprocmask)
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/libc/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 763a748bc..d68112a61 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -20,8 +20,6 @@
/* There is some commonality. */
#include <sysdeps/unix/x86_64/sysdep.h>
-#include <bp-sym.h>
-#include <bp-asm.h>
#include <tls.h>
#ifdef IS_IN_rtld
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist b/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
index 108b80fb4..0f64c8d20 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
@@ -2086,3 +2086,6 @@ GLIBC_2.17
clock_nanosleep F
clock_settime F
secure_getenv F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __cxa_thread_atexit_impl F
diff --git a/libc/sysdeps/unix/sysv/linux/xmknod.c b/libc/sysdeps/unix/sysv/linux/xmknod.c
index 23c83ef24..154dc9a03 100644
--- a/libc/sysdeps/unix/sysv/linux/xmknod.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/xmknodat.c b/libc/sysdeps/unix/sysv/linux/xmknodat.c
index 79f3e55bc..8cb902127 100644
--- a/libc/sysdeps/unix/sysv/linux/xmknodat.c
+++ b/libc/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/libc/sysdeps/unix/sysv/linux/xstat.c b/libc/sysdeps/unix/sysv/linux/xstat.c
index 07fbcd08e..ac342cec7 100644
--- a/libc/sysdeps/unix/sysv/linux/xstat.c
+++ b/libc/sysdeps/unix/sysv/linux/xstat.c
@@ -27,7 +27,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <xstatconv.h>
@@ -36,8 +35,7 @@ int
__xstat (int vers, const char *name, struct stat *buf)
{
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, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT
errno = EINVAL;
@@ -46,8 +44,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, &kbuf);
if (result == 0)
result = __xstat_conv (vers, &kbuf, buf);
diff --git a/libc/sysdeps/unix/sysv/linux/xstat64.c b/libc/sysdeps/unix/sysv/linux/xstat64.c
index 061de1a4d..2377ac503 100644
--- a/libc/sysdeps/unix/sysv/linux/xstat64.c
+++ b/libc/sysdeps/unix/sysv/linux/xstat64.c
@@ -23,7 +23,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <bp-checks.h>
#include <kernel-features.h>
@@ -33,7 +32,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, 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;