Merge "Move getusershell/endusershell/setusershell to ndk_cruft.cpp."
diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp
index 77412ac..ceff6a1 100644
--- a/libc/bionic/ndk_cruft.cpp
+++ b/libc/bionic/ndk_cruft.cpp
@@ -26,8 +26,7 @@
* SUCH DAMAGE.
*/
-// This file perpetuates the mistakes of the past, but only for 32-bit targets.
-#if !defined(__LP64__)
+// This file perpetuates the mistakes of the past.
#include <ctype.h>
#include <dirent.h>
@@ -46,6 +45,11 @@
#include <unistd.h>
#include <wchar.h>
+#include "private/libc_logging.h"
+
+// The part is only for 32-bit targets.
+#if !defined(__LP64__)
+
// 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" {
@@ -342,4 +346,15 @@
return malloc(size);
}
-#endif
+#endif // !defined(__LP64__)
+
+// This is never implemented in bionic, only needed for ABI compatibility with the NDK.
+extern "C" char* getusershell() {
+ return NULL;
+}
+
+// This is never implemented in bionic, only needed for ABI compatibility with the NDK.
+extern "C" void setusershell() { }
+
+// This is never implemented in bionic, only needed for ABI compatibility with the NDK.
+extern "C" void endusershell() { }
diff --git a/libc/bionic/stubs.cpp b/libc/bionic/stubs.cpp
index 1264fd7..c192bf8 100644
--- a/libc/bionic/stubs.cpp
+++ b/libc/bionic/stubs.cpp
@@ -458,19 +458,6 @@
UNIMPLEMENTED;
}
-char* getusershell() {
- UNIMPLEMENTED;
- return NULL;
-}
-
-void setusershell() {
- UNIMPLEMENTED;
-}
-
-void endusershell() {
- UNIMPLEMENTED;
-}
-
// Portable code should use sysconf(_SC_PAGE_SIZE) directly instead.
int getpagesize() {
// We dont use sysconf(3) here because that drags in stdio, which makes static binaries fat.
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index a6d791c..92d3abe 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -116,10 +116,6 @@
extern int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
extern int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
extern char* getlogin(void);
-extern char* getusershell(void);
-extern void setusershell(void);
-extern void endusershell(void);
-
extern long fpathconf(int, int);
extern long pathconf(const char*, int);