changeset 16295:e3af23ad37a8

stdint: Add support for Android. * lib/stdint.in.h: When included from Bionic <sys/types.h>, just include the system's <stdint.h>. Reported by Simon Josefsson <simon@josefsson.org>.
author Bruno Haible <bruno@clisp.org>
date Sat, 21 Jan 2012 13:09:08 +0100
parents f48c1a8db579
children daedf702e83c
files ChangeLog lib/stdint.in.h
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-01-21  Bruno Haible  <bruno@clisp.org>
+
+	stdint: Add support for Android.
+	* lib/stdint.in.h: When included from Bionic <sys/types.h>, just
+	include the system's <stdint.h>.
+	Reported by Simon Josefsson <simon@josefsson.org>.
+
 2012-01-19  Jim Meyering  <meyering@redhat.com>
 
 	bootstrap: add bootstrap_post_import_hook
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -34,6 +34,14 @@
    <inttypes.h>.  */
 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
+/* On Android (Bionic libc), <sys/types.h> includes this file before
+   having defined 'time_t'.  Therefore in this case avoid including
+   other system header files; just include the system's <stdint.h>.  */
+#if defined __BIONIC__ \
+    && defined _SYS_TYPES_H_ && !defined _SSIZE_T_DEFINED_
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#else
+
 /* Get those types that are already defined in other system include
    files, so that we can "#define int8_t signed char" below without
    worrying about a later system include file containing a "typedef
@@ -606,4 +614,5 @@
 #endif
 
 #endif /* _@GUARD_PREFIX@_STDINT_H */
+#endif /* !(defined __BIONIC__ && ...) */
 #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */