Commit 2426949a188a7440b88e1333b16dc1931de5337d

Sam Lantinga 2021-02-01T21:56:56

Removed support for clock_gettime_nsec_np() SDL_GetTicks() was broken and it's not adding any real value here.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e20eef..b66a814 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -875,18 +875,6 @@ if(LIBC)
     else()
       set(HAVE_ALLOCA_H 1)
       set(HAVE_ALLOCA 1)
-      if(IOS OR TVOS)   # assuming iOS / TVOS >= 10.0
-        set(HAVE_CLOCK_GETTIME_NSEC_NP 1)
-      else()
-        CHECK_C_SOURCE_COMPILES("
-          #include <AvailabilityMacros.h>
-          #include <time.h>
-          #if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
-          #error Need 10.12 or newer target
-          #endif
-          int main(int argc, char **argv) { return !clock_gettime_nsec_np(CLOCK_MONOTONIC); }
-        " HAVE_CLOCK_GETTIME_NSEC_NP)
-      endif()
     endif()
 
     check_struct_has_member("struct sigaction" "sa_sigaction" "signal.h" HAVE_SA_SIGACTION)
diff --git a/configure b/configure
index 4f5f6ca..da4ee6e 100755
--- a/configure
+++ b/configure
@@ -24769,47 +24769,6 @@ $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
     fi
 }
 
-CheckClockGettimeAPPLE()
-{
-    have_clock_gettime_apple=no
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime_nsec_np" >&5
-$as_echo_n "checking for clock_gettime_nsec_np... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <AvailabilityMacros.h>
-#include <time.h>
-
-int
-main ()
-{
-
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
-#error Need 10.12 or newer target
-#endif
-        return !clock_gettime_nsec_np(CLOCK_MONOTONIC);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-        have_clock_gettime_apple=yes
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_clock_gettime_apple" >&5
-$as_echo "$have_clock_gettime_apple" >&6; }
-
-    if test x$have_clock_gettime_apple = xyes; then
-
-$as_echo "#define HAVE_CLOCK_GETTIME_NSEC_NP 1" >>confdefs.h
-
-    fi
-}
-
 CheckLinuxVersion()
 {
     ac_fn_c_check_header_mongrel "$LINENO" "linux/version.h" "ac_cv_header_linux_version_h" "$ac_includes_default"
@@ -25504,10 +25463,6 @@ fi
         CheckVulkan
         CheckPTHREAD
 
-
-$as_echo "#define HAVE_CLOCK_GETTIME_NSEC_NP 1" >>confdefs.h
-
-
         SOURCES="$SOURCES $srcdir/src/misc/ios/*.m"
         have_misc=yes
 
@@ -25625,7 +25580,6 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
 
         CheckVisibilityHidden
         CheckDeclarationAfterStatement
-        CheckClockGettimeAPPLE
         CheckDummyVideo
         CheckDiskAudio
         CheckDummyAudio
diff --git a/configure.ac b/configure.ac
index ed1645a..107563d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3496,29 +3496,6 @@ AS_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettime
     fi
 }
 
