Signed-off-by: Jacek Caban <ja...@codeweavers.com>
---
 mingw-w64-crt/Makefile.am              |  2 +-
 mingw-w64-crt/lib-common/msvcrt.def.in |  4 +-
 mingw-w64-crt/lib32/msvcr100.def.in    |  4 +-
 mingw-w64-crt/lib32/msvcr80.def.in     |  2 +
 mingw-w64-crt/lib32/msvcr90.def.in     |  4 +-
 mingw-w64-crt/lib64/msvcr100.def.in    |  4 +-
 mingw-w64-crt/lib64/msvcr80.def.in     |  2 +
 mingw-w64-crt/lib64/msvcr90.def.in     |  4 +-
 mingw-w64-crt/misc/difftime.c          | 21 ----------
 mingw-w64-crt/misc/difftime32.c        |  9 -----
 mingw-w64-crt/misc/difftime64.c        |  9 -----
 mingw-w64-headers/crt/time.h           | 55 +++++++++++---------------
 12 files changed, 37 insertions(+), 83 deletions(-)
 delete mode 100644 mingw-w64-crt/misc/difftime.c
 delete mode 100644 mingw-w64-crt/misc/difftime32.c
 delete mode 100644 mingw-w64-crt/misc/difftime64.c


diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 689a17c7..a30c890e 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -317,7 +317,7 @@ src_libmingwex=\
   misc/mingw_getsp.S \
   misc/alarm.c \
   misc/basename.c        misc/btowc.c               misc/delay-f.c          misc/delay-n.c         \
-  misc/delayimp.c        misc/difftime.c            misc/difftime32.c       misc/difftime64.c            misc/dirent.c          \
+  misc/delayimp.c        misc/dirent.c          \
   misc/dirname.c \
   misc/feclearexcept.c   misc/fegetenv.c            misc/fegetexceptflag.c  misc/fegetround.c            misc/feholdexcept.c    \
   misc/feraiseexcept.c   misc/fesetenv.c            misc/fesetexceptflag.c  misc/fesetround.c            misc/fetestexcept.c    \
diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in
index bc9c0c63..1c4f4089 100644
--- a/mingw-w64-crt/lib-common/msvcrt.def.in
+++ b/mingw-w64-crt/lib-common/msvcrt.def.in
@@ -456,8 +456,8 @@ _cwscanf_s
 _cwscanf_s_l
 _dstbias DATA
 F_ARM_ANY(_daylight DATA)
-F_ARM_ANY(_difftime32)
-F_ARM_ANY(_difftime64)
+_difftime32 F_I386(== difftime)
+_difftime64
 _dup
 _dup2
 _ecvt
diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in
index e58937d4..8bc4f514 100644
--- a/mingw-w64-crt/lib32/msvcr100.def.in
+++ b/mingw-w64-crt/lib32/msvcr100.def.in
@@ -805,8 +805,8 @@ _cwscanf
 _cwscanf_l
 _cwscanf_s
 _cwscanf_s_l
-_difftime32 DATA
-_difftime64 DATA
+_difftime32
+_difftime64
 _dosmaperr
 _dstbias DATA
 _dup
diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in
index 4914931d..c1092e83 100644
--- a/mingw-w64-crt/lib32/msvcr80.def.in
+++ b/mingw-w64-crt/lib32/msvcr80.def.in
@@ -141,6 +141,8 @@ _creat
 _cscanf
 _ctype DATA
 _cwait
+_difftime32
+_difftime64
 _dstbias DATA
 _dup
 _dup2
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in
index 182ec506..ada4f638 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -431,8 +431,8 @@ _cwscanf_l
 _cwscanf_s
 _cwscanf_s_l
 _decode_pointer DATA
-_difftime32 DATA
-_difftime64 DATA
+_difftime32
+_difftime64
 _dosmaperr
 _dstbias DATA
 _dup
diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in
index c081fea2..5faa3619 100644
--- a/mingw-w64-crt/lib64/msvcr100.def.in
+++ b/mingw-w64-crt/lib64/msvcr100.def.in
@@ -763,8 +763,8 @@ _cwscanf
 _cwscanf_l
 _cwscanf_s
 _cwscanf_s_l
-_difftime32 DATA
-_difftime64 DATA
+_difftime32
+_difftime64
 _dosmaperr
 _dstbias DATA
 _dup
diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in
index 8b900603..6c6a5518 100644
--- a/mingw-w64-crt/lib64/msvcr80.def.in
+++ b/mingw-w64-crt/lib64/msvcr80.def.in
@@ -231,6 +231,8 @@ _ctype
 _cwait
 _cwprintf
 _cwscanf
+_difftime32
+_difftime64
 _dstbias DATA
 _dup
 _dup2
diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in
index 2ff5050b..14923195 100644
--- a/mingw-w64-crt/lib64/msvcr90.def.in
+++ b/mingw-w64-crt/lib64/msvcr90.def.in
@@ -379,8 +379,8 @@ _cwscanf_l
 _cwscanf_s
 _cwscanf_s_l
 _decode_pointer DATA
