diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp
index 3637c3e..fc9d9d4 100644
--- a/libc/bionic/ndk_cruft.cpp
+++ b/libc/bionic/ndk_cruft.cpp
@@ -40,7 +40,7 @@
 // getpagesize() and __getpageshift(). Needed for backwards compatibility with old NDK apps.
 extern "C" {
   unsigned int __page_size = PAGE_SIZE;
-  unsigned int __page_shift = PAGE_SHIFT;
+  unsigned int __page_shift = 12;
 }
 
 // TODO: remove this backward compatibility hack (for jb-mr1 strace binaries).
diff --git a/libc/bionic/stubs.cpp b/libc/bionic/stubs.cpp
index 707036a..2c2b74b 100644
--- a/libc/bionic/stubs.cpp
+++ b/libc/bionic/stubs.cpp
@@ -480,7 +480,7 @@
   UNIMPLEMENTED;
 }
 
-// Portable code should use sysconf(_SC_PAGESIZE) directly instead.
+// Portable code should use sysconf(_SC_PAGE_SIZE) directly instead.
 int getpagesize() {
-  return sysconf(_SC_PAGESIZE);
+  return sysconf(_SC_PAGE_SIZE);
 }
diff --git a/libc/bionic/sysconf.cpp b/libc/bionic/sysconf.cpp
index db808c2..233e57c 100644
--- a/libc/bionic/sysconf.cpp
+++ b/libc/bionic/sysconf.cpp
@@ -229,8 +229,11 @@
 #endif
     case _SC_ATEXIT_MAX:        return SYSTEM_ATEXIT_MAX;
     case _SC_IOV_MAX:           return SYSTEM_IOV_MAX;
-    case _SC_PAGESIZE:          return PAGE_SIZE;
-    case _SC_PAGE_SIZE:         return PAGE_SIZE;
+
+    case _SC_PAGESIZE:
+    case _SC_PAGE_SIZE:
+        return PAGE_SIZE;
+
 #ifdef _XOPEN_UNIX
     case _SC_XOPEN_UNIX:        return _XOPEN_UNIX;
 #endif
diff --git a/libc/include/asm/page.h b/libc/include/asm/page.h
deleted file mode 100644
index d401a3f..0000000
--- a/libc/include/asm/page.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __ASM_PAGE_H
-#define __ASM_PAGE_H
-
-/* New code should use sysconf(_SC_PAGESIZE) instead. */
-#define PAGE_SHIFT 12
-#define PAGE_SIZE (1ULL << PAGE_SHIFT)
-#define PAGE_MASK (~(PAGE_SIZE - 1))
-
-#endif
diff --git a/libc/include/limits.h b/libc/include/limits.h
index b9d4354..471d380 100644
--- a/libc/include/limits.h
+++ b/libc/include/limits.h
@@ -105,9 +105,15 @@
 #define ULONG_LONG_MAX  ULLONG_MAX
 #endif
 
+/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
+#ifndef PAGE_SIZE
+#define PAGE_SIZE 4096
+#endif
 #ifndef PAGESIZE
-#include <asm/page.h>
 #define  PAGESIZE  PAGE_SIZE
 #endif
 
+/* glibc's PAGE_MASK is the bitwise negation of BSD's! TODO: remove? */
+#define PAGE_MASK (~(PAGE_SIZE - 1))
+
 #endif /* !_LIMITS_H_ */
diff --git a/libc/include/sys/mman.h b/libc/include/sys/mman.h
index 7c5f8d7..5a8c985 100644
--- a/libc/include/sys/mman.h
+++ b/libc/include/sys/mman.h
@@ -31,7 +31,6 @@
 #include <sys/cdefs.h>
 #include <sys/types.h>
 #include <asm/mman.h>
-#include <asm/page.h>
 
 __BEGIN_DECLS
 
@@ -44,23 +43,23 @@
 #define MREMAP_MAYMOVE  1
 #define MREMAP_FIXED    2
 
-extern void*  mmap(void *, size_t, int, int, int, off_t);
-extern void*  mmap64(void *, size_t, int, int, int, off64_t);
-extern int    munmap(void *, size_t);
-extern int    msync(const void *, size_t, int);
-extern int    mprotect(const void *, size_t, int);
-extern void*  mremap(void *, size_t, size_t, unsigned long);
+extern void* mmap(void*, size_t, int, int, int, off_t);
+extern void* mmap64(void*, size_t, int, int, int, off64_t);
+extern int munmap(void*, size_t);
+extern int msync(const void*, size_t, int);
+extern int mprotect(const void*, size_t, int);
+extern void* mremap(void*, size_t, size_t, unsigned long);
 
-extern int    mlockall(int);
-extern int    munlockall(void);
-extern int    mlock(const void *, size_t);
-extern int    munlock(const void *, size_t);
-extern int    madvise(const void *, size_t, int);
+extern int mlockall(int);
+extern int munlockall(void);
+extern int mlock(const void*, size_t);
+extern int munlock(const void*, size_t);
+extern int madvise(const void*, size_t, int);
 
-extern int    mlock(const void *addr, size_t len);
-extern int    munlock(const void *addr, size_t len);
+extern int mlock(const void*, size_t);
+extern int munlock(const void*, size_t);
 
-extern int    mincore(void*  start, size_t  length, unsigned char*  vec);
+extern int mincore(void*, size_t, unsigned char*);
 
 __END_DECLS
 
diff --git a/libc/include/sys/user.h b/libc/include/sys/user.h
index 90cce80..e16b1a5 100644
--- a/libc/include/sys/user.h
+++ b/libc/include/sys/user.h
@@ -30,6 +30,7 @@
 #define _SYS_USER_H_
 
 #include <sys/cdefs.h>
+#include <limits.h> /* For PAGE_SIZE. */
 
 __BEGIN_DECLS
 
diff --git a/tests/sys_mman_test.cpp b/tests/sys_mman_test.cpp
index 57067d7..6ac279f 100644
--- a/tests/sys_mman_test.cpp
+++ b/tests/sys_mman_test.cpp
@@ -20,11 +20,11 @@
 #include <unistd.h>
 
 TEST(sys_mman, mmap_negative) {
-  off_t off = -sysconf(_SC_PAGESIZE); // Aligned but negative.
+  off_t off = -sysconf(_SC_PAGE_SIZE); // Aligned but negative.
   ASSERT_EQ(MAP_FAILED, mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, off));
 }
 
 TEST(sys_mman, mmap64_negative) {
-  off64_t off64 = -sysconf(_SC_PAGESIZE); // Aligned but negative.
+  off64_t off64 = -sysconf(_SC_PAGE_SIZE); // Aligned but negative.
   ASSERT_EQ(MAP_FAILED, mmap64(NULL, 4096, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, off64));
 }
