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

This commit is contained in:
Elliott Hughes 2014-04-22 22:53:15 +00:00 committed by Gerrit Code Review
commit c6cd884640
6 changed files with 35 additions and 17 deletions

View File

@ -72,7 +72,6 @@ libc_common_src_files := \
bionic/strntoimax.c \
bionic/strntoumax.c \
bionic/system_properties_compat.c \
bionic/time64.c \
bionic/unlockpt.c \
stdio/findfp.c \
stdio/snprintf.c\

View File

@ -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 := \

View File

@ -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 += \

View File

@ -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 += \

View File

@ -28,6 +28,10 @@ THE SOFTWARE.
/* 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 @@ static int check_tm(struct TM *tm)
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)]);

View File

@ -31,29 +31,41 @@ Modified for Bionic by the Android Open Source Project
#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 */