merge in jb-mr2-release history after reset to jb-mr2-dev
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()