Merge "Fix host tests that need the shell."
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index f5cb1e5..714d0bc 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -60,10 +60,6 @@
 // Declared in <private/bionic_ssp.h>.
 uintptr_t __stack_chk_guard = 0;
 
-// Declared in <asm/page.h>.
-unsigned int __page_size = PAGE_SIZE;
-unsigned int __page_shift = PAGE_SHIFT;
-
 static size_t get_main_thread_stack_size() {
   rlimit stack_limit;
   int rlimit_result = getrlimit(RLIMIT_STACK, &stack_limit);
diff --git a/libc/bionic/libc_init_common.h b/libc/bionic/libc_init_common.h
index 14105f8..59dc7df 100644
--- a/libc/bionic/libc_init_common.h
+++ b/libc/bionic/libc_init_common.h
@@ -49,7 +49,7 @@
 __END_DECLS
 
 #if defined(__cplusplus)
-struct KernelArgumentBlock;
+class KernelArgumentBlock;
 void __LIBC_HIDDEN__ __libc_init_common(KernelArgumentBlock& args);
 #endif
 
diff --git a/libc/bionic/stubs.cpp b/libc/bionic/stubs.cpp
index e8411b7..56f5c045 100644
--- a/libc/bionic/stubs.cpp
+++ b/libc/bionic/stubs.cpp
@@ -469,3 +469,15 @@
 void endusershell() {
   UNIMPLEMENTED;
 }
+
+// Portable code should use sysconf(_SC_PAGESIZE) directly instead.
+int getpagesize() {
+  return sysconf(_SC_PAGESIZE);
+}
+
+// These were accidentally declared in <unistd.h> because we stupidly used to inline
+// 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;
+}
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 98970ae..61d3d6e 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -170,14 +170,7 @@
 
 extern int  acct(const char*  filepath);
 
-static __inline__ int getpagesize(void) {
-  extern unsigned int __page_size;
-  return __page_size;
-}
-static __inline__ int __getpageshift(void) {
-  extern unsigned int __page_shift;
-  return __page_shift;
-}
+int getpagesize(void);
 
 extern int sysconf(int  name);
 
diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h
index d15b1ca..9ea3647 100644
--- a/libc/private/bionic_tls.h
+++ b/libc/private/bionic_tls.h
@@ -113,7 +113,7 @@
 __END_DECLS
 
 #if defined(__cplusplus)
-struct KernelArgumentBlock;
+class KernelArgumentBlock;
 extern __LIBC_HIDDEN__ void __libc_init_tls(KernelArgumentBlock& args);
 #endif