LP64 shouldn't include the non-standard <time64.h> cruft.

This patch includes just enough to keep external/chromium_org building
until they switch 64-bit Android over to using the regular non-Android code.

Change-Id: Iecaf274efa46ae18a42d5e3439c5aa4f909177c1
diff --git a/libc/Android.mk b/libc/Android.mk
index be40da6..e183fb0 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -72,7 +72,6 @@
     bionic/strntoimax.c \
     bionic/strntoumax.c \
     bionic/system_properties_compat.c \
-    bionic/time64.c \
     bionic/unlockpt.c \
     stdio/findfp.c \
     stdio/snprintf.c\
diff --git a/libc/arch-arm/arm.mk b/libc/arch-arm/arm.mk
index cbc5fa7..2dbcb56 100644
--- a/libc/arch-arm/arm.mk
+++ b/libc/arch-arm/arm.mk
@@ -4,6 +4,7 @@
 libc_common_src_files_arm := \
     bionic/legacy_32_bit_support.cpp \
     bionic/ndk_cruft.cpp \
+    bionic/time64.c \
 
 # These are shared by all the 32-bit targets, but not the 64-bit ones.
 libc_bionic_src_files_arm := \
diff --git a/libc/arch-mips/mips.mk b/libc/arch-mips/mips.mk
index 1af4a65..53fa223 100644
--- a/libc/arch-mips/mips.mk
+++ b/libc/arch-mips/mips.mk
@@ -4,6 +4,7 @@
 libc_common_src_files_mips := \
     bionic/legacy_32_bit_support.cpp \
     bionic/ndk_cruft.cpp \
+    bionic/time64.c \
 
 # These are shared by all the 32-bit targets, but not the 64-bit ones.
 libc_bionic_src_files_mips += \
diff --git a/libc/arch-x86/x86.mk b/libc/arch-x86/x86.mk
index 846bb42..a1d55f0 100644
--- a/libc/arch-x86/x86.mk
+++ b/libc/arch-x86/x86.mk
@@ -4,6 +4,7 @@
 libc_common_src_files_x86 := \
     bionic/legacy_32_bit_support.cpp \
     bionic/ndk_cruft.cpp \
+    bionic/time64.c \
 
 # Fortify implementations of libc functions.
 libc_common_src_files_x86 += \
diff --git a/libc/bionic/time64.c b/libc/bionic/time64.c
index 9aa5d4f..7163b34 100644
--- a/libc/bionic/time64.c
+++ b/libc/bionic/time64.c
@@ -28,6 +28,10 @@
 
 /* See http://code.google.com/p/y2038 for this code's origin */
 
+#if defined(__LP64__)
+#error This cruft should be LP32 only!
+#endif
+
 /*
 
 Programmers who have available to them 64-bit time values as a 'long
@@ -268,7 +272,7 @@
 
     assert(tm->tm_wday >= 0);
     assert(tm->tm_wday <= 6);
-   
+
     assert(tm->tm_yday >= 0);
     assert(tm->tm_yday <= length_of_year[IS_LEAP(tm->tm_year)]);
 
diff --git a/libc/include/time64.h b/libc/include/time64.h
index 7ec05af..b4f1280 100644
--- a/libc/include/time64.h
+++ b/libc/include/time64.h
@@ -31,29 +31,41 @@
 #ifndef TIME64_H
 #define TIME64_H
 
+#if defined(__LP64__)
+
+/* TODO: remove this when external/chromium_org is fixed. */
+#define time64_t time_t
+#define gmtime64_r gmtime_r
+#define localtime64_r localtime_r
+#define mktime64 mktime
+#define timegm64 timegm
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
 #include <sys/cdefs.h>
 #include <time.h>
 #include <stdint.h>
 
 __BEGIN_DECLS
 
-typedef int64_t  time64_t;
+typedef int64_t time64_t;
 
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
 
 __END_DECLS
 
+#endif
+
 #endif /* TIME64_H */