]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
tried a blindfix for unix + c11
authorYann Collet <cyan@fb.com>
Wed, 10 Apr 2019 20:26:27 +0000 (13:26 -0700)
committerYann Collet <cyan@fb.com>
Wed, 10 Apr 2019 20:26:27 +0000 (13:26 -0700)
programs/platform.h
programs/timefn.c
programs/timefn.h

index 1a8f97bc4dff0e32326762fd5c4ccd87407ae10a..38ded872743e4b53d46ca0c4af78af863457111c 100644 (file)
@@ -87,8 +87,8 @@ extern "C" {
  * The following list of build macros tries to "guess" if target OS is likely unix-like, and therefore can #include <unistd.h>
  */
 #  elif !defined(_WIN32) \
-     && (defined(__unix__) || defined(__unix) \
-     || defined(__midipix__) || defined(__VMS) || defined(__HAIKU__))
+     && ( defined(__unix__) || defined(__unix) \
+       || defined(__midipix__) || defined(__VMS) || defined(__HAIKU__) )
 
 #    if defined(__linux__) || defined(__linux)
 #      ifndef _POSIX_C_SOURCE
@@ -108,6 +108,7 @@ extern "C" {
 
 #endif   /* PLATFORM_POSIX_VERSION */
 
+
 /*-*********************************************
 *  Detect if isatty() and fileno() are available
 ************************************************/
index ad24769582fec2b3420242fe8c893c198989f26f..efb8156b6f7053d2cf63de520a7aaffd0cab91e9 100644 (file)
@@ -72,11 +72,8 @@ PTime UTIL_getSpanTimeNano(UTIL_time_t clockStart, UTIL_time_t clockEnd)
     return ((clockEnd - clockStart) * (PTime)rate.numer) / ((PTime)rate.denom);
 }
 
-#elif (PLATFORM_POSIX_VERSION >= 200112L) \
-   && (defined(__UCLIBC__)                \
-      || (defined(__GLIBC__)              \
-          && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) \
-             || (__GLIBC__ > 2))))
+#elif (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */) \
+    && defined (CLOCK_MONOTONIC)
 
 UTIL_time_t UTIL_getTime(void)
 {
@@ -86,7 +83,7 @@ UTIL_time_t UTIL_getTime(void)
     return time;
 }
 
-UTIL_time_t UTIL_getSpanTime(UTIL_time_t begin, UTIL_time_t end)
+static UTIL_time_t UTIL_getSpanTime(UTIL_time_t begin, UTIL_time_t end)
 {
     UTIL_time_t diff;
     if (end.tv_nsec < begin.tv_nsec) {
index 7892a69211403846fb1257b078aa79edc6a04040..290da884e48120739e832cbe299a9b9eb2242ef9 100644 (file)
@@ -35,9 +35,9 @@ extern "C" {
 
 #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
 # include <stdint.h>
-  typedef uint64_t PTime;  /* Precise Time */
+  typedef uint64_t           PTime;  /* Precise Time */
 #else
-  typedef unsigned long long PTime;   /* does not support compilers without long long support */
+  typedef unsigned long long PTime;  /* does not support compilers without long long support */
 #endif
 
 
@@ -47,42 +47,35 @@ extern "C" {
 ******************************************/
 #if defined(_WIN32)   /* Windows */
 
-    #define UTIL_TIME_INITIALIZER { { 0, 0 } }
     typedef LARGE_INTEGER UTIL_time_t;
+    #define UTIL_TIME_INITIALIZER { { 0, 0 } }
 
 #elif defined(__APPLE__) && defined(__MACH__)
 
     #include <mach/mach_time.h>
-    #define UTIL_TIME_INITIALIZER 0
     typedef PTime UTIL_time_t;
+    #define UTIL_TIME_INITIALIZER 0
 
-#elif (PLATFORM_POSIX_VERSION >= 200112L) \
-   && (defined(__UCLIBC__)                \
-      || (defined(__GLIBC__)              \
-          && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) \
-             || (__GLIBC__ > 2))))
+#elif (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */) \
+    && defined (CLOCK_MONOTONIC)
 
+    typedef struct timespec UTIL_time_t;   /* C11 defines struct timespes within time.h */
     #define UTIL_TIME_INITIALIZER { 0, 0 }
-    typedef struct timespec UTIL_freq_t;
-    typedef struct timespec UTIL_time_t;
 
-    UTIL_time_t UTIL_getSpanTime(UTIL_time_t begin, UTIL_time_t end);
-
-#else   /* relies on standard C (note : clock_t measurements can be wrong when using multi-threading) */
+#else   /* relies on standard C90 (note : clock_t measurements can be wrong when using multi-threading) */
 
     typedef clock_t UTIL_time_t;
     #define UTIL_TIME_INITIALIZER 0
 
 #endif
 
+
 UTIL_time_t UTIL_getTime(void);
 PTime UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd);
 PTime UTIL_getSpanTimeNano(UTIL_time_t clockStart, UTIL_time_t clockEnd);
 
-
-#define SEC_TO_MICRO 1000000
+#define SEC_TO_MICRO ((PTime)1000000)
 PTime UTIL_clockSpanMicro(UTIL_time_t clockStart);
-
 PTime UTIL_clockSpanNano(UTIL_time_t clockStart);
 
 void UTIL_waitForNextTick(void);