From aa50585d961fb2b0f6943399d90ca0ec734946a3 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 27 May 2014 11:22:39 -0700 Subject: [PATCH] Restore __srefill for LP32. The NDK apparently includes an android_support.a library that refers to __srefill in its copy of the vsnprintf implementation. Bug: 15249361 Change-Id: Ic2cf6f21290b3146c42fbe0624f5e4d54f6194b4 --- libc/stdio/local.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libc/stdio/local.h b/libc/stdio/local.h index c71efd9ae..3c5388c60 100644 --- a/libc/stdio/local.h +++ b/libc/stdio/local.h @@ -41,16 +41,24 @@ #include "wcio.h" #include "fileext.h" -/* Android <= KitKat had getc/putc macros in that referred +#if defined(__LP64__) +/* + * Android <= KitKat had getc/putc macros in that referred * to __srget/__swbuf, so those symbols need to be public for LP32 * but can be hidden for LP64. */ -#if defined(__LP64__) __LIBC_HIDDEN__ int __srget(FILE*); __LIBC_HIDDEN__ int __swbuf(int, FILE*); + +/* + * The NDK apparently includes an android_support.a library that + * refers to __srefill in its copy of the vsnprintf implementation. + */ +__LIBC_HIDDEN__ int __srefill(FILE*); #else __LIBC_ABI_PUBLIC__ int __srget(FILE*); __LIBC_ABI_PUBLIC__ int __swbuf(int, FILE*); +__LIBC_ABI_PUBLIC__ int __srefill(FILE*); #endif #pragma GCC visibility push(hidden) @@ -58,7 +66,6 @@ __LIBC_ABI_PUBLIC__ int __swbuf(int, FILE*); int __sflush(FILE *); int __sflush_locked(FILE *); FILE *__sfp(void); -int __srefill(FILE *); int __sread(void *, char *, int); int __swrite(void *, const char *, int); fpos_t __sseek(void *, fpos_t, int);