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 <helmut@subdivi.de>
Bug-Debian: https://bugs.debian.org/882531
Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Helmut Grohne 2017-12-21 11:48:15 +01:00 committed by Adam Jackson
parent a309323328
commit c601c8faf5
1 changed files with 7 additions and 0 deletions

View File

@ -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 <time.h>])
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()])