From 163f4580d976654c59dc49feef4e31cd637740b5 Mon Sep 17 00:00:00 2001 From: monojenkins Date: Wed, 16 Sep 2020 11:24:16 -0400 Subject: [mono] Add proper check for clock_gettime (#20385) Fixes mono/mono wasm build cc: @vargaz Co-authored-by: CoffeeFlux --- configure.ac | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 24cfa42f05d..945618a2097 100644 --- a/configure.ac +++ b/configure.ac @@ -2254,7 +2254,28 @@ if test x$host_win32 = xno; then [#include ]) dnl hires monotonic clock support - AC_SEARCH_LIBS(clock_gettime, rt) + + # Check for clock_gettime + if test x$target_osx = xyes; then + # On OSX, clock_gettime is only really available on 10.12 or later + # However, it exists as a weak symbol on earlier versions, so hard-code a version check + AC_MONO_APPLE_AVAILABLE(clock_gettime_available, [whether clock_gettime is available on OSX], + [(MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12)]) + if test x$clock_gettime_available = xyes; then + AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [clock_gettime]) + fi + else + AC_CHECK_FUNC(clock_gettime, [ + AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [clock_gettime]) + ], [ + # Old glibc (< 2.17) has clock_gettime in librt, so check there too + AC_CHECK_LIB(rt, clock_gettime, [ + AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [clock_gettime]) + LIBS="$LIBS -lrt" + ]) + ]) + fi + AC_CHECK_FUNCS(clock_nanosleep) dnl dynamic loader support -- cgit v1.2.3