]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/lz4/0001-use-more-restrictive-conditions-for-clock_gettime.patch
lz4: fix host build with glibc older than 2.17
[coffee/buildroot.git] / package / lz4 / 0001-use-more-restrictive-conditions-for-clock_gettime.patch
1 From 7dba09af47dd3daa1562a6332a643a1a59dba4a8 Mon Sep 17 00:00:00 2001
2 From: Yann Collet <cyan@fb.com>
3 Date: Tue, 16 Jan 2018 10:21:37 -0800
4 Subject: [PATCH] use more restrictive conditions for clock_gettime()
5
6 Signed-off-by: Baruch Siach <baruch@tkos.co.il>
7 ---
8 Upstream status: commit 7dba09af47dd3
9
10  programs/util.h | 9 ++++++++-
11  1 file changed, 8 insertions(+), 1 deletion(-)
12
13 diff --git a/programs/util.h b/programs/util.h
14 index fc7f63e8140e..a3576d7e3a57 100644
15 --- a/programs/util.h
16 +++ b/programs/util.h
17 @@ -141,6 +141,7 @@ extern "C" {
18  *  Time functions
19  ******************************************/
20  #if defined(_WIN32)   /* Windows */
21 +
22      typedef LARGE_INTEGER UTIL_time_t;
23      UTIL_STATIC UTIL_time_t UTIL_getTime(void) { UTIL_time_t x; QueryPerformanceCounter(&x); return x; }
24      UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd)
25 @@ -165,7 +166,9 @@ extern "C" {
26          }
27          return 1000000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart;
28      }
29 +
30  #elif defined(__APPLE__) && defined(__MACH__)
31 +
32      #include <mach/mach_time.h>
33      typedef U64 UTIL_time_t;
34      UTIL_STATIC UTIL_time_t UTIL_getTime(void) { return mach_absolute_time(); }
35 @@ -189,7 +192,9 @@ extern "C" {
36          }
37          return ((clockEnd - clockStart) * (U64)rate.numer) / ((U64)rate.denom);
38      }
39 -#elif (PLATFORM_POSIX_VERSION >= 200112L)
40 +
41 +#elif (PLATFORM_POSIX_VERSION >= 200112L) && (defined __UCLIBC__ || ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) || __GLIBC__ > 2))
42 +
43      #include <time.h>
44      typedef struct timespec UTIL_time_t;
45      UTIL_STATIC UTIL_time_t UTIL_getTime(void)
46 @@ -227,7 +232,9 @@ extern "C" {
47          nano += diff.tv_nsec;
48          return nano;
49      }
50 +
51  #else   /* relies on standard C (note : clock_t measurements can be wrong when using multi-threading) */
52 +
53      typedef clock_t UTIL_time_t;
54      UTIL_STATIC UTIL_time_t UTIL_getTime(void) { return clock(); }
55      UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd) { return 1000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC; }
56 -- 
57 2.17.0
58