-_difftime32 DATA
-_difftime64 DATA
+_difftime32
+_difftime64
 _dosmaperr
 _dstbias DATA
 _dup
diff --git a/mingw-w64-crt/misc/difftime.c b/mingw-w64-crt/misc/difftime.c
deleted file mode 100644
index 5d49f529..00000000
--- a/mingw-w64-crt/misc/difftime.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#define __CRT__NO_INLINE
-#include <time.h>
-#include <memory.h>
-
-/* FIXME: Relying on _USE_32BIT_TIME_T, which is a user-macro,
-during CRT compilation is plainly broken.  Need an appropriate
-implementation to provide users the ability of compiling the
-CRT only with 32-bit time_t behavior. */
-
-#ifndef _USE_32BIT_TIME_T
-double __cdecl difftime(time_t _Time1,time_t _Time2)
-{
-  return _difftime64(_Time1,_Time2);
-}
-#else
-double __cdecl difftime(time_t _Time1,time_t _Time2)
-{
-  return _difftime32(_Time1,_Time2);
-}
-#endif
-
diff --git a/mingw-w64-crt/misc/difftime32.c b/mingw-w64-crt/misc/difftime32.c
deleted file mode 100644
index b8939444..00000000
--- a/mingw-w64-crt/misc/difftime32.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <time.h>
-
-double __cdecl _difftime32(__time32_t _Time1,__time32_t _Time2)
-{
-  __time32_t r = _Time1 - _Time2;
-  if (r > _Time1)
-    return -((double) (_Time2 - _Time1));
-  return (double) r;
-}
diff --git a/mingw-w64-crt/misc/difftime64.c b/mingw-w64-crt/misc/difftime64.c
deleted file mode 100644
index 54f9a12a..00000000
--- a/mingw-w64-crt/misc/difftime64.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <time.h>
-
-double __cdecl _difftime64(__time64_t _Time1,__time64_t _Time2)
-{
-  __time64_t r = _Time1 - _Time2;
-  if (r > _Time1)
-    return -((double) (_Time2 - _Time1));
-  return (double) r;
-}
diff --git a/mingw-w64-headers/crt/time.h b/mingw-w64-headers/crt/time.h
index f0a83797..02abd7b6 100644
--- a/mingw-w64-headers/crt/time.h
+++ b/mingw-w64-headers/crt/time.h
@@ -131,13 +131,13 @@ extern "C" {
   _CRTIMP errno_t __cdecl _get_tzname(size_t *_ReturnValue,char *_Buffer,size_t _SizeInBytes,int _Index);
   char *__cdecl asctime(const struct tm *_Tm) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl asctime_s (char *_Buf,size_t _SizeInWords,const struct tm *_Tm);
-  char *__cdecl _ctime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+  _CRTIMP char *__cdecl _ctime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl _ctime32_s (char *_Buf,size_t _SizeInBytes,const __time32_t *_Time);
   clock_t __cdecl clock(void);
-  double __cdecl _difftime32(__time32_t _Time1,__time32_t _Time2);
-  struct tm *__cdecl _gmtime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+  _CRTIMP double __cdecl _difftime32(__time32_t _Time1,__time32_t _Time2);
+  _CRTIMP struct tm *__cdecl _gmtime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl _gmtime32_s (struct tm *_Tm,const __time32_t *_Time);
-  struct tm *__cdecl _localtime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+  _CRTIMP struct tm *__cdecl _localtime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl _localtime32_s (struct tm *_Tm,const __time32_t *_Time);
   size_t __cdecl strftime(char * __restrict__ _Buf,size_t _SizeInBytes,const char * __restrict__ _Format,const struct tm * __restrict__ _Tm);
   _CRTIMP size_t __cdecl _strftime_l(char * __restrict__ _Buf,size_t _Max_size,const char * __restrict__ _Format,const struct tm * __restrict__ _Tm,_locale_t _Locale);
@@ -145,9 +145,9 @@ extern "C" {
   _SECIMP errno_t __cdecl _strdate_s (char *_Buf,size_t _SizeInBytes);
   _CRTIMP char *__cdecl _strtime(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl _strtime_s (char *_Buf ,size_t _SizeInBytes);
-  __time32_t __cdecl _time32(__time32_t *_Time);
-  __time32_t __cdecl _mktime32(struct tm *_Tm);
-  __time32_t __cdecl _mkgmtime32(struct tm *_Tm);
+  _CRTIMP __time32_t __cdecl _time32(__time32_t *_Time);
+  _CRTIMP __time32_t __cdecl _mktime32(struct tm *_Tm);
+  _CRTIMP __time32_t __cdecl _mkgmtime32(struct tm *_Tm);
 
 #if defined (_POSIX_) || defined(__GNUC__)
   void __cdecl tzset(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
@@ -159,7 +159,7 @@ extern "C" {
   void __cdecl _tzset(void);
 #endif
 
-  double __cdecl _difftime64(__time64_t _Time1,__time64_t _Time2);
+  _CRTIMP double __cdecl _difftime64(__time64_t _Time1,__time64_t _Time2);
   _CRTIMP char *__cdecl _ctime64(const __time64_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _SECIMP errno_t __cdecl _ctime64_s (char *_Buf,size_t _SizeInBytes,const __time64_t *_Time);
   _CRTIMP struct tm *__cdecl _gmtime64(const __time64_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -215,39 +215,28 @@ extern "C" {
 
 #ifndef RC_INVOKED
 
-#if __MSVCRT_VERSION__ >= 0x1400
-#define __TIME_INLINE __mingw_static_ovr
-#else
-#define __TIME_INLINE __CRT_INLINE
-#endif
-#if !defined(_USE_32BIT_TIME_T)
-__TIME_INLINE double __cdecl difftime(time_t _Time1,time_t _Time2)
-  { return _difftime64(_Time1,_Time2); }
-__TIME_INLINE char *__cdecl ctime(const time_t *_Time) { return _ctime64(_Time); }
-__TIME_INLINE struct tm *__cdecl gmtime(const time_t *_Time) { return _gmtime64(_Time); }
-__TIME_INLINE struct tm *__cdecl localtime(const time_t *_Time) { return _localtime64(_Time); }
-__TIME_INLINE time_t __cdecl mktime(struct tm *_Tm) { return _mktime64(_Tm); }
-__TIME_INLINE time_t __cdecl _mkgmtime(struct tm *_Tm) { return _mkgmtime64(_Tm); }
-__TIME_INLINE time_t __cdecl time(time_t *_Time) { return _time64(_Time); }
-#else
-__TIME_INLINE double __cdecl difftime(time_t _Time1,time_t _Time2)
-  { return _difftime32(_Time1,_Time2); }
-__TIME_INLINE char *__cdecl ctime(const time_t *_Time) { return _ctime32(_Time); }
-__TIME_INLINE struct tm *__cdecl localtime(const time_t *_Time) { return _localtime32(_Time); }
-__TIME_INLINE time_t __cdecl mktime(struct tm *_Tm) { return _mktime32(_Tm); }
-__TIME_INLINE struct tm *__cdecl gmtime(const time_t *_Time) { return _gmtime32(_Time); }
-__TIME_INLINE time_t __cdecl _mkgmtime(struct tm *_Tm) { return _mkgmtime32(_Tm); }
-__TIME_INLINE time_t __cdecl time(time_t *_Time) { return _time32(_Time); }
-#endif /* !_USE_32BIT_TIME_T */
-
 #ifdef _USE_32BIT_TIME_T
+__forceinline time_t __cdecl time(time_t *_Time) { return _time32(_Time); }
+__forceinline double __cdecl difftime(time_t _Time1,time_t _Time2)  { return _difftime32(_Time1,_Time2); }
+__forceinline struct tm *__cdecl localtime(const time_t *_Time) { return _localtime32(_Time); }
 __forceinline errno_t __cdecl localtime_s(struct tm *_Tm,const time_t *_Time) { return _localtime32_s(_Tm,_Time); }
+__forceinline struct tm *__cdecl gmtime(const time_t *_Time) { return _gmtime32(_Time); }
 __forceinline errno_t __cdecl gmtime_s(struct tm *_Tm, const time_t *_Time)   { return _gmtime32_s(_Tm, _Time); }
+__forceinline char *__cdecl ctime(const time_t *_Time) { return _ctime32(_Time); }
 __forceinline errno_t __cdecl ctime_s(char *_Buf,size_t _SizeInBytes,const time_t *_Time) { return _ctime32_s(_Buf,_SizeInBytes,_Time); }
+__forceinline time_t __cdecl mktime(struct tm *_Tm) { return _mktime32(_Tm); }
+__forceinline time_t __cdecl _mkgmtime(struct tm *_Tm) { return _mkgmtime32(_Tm); }
 #else
+__forceinline time_t __cdecl time(time_t *_Time) { return _time64(_Time); }
+__forceinline double __cdecl difftime(time_t _Time1,time_t _Time2) { return _difftime64(_Time1,_Time2); }
+__forceinline struct tm *__cdecl localtime(const time_t *_Time) { return _localtime64(_Time); }
 __forceinline errno_t __cdecl localtime_s(struct tm *_Tm,const time_t *_Time) { return _localtime64_s(_Tm,_Time); }
+__forceinline struct tm *__cdecl gmtime(const time_t *_Time) { return _gmtime64(_Time); }
 __forceinline errno_t __cdecl gmtime_s(struct tm *_Tm, const time_t *_Time) { return _gmtime64_s(_Tm, _Time); }
+__forceinline char *__cdecl ctime(const time_t *_Time) { return _ctime64(_Time); }
 __forceinline errno_t __cdecl ctime_s(char *_Buf,size_t _SizeInBytes,const time_t *_Time) { return _ctime64_s(_Buf,_SizeInBytes,_Time); }
+__forceinline time_t __cdecl mktime(struct tm *_Tm) { return _mktime64(_Tm); }
+__forceinline time_t __cdecl _mkgmtime(struct tm *_Tm) { return _mkgmtime64(_Tm); }
 #endif
 
 #endif /* !RC_INVOKED */

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to