From dd4ad5c463c9bd479e8acf81227708717aafe204 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Wed, 18 Jun 2014 11:44:00 -0700 Subject: [PATCH] Hide _tolower_tab_ and _toupper_tab_ on LP64. We can't hide them on LP32 because they appeared in NDK headers. Bug: 11156955 Change-Id: I22bf5a0f4d330c04b49565bc598cd0568128d4fc --- libc/include/ctype.h | 2 -- libc/include/sys/cdefs_elf.h | 7 +++++++ libc/upstream-openbsd/android/include/openbsd-compat.h | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) 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