-dnl Check for clock_gettime_nsec_np()
-CheckClockGettimeAPPLE()
-{
-    have_clock_gettime_apple=no
-    AC_MSG_CHECKING(for clock_gettime_nsec_np)
-    AC_TRY_LINK([
-#include <AvailabilityMacros.h>
-#include <time.h>
-      ],[
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
-#error Need 10.12 or newer target
-#endif
-        return !clock_gettime_nsec_np(CLOCK_MONOTONIC);
-      ],[
-        have_clock_gettime_apple=yes
-    ])
-    AC_MSG_RESULT($have_clock_gettime_apple)
-
-    if test x$have_clock_gettime_apple = xyes; then
-        AC_DEFINE(HAVE_CLOCK_GETTIME_NSEC_NP, 1, [ ])
-    fi
-}
-
 dnl Check for a valid linux/version.h
 CheckLinuxVersion()
 {
@@ -4054,9 +4031,6 @@ AS_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau
         CheckVulkan
         CheckPTHREAD
 
-        dnl assuming iOS >= 10.0
-        AC_DEFINE(HAVE_CLOCK_GETTIME_NSEC_NP, 1, [ ])
-
         SOURCES="$SOURCES $srcdir/src/misc/ios/*.m"
         have_misc=yes
 
@@ -4152,7 +4126,6 @@ AS_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau
 
         CheckVisibilityHidden
         CheckDeclarationAfterStatement
-        CheckClockGettimeAPPLE
         CheckDummyVideo
         CheckDiskAudio
         CheckDummyAudio
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index ede9bba..977050d 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -191,7 +191,6 @@
 #cmakedefine HAVE_SYSCONF 1
 #cmakedefine HAVE_SYSCTLBYNAME 1
 #cmakedefine HAVE_CLOCK_GETTIME 1
-#cmakedefine HAVE_CLOCK_GETTIME_NSEC_NP 1
 #cmakedefine HAVE_GETPAGESIZE 1
 #cmakedefine HAVE_MPROTECT 1
 #cmakedefine HAVE_ICONV 1
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 9480eb4..eb2b417 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -196,7 +196,6 @@
 #undef HAVE_SYSCONF
 #undef HAVE_SYSCTLBYNAME
 #undef HAVE_CLOCK_GETTIME
-#undef HAVE_CLOCK_GETTIME_NSEC_NP
 #undef HAVE_GETPAGESIZE
 #undef HAVE_MPROTECT
 #undef HAVE_ICONV
diff --git a/include/SDL_config_iphoneos.h b/include/SDL_config_iphoneos.h
index 08524b4..9a748be 100644
--- a/include/SDL_config_iphoneos.h
+++ b/include/SDL_config_iphoneos.h
@@ -53,7 +53,6 @@
 #define HAVE_REALLOC    1
 #define HAVE_FREE   1
 #define HAVE_ALLOCA 1
-#define HAVE_CLOCK_GETTIME_NSEC_NP 1
 #define HAVE_GETENV 1
 #define HAVE_SETENV 1
 #define HAVE_PUTENV 1
diff --git a/include/SDL_config_macosx.h b/include/SDL_config_macosx.h
index 464b197..9a8f720 100644
--- a/include/SDL_config_macosx.h
+++ b/include/SDL_config_macosx.h
@@ -56,9 +56,6 @@
 #define HAVE_CALLOC 1
 #define HAVE_REALLOC    1
 #define HAVE_FREE   1
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
-#define HAVE_CLOCK_GETTIME_NSEC_NP 1
-#endif
 #define HAVE_ALLOCA 1
 #define HAVE_GETENV 1
 #define HAVE_SETENV 1
diff --git a/src/timer/unix/SDL_systimer.c b/src/timer/unix/SDL_systimer.c
index 5af307b..05db3a9 100644
--- a/src/timer/unix/SDL_systimer.c
+++ b/src/timer/unix/SDL_systimer.c
@@ -46,7 +46,7 @@
    Also added OS X Monotonic clock support
    Based on work in https://github.com/ThomasHabets/monotonic_clock
  */
-#if HAVE_NANOSLEEP || HAVE_CLOCK_GETTIME || HAVE_CLOCK_GETTIME_NSEC_NP
+#if HAVE_NANOSLEEP || HAVE_CLOCK_GETTIME
 #include <time.h>
 #endif
 #ifdef __APPLE__
@@ -54,7 +54,7 @@
 #endif
 
 /* Use CLOCK_MONOTONIC_RAW, if available, which is not subject to adjustment by NTP */
-#if HAVE_CLOCK_GETTIME || HAVE_CLOCK_GETTIME_NSEC_NP
+#if HAVE_CLOCK_GETTIME
 #ifdef CLOCK_MONOTONIC_RAW
 #define SDL_MONOTONIC_CLOCK CLOCK_MONOTONIC_RAW
 #else
@@ -65,7 +65,7 @@
 /* The first ticks value of the application */
 #if HAVE_CLOCK_GETTIME
 static struct timespec start_ts;
-#elif defined(__APPLE__) && !HAVE_CLOCK_GETTIME_NSEC_NP
+#elif defined(__APPLE__)
 static uint64_t start_mach;
 mach_timebase_info_data_t mach_base_info;
 #endif
@@ -87,17 +87,11 @@ SDL_TicksInit(void)
         has_monotonic_time = SDL_TRUE;
     } else
 #elif defined(__APPLE__)
-#if !HAVE_CLOCK_GETTIME_NSEC_NP
     kern_return_t ret = mach_timebase_info(&mach_base_info);
     if (ret == 0) {
         has_monotonic_time = SDL_TRUE;
         start_mach = mach_absolute_time();
     } else
-#else
-    if (clock_gettime_nsec_np(SDL_MONOTONIC_CLOCK) > 0) {
-        has_monotonic_time = SDL_TRUE;
-    } else
-#endif
 #endif
     {
         gettimeofday(&start_tv, NULL);
@@ -124,13 +118,9 @@ SDL_GetTicks(void)
         clock_gettime(SDL_MONOTONIC_CLOCK, &now);
         ticks = (Uint32)((now.tv_sec - start_ts.tv_sec) * 1000 + (now.tv_nsec - start_ts.tv_nsec) / 1000000);
 #elif defined(__APPLE__)
-#if !HAVE_CLOCK_GETTIME_NSEC_NP
         uint64_t now = mach_absolute_time();
         ticks = (Uint32)((((now - start_mach) * mach_base_info.numer) / mach_base_info.denom) / 1000000);
 #else
-        ticks = (Uint32)clock_gettime_nsec_np(SDL_MONOTONIC_CLOCK);
-#endif
-#else
         SDL_assert(SDL_FALSE);
         ticks = 0;
 #endif
@@ -160,12 +150,8 @@ SDL_GetPerformanceCounter(void)
         ticks *= 1000000000;
         ticks += now.tv_nsec;
 #elif defined(__APPLE__)
-#if !HAVE_CLOCK_GETTIME_NSEC_NP
         ticks = mach_absolute_time();
 #else
-        ticks = (Uint32)clock_gettime_nsec_np(SDL_MONOTONIC_CLOCK);
-#endif
-#else
         SDL_assert(SDL_FALSE);
         ticks = 0;
 #endif
@@ -191,16 +177,13 @@ SDL_GetPerformanceFrequency(void)
 #if HAVE_CLOCK_GETTIME
         return 1000000000;
 #elif defined(__APPLE__)
-#if !HAVE_CLOCK_GETTIME_NSEC_NP
         Uint64 freq = mach_base_info.denom;
         freq *= 1000000000;
         freq /= mach_base_info.numer;
         return freq;
-#else
-        return 1000000000;
-#endif
 #endif
-    }
+    } 
+        
     return 1000000;
 }