Ken Thomases : ntdll: On macOS, don't use clock_gettime() even if it' s available.
Alexandre Julliard
julliard at winehq.org
Fri Jun 2 17:03:27 CDT 2017
Module: wine
Branch: master
Commit: 27c71e09ad51ba6aa672a46379efd10b5959863f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=27c71e09ad51ba6aa672a46379efd10b5959863f
Author: Ken Thomases <ken at codeweavers.com>
Date: Thu Jun 1 14:48:05 2017 -0500
ntdll: On macOS, don't use clock_gettime() even if it's available.
The problem is building against the 10.12 or later SDK but deploying to 10.11
or earlier. Support for clock_gettime() is new with 10.12 so configure finds
it and the code uses it, but the symbol is weak linked and resolves to NULL
when running on earlier versions.
Signed-off-by: Ken Thomases <ken at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/time.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/time.c b/dlls/ntdll/time.c
index 3ba3c68..12dbdc3 100644
--- a/dlls/ntdll/time.c
+++ b/dlls/ntdll/time.c
@@ -101,7 +101,12 @@ static ULONGLONG monotonic_counter(void)
{
struct timeval now;
-#ifdef HAVE_CLOCK_GETTIME
+#ifdef __APPLE__
+ static mach_timebase_info_data_t timebase;
+
+ if (!timebase.denom) mach_timebase_info( &timebase );
+ return mach_absolute_time() * timebase.numer / timebase.denom / 100;
+#elif defined(HAVE_CLOCK_GETTIME)
struct timespec ts;
#ifdef CLOCK_MONOTONIC_RAW
if (!clock_gettime( CLOCK_MONOTONIC_RAW, &ts ))
@@ -109,11 +114,6 @@ static ULONGLONG monotonic_counter(void)
#endif
if (!clock_gettime( CLOCK_MONOTONIC, &ts ))
return ts.tv_sec * (ULONGLONG)TICKSPERSEC + ts.tv_nsec / 100;
-#elif defined(__APPLE__)
- static mach_timebase_info_data_t timebase;
-
- if (!timebase.denom) mach_timebase_info( &timebase );
- return mach_absolute_time() * timebase.numer / timebase.denom / 100;
#endif
gettimeofday( &now, 0 );
More information about the wine-cvs
mailing list