build: fix broken boost chrono check on some platforms

If clock_gettime is implemented outside of libc (librt in this case), configure
would fail when testing boost. Since clock_gettime is not present on all OSs,
boost only uses it when it can. Check for it in librt and add it to LIBS if
found, but don't fail if it's not (since boost won't be expecting it in this
case).

Also, reverse the link order as necessary for static libs.

Note that it's possible that there are other similar cases for boost, which may
be handled the same way.
This commit is contained in:
Cory Fields 2014-07-21 17:34:08 -04:00
parent afa71fb3e3
commit 460b32d7b1

View file

@ -392,6 +392,8 @@ AC_TRY_COMPILE([#include <sys/socket.h>],
[ AC_MSG_RESULT(no)] [ AC_MSG_RESULT(no)]
) )
AC_SEARCH_LIBS([clock_gettime],[rt])
LEVELDB_CPPFLAGS= LEVELDB_CPPFLAGS=
LIBLEVELDB= LIBLEVELDB=
LIBMEMENV= LIBMEMENV=
@ -460,11 +462,8 @@ dnl after 1.56.
dnl If neither is available, abort. dnl If neither is available, abort.
dnl If sleep_for is used, boost_chrono becomes a requirement. dnl If sleep_for is used, boost_chrono becomes a requirement.
if test x$ax_cv_boost_chrono = xyes; then if test x$ax_cv_boost_chrono = xyes; then
dnl Allow passing extra needed dependency libraries for boost-chrono from static gitian build
BOOST_CHRONO_LIB="$BOOST_CHRONO_LIB $BOOST_CHRONO_EXTRALIBS"
TEMP_LIBS="$LIBS" TEMP_LIBS="$LIBS"
LIBS="$LIBS $BOOST_LIBS $BOOST_CHRONO_LIB" LIBS="$BOOST_LIBS $BOOST_CHRONO_LIB $LIBS"
TEMP_CPPFLAGS="$CPPFLAGS" TEMP_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
AC_TRY_LINK([ AC_TRY_LINK([
@ -486,7 +485,7 @@ fi
if test x$boost_sleep != xyes; then if test x$boost_sleep != xyes; then
TEMP_LIBS="$LIBS" TEMP_LIBS="$LIBS"
LIBS="$LIBS $BOOST_LIBS" LIBS="$BOOST_LIBS $LIBS"
TEMP_CPPFLAGS="$CPPFLAGS" TEMP_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
AC_TRY_LINK([ AC_TRY_LINK([