From c601c8faf54ff9e3bcbc653421828d71042deef7 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 21 Dec 2017 11:48:15 +0100 Subject: [PATCH] build: guess availability of monotonic clock for cross compilation When cross compiling, the value of MONOTONIC_CLOCK would be "cross compiling", because AC_RUN_IFELSE doesn't work. However when enabling wayland, a monotonic clock is required and configure aborts. We change detection of CLOCK_MONOTONIC to degrade it gracefully from a run check to a declaration check in case of cross compilation based on the assumption that most systems will have a monotonic clock and those that don't won't be able to run Xwayland anyway. The trade-off essentially is either "always fail cross compilation" or "produce an unusable Xwayland for unusual platform" and this commit switches to the latter. Signed-off-by: Helmut Grohne Bug-Debian: https://bugs.debian.org/882531 Reviewed-by: Adam Jackson --- configure.ac | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/configure.ac b/configure.ac index 456a9e0a9..30b4b383d 100644 --- a/configure.ac +++ b/configure.ac @@ -997,6 +997,10 @@ int main(int argc, char *argv[[]]) { ])], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no], [MONOTONIC_CLOCK="cross compiling"]) + if test "$MONOTONIC_CLOCK" = "cross compiling"; then + AC_CHECK_DECL([CLOCK_MONOTONIC],[MONOTONIC_CLOCK="guessing yes"],[MONOTONIC_CLOCK=no],[#include ]) + fi + LIBS="$LIBS_SAVE" CPPFLAGS="$CPPFLAGS_SAVE" else @@ -1004,6 +1008,9 @@ else fi AC_MSG_RESULT([$MONOTONIC_CLOCK]) +if test "$MONOTONIC_CLOCK" = "guessing yes"; then + MONOTONIC_CLOCK=yes +fi if test "x$MONOTONIC_CLOCK" = xyes; then AC_DEFINE(MONOTONIC_CLOCK, 1, [Have monotonic clock from clock_gettime()])