valgrind can't find syscall because we didn't put it in <unistd.h>.
Change-Id: I1e47291d4476bd2816138a8cf58f29d4986d39e3
diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp
index 28d6355..77412ac 100644
--- a/libc/bionic/ndk_cruft.cpp
+++ b/libc/bionic/ndk_cruft.cpp
@@ -31,6 +31,7 @@
#include <ctype.h>
#include <dirent.h>
+#include <errno.h>
#include <inttypes.h>
#include <pthread.h>
#include <signal.h>
diff --git a/libc/include/sys/syscall.h b/libc/include/sys/syscall.h
index 34a29df..21eaf33 100644
--- a/libc/include/sys/syscall.h
+++ b/libc/include/sys/syscall.h
@@ -25,20 +25,13 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#ifndef _SYS_SYSCALL_H_
#define _SYS_SYSCALL_H_
-#include <errno.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <asm/unistd.h>
+#include <asm/unistd.h> /* Linux kernel __NR_* names. */
+#include <sys/glibc-syscalls.h> /* glibc-compatible SYS_* aliases. */
-#include <sys/glibc-syscalls.h> /* glibc-compatible SYS_* aliases for our __NR_* names. */
-
-__BEGIN_DECLS
-
-long syscall(long number, ...);
-
-__END_DECLS
+/* The syscall function itself is declared in <unistd.h>, not here. */
#endif /* _SYS_SYSCALL_H_ */
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 0b67004..a6d791c 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -208,6 +208,8 @@
long sysconf(int);
+long syscall(long number, ...);
+
extern int daemon(int, int);
#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__))
diff --git a/libc/private/bionic_futex.h b/libc/private/bionic_futex.h
index bd2bd36..401577a 100644
--- a/libc/private/bionic_futex.h
+++ b/libc/private/bionic_futex.h
@@ -34,6 +34,7 @@
#include <stddef.h>
#include <sys/cdefs.h>
#include <sys/syscall.h>
+#include <unistd.h>
__BEGIN_DECLS