diff options
author | Christopher Ferris <cferris@google.com> | 2015-10-30 16:02:01 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-10-30 16:02:01 +0000 |
commit | e75453d5dd8b373f6e7ef61ec22a6a3074d51e02 (patch) | |
tree | fa4eb5a723f697521a7cc9b411dce1aba855738d | |
parent | 50e92795890c0d8b4bf54c535f66f3b2edf7bd59 (diff) | |
parent | 9978a9a82e3b883b32a7a0bcd5cac18f31e7a68d (diff) | |
download | bionic-e75453d5dd8b373f6e7ef61ec22a6a3074d51e02.tar.gz |
Merge "Move __set_errno to ndk_cruft.cpp."
-rw-r--r-- | libc/bionic/__set_errno.cpp | 15 | ||||
-rw-r--r-- | libc/bionic/ndk_cruft.cpp | 6 |
2 files changed, 10 insertions, 11 deletions
diff --git a/libc/bionic/__set_errno.cpp b/libc/bionic/__set_errno.cpp index 30df350ea..9ef0047cc 100644 --- a/libc/bionic/__set_errno.cpp +++ b/libc/bionic/__set_errno.cpp @@ -36,20 +36,13 @@ // system these are the same size, but on a 64-bit system they're not. // 'long' gives us 32-bit on 32-bit systems, 64-bit on 64-bit systems. -// __set_errno was mistakenly exposed in <errno.h> in the 32-bit NDK. -// We need the extra level of indirection so that the .hidden directives -// in the system call stubs don't cause __set_errno to be hidden, breaking -// old NDK apps. +// Since __set_errno was mistakenly exposed in <errno.h> in the 32-bit +// NDK, use a differently named internal function for the system call +// stubs. This avoids having the stubs .hidden directives accidentally +// hide __set_errno for old NDK apps. // This one is for internal use only and used by both LP32 and LP64 assembler. extern "C" __LIBC_HIDDEN__ long __set_errno_internal(int n) { errno = n; return -1; } - -// This one exists for the LP32 NDK and is not present at all in LP64. -#if !defined(__LP64__) -extern "C" long __set_errno(int n) { - return __set_errno_internal(n); -} -#endif diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp index 231cf106e..d6b8e8f02 100644 --- a/libc/bionic/ndk_cruft.cpp +++ b/libc/bionic/ndk_cruft.cpp @@ -357,6 +357,12 @@ extern "C" pthread_internal_t* __get_thread() { return __real_get_thread(); } +// This one exists only for the LP32 NDK and is not present anywhere else. +extern "C" long __set_errno_internal(int); +extern "C" long __set_errno(int n) { + return __set_errno_internal(n); +} + #endif // !defined(__LP64__) // This was never implemented in bionic, only needed for ABI compatibility with the NDK. |