diff --git a/libc/include/ctype.h b/libc/include/ctype.h index a66df12e2..6e973269c 100644 --- a/libc/include/ctype.h +++ b/libc/include/ctype.h @@ -56,8 +56,6 @@ __BEGIN_DECLS extern const char *_ctype_; -extern const short *_tolower_tab_; -extern const short *_toupper_tab_; #if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint) int isalnum(int); diff --git a/libc/include/sys/cdefs_elf.h b/libc/include/sys/cdefs_elf.h index c21214cc2..b5db13e64 100644 --- a/libc/include/sys/cdefs_elf.h +++ b/libc/include/sys/cdefs_elf.h @@ -64,6 +64,13 @@ /* Used to tag non-static symbols that are private and never exposed by the shared library. */ #define __LIBC_HIDDEN__ __attribute__((visibility ("hidden"))) +/* Like __LIBC_HIDDEN__, but preserves binary compatibility for LP32. */ +#ifdef __LP64__ +#define __LIBC64_HIDDEN__ __LIBC_HIDDEN__ +#else +#define __LIBC64_HIDDEN__ +#endif + /* Used to tag non-static symbols that are public and exposed by the shared library. */ #define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default"))) diff --git a/libc/upstream-openbsd/android/include/openbsd-compat.h b/libc/upstream-openbsd/android/include/openbsd-compat.h index 8618e3104..f00d91ab2 100644 --- a/libc/upstream-openbsd/android/include/openbsd-compat.h +++ b/libc/upstream-openbsd/android/include/openbsd-compat.h @@ -17,6 +17,8 @@ #ifndef _BIONIC_OPENBSD_COMPAT_H_included #define _BIONIC_OPENBSD_COMPAT_H_included +#include + #define __USE_BSD /* OpenBSD's uses these names, which conflicted with stlport. @@ -34,4 +36,8 @@ /* OpenBSD has this, but we can't really implement it correctly on Linux. */ #define issetugid() 0 +/* LP32 NDK ctype.h contained references to these. */ +__LIBC64_HIDDEN__ extern const short *_tolower_tab_; +__LIBC64_HIDDEN__ extern const short *_toupper_tab_; + #endif