From 2426949a188a7440b88e1333b16dc1931de5337d Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 1 Feb 2021 21:56:56 -0800 Subject: [PATCH] Removed support for clock_gettime_nsec_np() SDL_GetTicks() was broken and it's not adding any real value here. --- CMakeLists.txt | 12 --------- configure | 46 ----------------------------------- configure.ac | 27 -------------------- include/SDL_config.h.cmake | 1 - include/SDL_config.h.in | 1 - include/SDL_config_iphoneos.h | 1 - include/SDL_config_macosx.h | 3 --- src/timer/unix/SDL_systimer.c | 27 ++++---------------- 8 files changed, 5 insertions(+), 113 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e20eefd2..b66a81486 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 - #include - #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 4f5f6ca59..da4ee6ece 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 -#include - -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 ed1645ade..107563dba 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 -#include - ],[ -#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 ede9bbabc..977050db3 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 9480eb43f..eb2b4172c 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 08524b4f9..9a748beb6 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 464b197c2..9a8f720fa 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 5af307ba9..05db3a9f7 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 #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,12 +118,8 @@ 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; @@ -160,11 +150,7 @@ 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; @@ -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; }