diff --git a/libc/arch-arm/cortex-a7/cortex-a7.mk b/libc/arch-arm/cortex-a7/cortex-a7.mk
new file mode 100644
index 0000000..9af03d9
--- /dev/null
+++ b/libc/arch-arm/cortex-a7/cortex-a7.mk
@@ -0,0 +1 @@
+include bionic/libc/arch-arm/cortex-a15/cortex-a15.mk
diff --git a/libc/bionic/__set_errno.cpp b/libc/bionic/__set_errno.cpp
index 4e72093..af6a68e 100644
--- a/libc/bionic/__set_errno.cpp
+++ b/libc/bionic/__set_errno.cpp
@@ -31,7 +31,8 @@
 // This function is called from our assembler syscall stubs.
 // C/C++ code should just assign 'errno' instead.
 
-extern "C" __LIBC_HIDDEN__ int __set_errno(int n) {
+// TODO: this should be __LIBC_HIDDEN__ but was exposed in <errno.h> in the NDK.
+extern "C" int __set_errno(int n) {
   errno = n;
   return -1;
 }
diff --git a/libc/bionic/dlmalloc.c b/libc/bionic/dlmalloc.c
index 7d4ef0f..87f772b 100644
--- a/libc/bionic/dlmalloc.c
+++ b/libc/bionic/dlmalloc.c
@@ -47,7 +47,8 @@
 }
 
 static void __bionic_heap_usage_error(const char* function, void* address) {
-  __libc_format_log(ANDROID_LOG_FATAL, "libc", "@@@ ABORTING: invalid address %p passed to %s",
+  __libc_format_log(ANDROID_LOG_FATAL, "libc",
+                    "@@@ ABORTING: invalid address or address of corrupt block %p passed to %s",
                     address, function);
   // So that we can get a memory dump around the specific address.
   *((int**) 0xdeadbaad) = (int*) address;
diff --git a/libc/include/sys/linux-syscalls.h b/libc/include/sys/linux-syscalls.h
deleted file mode 100644
index a11a9a3..0000000
--- a/libc/include/sys/linux-syscalls.h
+++ /dev/null
@@ -1,474 +0,0 @@
-/* Auto-generated by gensyscalls.py; do not edit. */
-#ifndef _BIONIC_LINUX_SYSCALLS_H_
-#define _BIONIC_LINUX_SYSCALLS_H_
-
-#if !defined __ASM_ARM_UNISTD_H && !defined __ASM_I386_UNISTD_H && !defined __ASM_MIPS_UNISTD_H
-#if defined(__mips__)
-  #  define __NR_SYSCALL_BASE 4000
-#else
-  #  define __NR_SYSCALL_BASE 0
-#endif
-
-#define __NR_exit                         (__NR_SYSCALL_BASE + 1)
-#define __NR_fork                         (__NR_SYSCALL_BASE + 2)
-#define __NR_read                         (__NR_SYSCALL_BASE + 3)
-#define __NR_write                        (__NR_SYSCALL_BASE + 4)
-#define __NR_open                         (__NR_SYSCALL_BASE + 5)
-#define __NR_close                        (__NR_SYSCALL_BASE + 6)
-#define __NR_link                         (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink                       (__NR_SYSCALL_BASE + 10)
-#define __NR_execve                       (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir                        (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod                        (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod                        (__NR_SYSCALL_BASE + 15)
-#define __NR_lseek                        (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid                       (__NR_SYSCALL_BASE + 20)
-#define __NR_mount                        (__NR_SYSCALL_BASE + 21)
-#define __NR_ptrace                       (__NR_SYSCALL_BASE + 26)
-#define __NR_pause                        (__NR_SYSCALL_BASE + 29)
-#define __NR_access                       (__NR_SYSCALL_BASE + 33)
-#define __NR_sync                         (__NR_SYSCALL_BASE + 36)
-#define __NR_rename                       (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir                        (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir                        (__NR_SYSCALL_BASE + 40)
-#define __NR_dup                          (__NR_SYSCALL_BASE + 41)
-#define __NR_times                        (__NR_SYSCALL_BASE + 43)
-#define __NR_brk                          (__NR_SYSCALL_BASE + 45)
-#define __NR_acct                         (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2                      (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl                        (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl                        (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid                      (__NR_SYSCALL_BASE + 57)
-#define __NR_umask                        (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot                       (__NR_SYSCALL_BASE + 61)
-#define __NR_dup2                         (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid                      (__NR_SYSCALL_BASE + 64)
-#define __NR_setsid                       (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction                    (__NR_SYSCALL_BASE + 67)
-#define __NR_sigpending                   (__NR_SYSCALL_BASE + 73)
-#define __NR_setrlimit                    (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage                    (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday                 (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday                 (__NR_SYSCALL_BASE + 79)
-#define __NR_symlink                      (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink                     (__NR_SYSCALL_BASE + 85)
-#define __NR_reboot                       (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap                       (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate                     (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate                    (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod                       (__NR_SYSCALL_BASE + 94)
-#define __NR_getpriority                  (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority                  (__NR_SYSCALL_BASE + 97)
-#define __NR_syslog                       (__NR_SYSCALL_BASE + 103)
-#define __NR_syslog                       (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer                    (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer                    (__NR_SYSCALL_BASE + 105)
-#define __NR_wait4                        (__NR_SYSCALL_BASE + 114)
-#define __NR_sysinfo                      (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync                        (__NR_SYSCALL_BASE + 118)
-#define __NR_clone                        (__NR_SYSCALL_BASE + 120)
-#define __NR_uname                        (__NR_SYSCALL_BASE + 122)
-#define __NR_mprotect                     (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask                  (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module                  (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module                (__NR_SYSCALL_BASE + 129)
-#define __NR_getpgid                      (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir                       (__NR_SYSCALL_BASE + 133)
-#define __NR_personality                  (__NR_SYSCALL_BASE + 136)
-#define __NR__llseek                      (__NR_SYSCALL_BASE + 140)
-#define __NR__newselect                   (__NR_SYSCALL_BASE + 142)
-#define __NR_flock                        (__NR_SYSCALL_BASE + 143)
-#define __NR_msync                        (__NR_SYSCALL_BASE + 144)
-#define __NR_readv                        (__NR_SYSCALL_BASE + 145)
-#define __NR_writev                       (__NR_SYSCALL_BASE + 146)
-
-#ifdef __arm__
-#define __NR_exit_group                   (__NR_SYSCALL_BASE + 248)
-#define __NR_waitid                       (__NR_SYSCALL_BASE + 280)
-#define __NR_setuid32                     (__NR_SYSCALL_BASE + 213)
-#define __NR_getuid32                     (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32                     (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32                    (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32                    (__NR_SYSCALL_BASE + 202)
-#define __NR_getresuid32                  (__NR_SYSCALL_BASE + 209)
-#define __NR_getresgid32                  (__NR_SYSCALL_BASE + 211)
-#define __NR_gettid                       (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead                    (__NR_SYSCALL_BASE + 225)
-#define __NR_getgroups32                  (__NR_SYSCALL_BASE + 205)
-#define __NR_getsid                       (__NR_SYSCALL_BASE + 147)
-#define __NR_setgid32                     (__NR_SYSCALL_BASE + 214)
-#define __NR_setreuid32                   (__NR_SYSCALL_BASE + 203)
-#define __NR_setresuid32                  (__NR_SYSCALL_BASE + 208)
-#define __NR_setresgid32                  (__NR_SYSCALL_BASE + 210)
-#define __NR_ugetrlimit                   (__NR_SYSCALL_BASE + 191)
-#define __NR_setgroups32                  (__NR_SYSCALL_BASE + 206)
-#define __NR_vfork                        (__NR_SYSCALL_BASE + 190)
-#define __NR_setregid32                   (__NR_SYSCALL_BASE + 204)
-#define __NR_prctl                        (__NR_SYSCALL_BASE + 172)
-#define __NR_capget                       (__NR_SYSCALL_BASE + 184)
-#define __NR_capset                       (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 186)
-#define __NR_pread64                      (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 181)
-#define __NR_openat                       (__NR_SYSCALL_BASE + 322)
-#define __NR_mmap2                        (__NR_SYSCALL_BASE + 192)
-#define __NR_mremap                       (__NR_SYSCALL_BASE + 163)
-#define __NR_madvise                      (__NR_SYSCALL_BASE + 220)
-#define __NR_mlock                        (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock                      (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall                     (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall                   (__NR_SYSCALL_BASE + 153)
-#define __NR_mincore                      (__NR_SYSCALL_BASE + 219)
-#define __NR_pipe                         (__NR_SYSCALL_BASE + 42)
-#define __NR_pipe2                        (__NR_SYSCALL_BASE + 359)
-#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 194)
-#define __NR_getdents64                   (__NR_SYSCALL_BASE + 217)
-#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 148)
-#define __NR_fchown32                     (__NR_SYSCALL_BASE + 207)
-#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 221)
-#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 267)
-#define __NR_sendfile                     (__NR_SYSCALL_BASE + 187)
-#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 327)
-#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 323)
-#define __NR_fchownat                     (__NR_SYSCALL_BASE + 325)
-#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 333)
-#define __NR_renameat                     (__NR_SYSCALL_BASE + 329)
-#define __NR_fsetxattr                    (__NR_SYSCALL_BASE + 228)
-#define __NR_fgetxattr                    (__NR_SYSCALL_BASE + 231)
-#define __NR_flistxattr                   (__NR_SYSCALL_BASE + 234)
-#define __NR_fremovexattr                 (__NR_SYSCALL_BASE + 237)
-#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 328)
-#define __NR_chown32                      (__NR_SYSCALL_BASE + 212)
-#define __NR_lchown32                     (__NR_SYSCALL_BASE + 198)
-#define __NR_fstat64                      (__NR_SYSCALL_BASE + 197)
-#define __NR_stat64                       (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64                      (__NR_SYSCALL_BASE + 196)
-#define __NR_getcwd                       (__NR_SYSCALL_BASE + 183)
-#define __NR_faccessat                    (__NR_SYSCALL_BASE + 334)
-#define __NR_setxattr                     (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr                    (__NR_SYSCALL_BASE + 227)
-#define __NR_getxattr                     (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr                    (__NR_SYSCALL_BASE + 230)
-#define __NR_listxattr                    (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr                   (__NR_SYSCALL_BASE + 233)
-#define __NR_removexattr                  (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr                 (__NR_SYSCALL_BASE + 236)
-#define __NR_statfs64                     (__NR_SYSCALL_BASE + 266)
-#define __NR_unshare                      (__NR_SYSCALL_BASE + 337)
-#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 162)
-#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_settime                (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 265)
-#define __NR_timer_create                 (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime                (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 261)
-#define __NR_utimes                       (__NR_SYSCALL_BASE + 269)
-#define __NR_utimensat                    (__NR_SYSCALL_BASE + 348)
-#define __NR_sigsuspend                   (__NR_SYSCALL_BASE + 72)
-#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 177)
-#define __NR_signalfd4                    (__NR_SYSCALL_BASE + 355)
-#define __NR_socket                       (__NR_SYSCALL_BASE + 281)
-#define __NR_socketpair                   (__NR_SYSCALL_BASE + 288)
-#define __NR_bind                         (__NR_SYSCALL_BASE + 282)
-#define __NR_connect                      (__NR_SYSCALL_BASE + 283)
-#define __NR_listen                       (__NR_SYSCALL_BASE + 284)
-#define __NR_accept                       (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname                  (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername                  (__NR_SYSCALL_BASE + 287)
-#define __NR_sendto                       (__NR_SYSCALL_BASE + 290)
-#define __NR_recvfrom                     (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown                     (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt                   (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt                   (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg                      (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg                      (__NR_SYSCALL_BASE + 297)
-#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 161)
-#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 242)
-#define __NR_getcpu                       (__NR_SYSCALL_BASE + 345)
-#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 315)
-#define __NR_perf_event_open              (__NR_SYSCALL_BASE + 364)
-#define __NR_futex                        (__NR_SYSCALL_BASE + 240)
-#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 252)
-#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 318)
-#define __NR_poll                         (__NR_SYSCALL_BASE + 168)
-#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 356)
-#define __ARM_NR_set_tls                  (__NR_SYSCALL_BASE + 983045)
-#define __ARM_NR_cacheflush               (__NR_SYSCALL_BASE + 983042)
-#endif
-
-#ifdef __i386__
-#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
-#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
-#define __NR_pipe                         (__NR_SYSCALL_BASE + 42)
-#define __NR_sigsuspend                   (__NR_SYSCALL_BASE + 72)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_getsid                       (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 148)
-#define __NR_mlock                        (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock                      (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall                     (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall                   (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap                       (__NR_SYSCALL_BASE + 163)
-#define __NR_poll                         (__NR_SYSCALL_BASE + 168)
-#define __NR_prctl                        (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 177)
-#define __NR_pread64                      (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 181)
-#define __NR_getcwd                       (__NR_SYSCALL_BASE + 183)
-#define __NR_capget                       (__NR_SYSCALL_BASE + 184)
-#define __NR_capset                       (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile                     (__NR_SYSCALL_BASE + 187)
-#define __NR_ugetrlimit                   (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2                        (__NR_SYSCALL_BASE + 192)
-#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64                       (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64                      (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64                      (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32                     (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32                     (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32                     (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32                    (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32                    (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32                   (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32                   (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32                  (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32                  (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32                     (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32                  (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32                  (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32                  (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32                  (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32                      (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32                     (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32                     (__NR_SYSCALL_BASE + 214)
-#define __NR_mincore                      (__NR_SYSCALL_BASE + 218)
-#define __NR_madvise                      (__NR_SYSCALL_BASE + 219)
-#define __NR_getdents64                   (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid                       (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead                    (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr                     (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr                    (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr                    (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr                     (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr                    (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr                    (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr                    (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr                   (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr                   (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr                  (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr                 (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr                 (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill                        (__NR_SYSCALL_BASE + 238)
-#define __NR_futex                        (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 242)
-#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 243)
-#define __NR_exit_group                   (__NR_SYSCALL_BASE + 252)
-#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 254)
-#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 255)
-#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create                 (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_settime                (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 261)
-#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 262)
-#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_settime                (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 265)
-#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 266)
-#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 267)
-#define __NR_statfs64                     (__NR_SYSCALL_BASE + 268)
-#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 269)
-#define __NR_tgkill                       (__NR_SYSCALL_BASE + 270)
-#define __NR_utimes                       (__NR_SYSCALL_BASE + 271)
-#define __NR_waitid                       (__NR_SYSCALL_BASE + 284)
-#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 289)
-#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 290)
-#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 291)
-#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 292)
-#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 293)
-#define __NR_openat                       (__NR_SYSCALL_BASE + 295)
-#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 296)
-#define __NR_fchownat                     (__NR_SYSCALL_BASE + 298)
-#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 300)
-#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 301)
-#define __NR_renameat                     (__NR_SYSCALL_BASE + 302)
-#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 306)
-#define __NR_faccessat                    (__NR_SYSCALL_BASE + 307)
-#define __NR_unshare                      (__NR_SYSCALL_BASE + 310)
-#define __NR_getcpu                       (__NR_SYSCALL_BASE + 318)
-#define __NR_utimensat                    (__NR_SYSCALL_BASE + 320)
-#define __NR_signalfd4                    (__NR_SYSCALL_BASE + 327)
-#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 328)
-#define __NR_pipe2                        (__NR_SYSCALL_BASE + 331)
-#define __NR_perf_event_open              (__NR_SYSCALL_BASE + 336)
-#endif
-
-#ifdef __mips__
-#define __NR_syscall                      (__NR_SYSCALL_BASE + 0)
-#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
-#define __NR_lchown                       (__NR_SYSCALL_BASE + 16)
-#define __NR_setuid                       (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid                       (__NR_SYSCALL_BASE + 24)
-#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
-#define __NR_setgid                       (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid                       (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid                      (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid                      (__NR_SYSCALL_BASE + 50)
-#define __NR_setreuid                     (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid                     (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend                   (__NR_SYSCALL_BASE + 72)
-#define __NR_getrlimit                    (__NR_SYSCALL_BASE + 76)
-#define __NR_getgroups                    (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups                    (__NR_SYSCALL_BASE + 81)
-#define __NR_fchown                       (__NR_SYSCALL_BASE + 95)
-#define __NR_cacheflush                   (__NR_SYSCALL_BASE + 147)
-#define __NR_getsid                       (__NR_SYSCALL_BASE + 151)
-#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 152)
-#define __NR_mlock                        (__NR_SYSCALL_BASE + 154)
-#define __NR_munlock                      (__NR_SYSCALL_BASE + 155)
-#define __NR_mlockall                     (__NR_SYSCALL_BASE + 156)
-#define __NR_munlockall                   (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 161)
-#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 162)
-#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 163)
-#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 164)
-#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 165)
-#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 166)
-#define __NR_mremap                       (__NR_SYSCALL_BASE + 167)
-#define __NR_accept                       (__NR_SYSCALL_BASE + 168)
-#define __NR_bind                         (__NR_SYSCALL_BASE + 169)
-#define __NR_connect                      (__NR_SYSCALL_BASE + 170)
-#define __NR_getpeername                  (__NR_SYSCALL_BASE + 171)
-#define __NR_getsockname                  (__NR_SYSCALL_BASE + 172)
-#define __NR_getsockopt                   (__NR_SYSCALL_BASE + 173)
-#define __NR_listen                       (__NR_SYSCALL_BASE + 174)
-#define __NR_recvfrom                     (__NR_SYSCALL_BASE + 176)
-#define __NR_recvmsg                      (__NR_SYSCALL_BASE + 177)
-#define __NR_sendmsg                      (__NR_SYSCALL_BASE + 179)
-#define __NR_sendto                       (__NR_SYSCALL_BASE + 180)
-#define __NR_setsockopt                   (__NR_SYSCALL_BASE + 181)
-#define __NR_shutdown                     (__NR_SYSCALL_BASE + 182)
-#define __NR_socket                       (__NR_SYSCALL_BASE + 183)
-#define __NR_socketpair                   (__NR_SYSCALL_BASE + 184)
-#define __NR_setresuid                    (__NR_SYSCALL_BASE + 185)
-#define __NR_getresuid                    (__NR_SYSCALL_BASE + 186)
-#define __NR_poll                         (__NR_SYSCALL_BASE + 188)
-#define __NR_setresgid                    (__NR_SYSCALL_BASE + 190)
-#define __NR_getresgid                    (__NR_SYSCALL_BASE + 191)
-#define __NR_prctl                        (__NR_SYSCALL_BASE + 192)
-#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 194)
-#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 195)
-#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 197)
-#define __NR_pread64                      (__NR_SYSCALL_BASE + 200)
-#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 201)
-#define __NR_chown                        (__NR_SYSCALL_BASE + 202)
-#define __NR_getcwd                       (__NR_SYSCALL_BASE + 203)
-#define __NR_capget                       (__NR_SYSCALL_BASE + 204)
-#define __NR_capset                       (__NR_SYSCALL_BASE + 205)
-#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 206)
-#define __NR_sendfile                     (__NR_SYSCALL_BASE + 207)
-#define __NR_mmap2                        (__NR_SYSCALL_BASE + 210)
-#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 212)
-#define __NR_stat64                       (__NR_SYSCALL_BASE + 213)
-#define __NR_lstat64                      (__NR_SYSCALL_BASE + 214)
-#define __NR_fstat64                      (__NR_SYSCALL_BASE + 215)
-#define __NR_mincore                      (__NR_SYSCALL_BASE + 217)
-#define __NR_madvise                      (__NR_SYSCALL_BASE + 218)
-#define __NR_getdents64                   (__NR_SYSCALL_BASE + 219)
-#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 220)
-#define __NR_gettid                       (__NR_SYSCALL_BASE + 222)
-#define __NR_readahead                    (__NR_SYSCALL_BASE + 223)
-#define __NR_setxattr                     (__NR_SYSCALL_BASE + 224)
-#define __NR_lsetxattr                    (__NR_SYSCALL_BASE + 225)
-#define __NR_fsetxattr                    (__NR_SYSCALL_BASE + 226)
-#define __NR_getxattr                     (__NR_SYSCALL_BASE + 227)
-#define __NR_lgetxattr                    (__NR_SYSCALL_BASE + 228)
-#define __NR_fgetxattr                    (__NR_SYSCALL_BASE + 229)
-#define __NR_listxattr                    (__NR_SYSCALL_BASE + 230)
-#define __NR_llistxattr                   (__NR_SYSCALL_BASE + 231)
-#define __NR_flistxattr                   (__NR_SYSCALL_BASE + 232)
-#define __NR_removexattr                  (__NR_SYSCALL_BASE + 233)
-#define __NR_lremovexattr                 (__NR_SYSCALL_BASE + 234)
-#define __NR_fremovexattr                 (__NR_SYSCALL_BASE + 235)
-#define __NR_tkill                        (__NR_SYSCALL_BASE + 236)
-#define __NR_futex                        (__NR_SYSCALL_BASE + 238)
-#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 239)
-#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 240)
-#define __NR_exit_group                   (__NR_SYSCALL_BASE + 246)
-#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 248)
-#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 250)
-#define __NR_statfs64                     (__NR_SYSCALL_BASE + 255)
-#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create                 (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime                (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime                (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 265)
-#define __NR_tgkill                       (__NR_SYSCALL_BASE + 266)
-#define __NR_utimes                       (__NR_SYSCALL_BASE + 267)
-#define __NR_waitid                       (__NR_SYSCALL_BASE + 278)
-#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 283)
-#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 284)
-#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 285)
-#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 286)
-#define __NR_openat                       (__NR_SYSCALL_BASE + 288)
-#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 289)
-#define __NR_fchownat                     (__NR_SYSCALL_BASE + 291)
-#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 293)
-#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 294)
-#define __NR_renameat                     (__NR_SYSCALL_BASE + 295)
-#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 299)
-#define __NR_faccessat                    (__NR_SYSCALL_BASE + 300)
-#define __NR_unshare                      (__NR_SYSCALL_BASE + 303)
-#define __NR_getcpu                       (__NR_SYSCALL_BASE + 312)
-#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 315)
-#define __NR_utimensat                    (__NR_SYSCALL_BASE + 316)
-#define __NR_signalfd4                    (__NR_SYSCALL_BASE + 324)
-#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 325)
-#define __NR_pipe2                        (__NR_SYSCALL_BASE + 328)
-#define __NR_perf_event_open              (__NR_SYSCALL_BASE + 333)
-#endif
-
-#endif
-
-#endif /* _BIONIC_LINUX_SYSCALLS_H_ */
diff --git a/libc/kernel/tools/utils.py b/libc/kernel/tools/utils.py
index e2820d1..8ec7353 100644
--- a/libc/kernel/tools/utils.py
+++ b/libc/kernel/tools/utils.py
@@ -72,117 +72,6 @@
 
         path = os.path.dirname(path)
 
-def find_bionic_root():
-    file = find_file_from_upwards(None, "SYSCALLS.TXT")
-    if file:
-        return os.path.dirname(file)
-    else:
-        return None
-
-def find_kernel_headers():
-    """try to find the directory containing the kernel headers for this machine"""
-    status, version = commands.getstatusoutput( "uname -r" )  # get Linux kernel version
-    if status != 0:
-        D("could not execute 'uname -r' command properly")
-        return None
-
-    # get rid of the "-xenU" suffix that is found in Xen virtual machines
-    if len(version) > 5 and version[-5:] == "-xenU":
-        version = version[:-5]
-
-    path = "/usr/src/linux-headers-" + version
-    D("probing %s for kernel headers" % (path+"/include"))
-    ret = os.path.isdir( path )
-    if ret:
-        D("found kernel headers in: %s" % (path + "/include"))
-        return path
-    return None
-
-
-# parser for the SYSCALLS.TXT file
-#
-class SysCallsTxtParser:
-    def __init__(self):
-        self.syscalls = []
-        self.lineno   = 0
-
-    def E(msg):
-        print "%d: %s" % (self.lineno, msg)
-
-    def parse_line(self, line):
-        pos_lparen = line.find('(')
-        E          = self.E
-        if pos_lparen < 0:
-            E("missing left parenthesis in '%s'" % line)
-            return
-
-        pos_rparen = line.rfind(')')
-        if pos_rparen < 0 or pos_rparen <= pos_lparen:
-            E("missing or misplaced right parenthesis in '%s'" % line)
-            return
-
-        return_type = line[:pos_lparen].strip().split()
-        if len(return_type) < 2:
-            E("missing return type in '%s'" % line)
-            return
-
-        syscall_func = return_type[-1]
-        return_type  = string.join(return_type[:-1],' ')
-
-        pos_colon = syscall_func.find(':')
-        if pos_colon < 0:
-            syscall_name = syscall_func
-        else:
-            if pos_colon == 0 or pos_colon+1 >= len(syscall_func):
-                E("misplaced colon in '%s'" % line)
-                return
-            syscall_name = syscall_func[pos_colon+1:]
-            syscall_func = syscall_func[:pos_colon]
-
-        if pos_rparen > pos_lparen+1:
-            syscall_params = line[pos_lparen+1:pos_rparen].split(',')
-            params         = string.join(syscall_params,',')
-        else:
-            syscall_params = []
-            params         = "void"
-
-        number = line[pos_rparen+1:].strip()
-        if number == "stub":
-            syscall_id  = -1
-            syscall_id2 = -1
-        else:
-            try:
-                if number[0] == '#':
-                    number = number[1:].strip()
-                numbers = string.split(number,',')
-                syscall_id  = int(numbers[0])
-                syscall_id2 = syscall_id
-                if len(numbers) > 1:
-                    syscall_id2 = int(numbers[1])
-            except:
-                E("invalid syscall number in '%s'" % line)
-                return
-
-        t = { "id"     : syscall_id,
-              "id2"    : syscall_id2,
-              "name"   : syscall_name,
-              "func"   : syscall_func,
-              "params" : syscall_params,
-              "decl"   : "%-15s  %s (%s);" % (return_type, syscall_func, params) }
-
-        self.syscalls.append(t)
-
-    def parse_file(self, file_path):
-        fp = open(file_path)
-        for line in fp.xreadlines():
-            self.lineno += 1
-            line = line.strip()
-            if not line: continue
-            if line[0] == '#': continue
-            self.parse_line(line)
-
-        fp.close()
-
 
 class StringOutput:
     def __init__(self):
diff --git a/libc/tools/genserv.py b/libc/tools/genserv.py
index e37d28f..84a139d 100755
--- a/libc/tools/genserv.py
+++ b/libc/tools/genserv.py
@@ -5,7 +5,7 @@
 
 def usage():
     print """\
-  usage:  genserv < /etc/services > netbsd/net/services.h
+  usage:  genserv < /etc/services > libc/netbsd/net/services.h
 
   this program is used to generate the hard-coded internet service list for the
   Bionic C library.
@@ -72,5 +72,3 @@
     line += str(s)+"\\\n"
 line += '\\0";\n'
 print line
-
-
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index 2e87e03..ed1b3dc 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -311,10 +311,8 @@
                 t["asm-mips"] = self.mips_genstub(syscall_func, make__NR_name(syscall_name))
 
 
-    def gen_NR_syscall(self, linux_fp, name, id):
-        linux_fp.write("#define %-30s    (__NR_SYSCALL_BASE + %d)\n" % (make__NR_name(name),id))
-
-
+    # Scan a Linux kernel asm/unistd.h file containing __NR_* constants
+    # and write out equivalent SYS_* constants for glibc source compatibility.
     def scan_linux_unistd_h(self, fp, path):
         pattern = re.compile(r'^#define __NR_([a-z]\S+) .*')
         syscalls = set() # MIPS defines everything three times; work around that.
@@ -326,9 +324,10 @@
             fp.write("#define SYS_%s %s\n" % (syscall, make__NR_name(syscall)))
 
 
-    def gen_linux_syscalls_h(self):
+    def gen_glibc_syscalls_h(self):
         # TODO: generate a separate file for each architecture, like glibc's bits/syscall.h.
         glibc_syscalls_h_path = "include/sys/glibc-syscalls.h"
+        D("generating " + glibc_syscalls_h_path)
         glibc_fp = create_file(glibc_syscalls_h_path)
         glibc_fp.write("/* Auto-generated by gensyscalls.py; do not edit. */\n")
         glibc_fp.write("#ifndef _BIONIC_GLIBC_SYSCALLS_H_\n")
@@ -346,62 +345,6 @@
         glibc_fp.close()
         self.other_files.append(glibc_syscalls_h_path)
 
-        # TODO: stop generating this. it's useless.
-        linux_syscalls_h_path = "include/sys/linux-syscalls.h"
-        D("generating " + linux_syscalls_h_path)
-        fp = create_file(linux_syscalls_h_path)
-        fp.write( "/* Auto-generated by gensyscalls.py; do not edit. */\n" )
-        fp.write( "#ifndef _BIONIC_LINUX_SYSCALLS_H_\n" )
-        fp.write( "#define _BIONIC_LINUX_SYSCALLS_H_\n\n" )
-        fp.write( "#if !defined __ASM_ARM_UNISTD_H && !defined __ASM_I386_UNISTD_H && !defined __ASM_MIPS_UNISTD_H\n" )
-
-        fp.write( "#if defined(__mips__)\n" )
-        fp.write( "  #  define __NR_SYSCALL_BASE 4000\n" )
-        fp.write( "#else\n" )
-        fp.write( "  #  define __NR_SYSCALL_BASE 0\n" )
-        fp.write( "#endif\n\n" )
-
-        # first, all common syscalls
-        for sc in sorted(self.syscalls,key=lambda x:x["common"]):
-            sc_id  = sc["common"]
-            sc_name = sc["name"]
-            if sc_id >= 0:
-                self.gen_NR_syscall(fp, sc_name, sc_id)
-
-        # now, all arm-specific syscalls
-        fp.write("\n#ifdef __arm__\n")
-        for sc in self.syscalls:
-            sc_id  = sc["armid"]
-            sc_name = sc["name"]
-            if sc_id >= 0:
-                self.gen_NR_syscall(fp, sc_name, sc_id)
-        fp.write("#endif\n")
-
-        gen_syscalls = {}
-        # all i386-specific syscalls
-        fp.write("\n#ifdef __i386__\n")
-        for sc in sorted(self.syscalls,key=lambda x:x["x86id"]):
-            sc_id  = sc["x86id"]
-            sc_name = sc["name"]
-            if sc_id >= 0 and sc_name not in gen_syscalls:
-                self.gen_NR_syscall(fp, sc_name, sc_id)
-                gen_syscalls[sc_name] = True
-        fp.write("#endif\n")
-
-        # all mips-specific syscalls
-        fp.write("\n#ifdef __mips__\n")
-        for sc in sorted(self.syscalls,key=lambda x:x["mipsid"]):
-            sc_id = sc["mipsid"]
-            if sc_id >= 0:
-                self.gen_NR_syscall(fp, sc["name"], sc_id)
-        fp.write( "#endif\n" );
-
-        fp.write( "\n#endif\n" )
-        fp.write( "\n#endif /* _BIONIC_LINUX_SYSCALLS_H_ */\n" );
-        fp.close()
-
-        self.other_files.append(linux_syscalls_h_path)
-
 
     # now dump the contents of syscalls.mk
     def gen_arch_syscalls_mk(self, arch):
@@ -471,7 +414,7 @@
 
         D( "re-generating stubs and support files" )
 
-        self.gen_linux_syscalls_h()
+        self.gen_glibc_syscalls_h()
         for arch in all_archs:
             self.gen_arch_syscalls_mk(arch)
         self.gen_syscall_stubs()
