aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDario Faggioli <raistlin@linux.it>2012-07-06 13:17:45 +0100
committerDario Faggioli <raistlin@linux.it>2012-07-06 13:17:45 +0100
commitd01089fc667ec8f2c64036882c9e8fb16d6162df (patch)
tree324273529ba883f4081d29f3f211efd00eca51c3 /tools
parent8cea5d337f061c39ec2c639f262becd49dafe361 (diff)
downloadxen-d01089fc667ec8f2c64036882c9e8fb16d6162df.tar.gz
xen-d01089fc667ec8f2c64036882c9e8fb16d6162df.tar.bz2
xen-d01089fc667ec8f2c64036882c9e8fb16d6162df.zip
libxl: explicitly check for libmath in autoconf
As well as explicitly add -lm to libxl's Makefile. This is because next patch uses floating point arithmetic, and it is better to state it clearly that we need libmath (just in case we find a libc that wants that to be explicitly enforced). Notice that autoconf should be rerun after applying this change. Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> Acked-by: Roger Pau Monne <roger.pau@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> [ ijc -- s/libmath/libm/ in error message ] Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/config.h.in3
-rwxr-xr-xtools/configure47
-rw-r--r--tools/configure.ac1
-rw-r--r--tools/libxl/Makefile2
4 files changed, 52 insertions, 1 deletions
diff --git a/tools/config.h.in b/tools/config.h.in
index bc1ed1057b..87d744b1b5 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -6,6 +6,9 @@
/* Define to 1 if you have the `crypto' library (-lcrypto). */
#undef HAVE_LIBCRYPTO
+/* Define to 1 if you have the `m' library (-lm). */
+#undef HAVE_LIBM
+
/* Define to 1 if you have the `yajl' library (-lyajl). */
#undef HAVE_LIBYAJL
diff --git a/tools/configure b/tools/configure
index de0327c12b..2ac7e5cf76 100755
--- a/tools/configure
+++ b/tools/configure
@@ -6253,6 +6253,53 @@ else
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isnan in -lm" >&5
+$as_echo_n "checking for isnan in -lm... " >&6; }
+if test "${ac_cv_lib_m_isnan+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char isnan ();
+int
+main ()
+{
+return isnan ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_m_isnan=yes
+else
+ ac_cv_lib_m_isnan=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_isnan" >&5
+$as_echo "$ac_cv_lib_m_isnan" >&6; }
+if test "x$ac_cv_lib_m_isnan" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+ LIBS="-lm $LIBS"
+
+else
+ as_fn_error $? "Could not find libm" "$LINENO" 5
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5 in -lcrypto" >&5
$as_echo_n "checking for MD5 in -lcrypto... " >&6; }
if test "${ac_cv_lib_crypto_MD5+set}" = set; then :
diff --git a/tools/configure.ac b/tools/configure.ac
index 8587eef77f..d3e0c1458e 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -133,6 +133,7 @@ AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"])
AC_SUBST(zlib)
AC_CHECK_LIB([aio], [io_setup], [system_aio="y"], [system_aio="n"])
AC_SUBST(system_aio)
+AC_CHECK_LIB([m], [isnan], [], [AC_MSG_ERROR([Could not find libm])])
AC_CHECK_LIB([crypto], [MD5], [], [AC_MSG_ERROR([Could not find libcrypto])])
AC_CHECK_LIB([ext2fs], [ext2fs_open2], [libext2fs="y"], [libext2fs="n"])
AC_SUBST(libext2fs)
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index 48f352eb4e..313f05c292 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -61,7 +61,7 @@ ifeq ($(BISON),)
scanners, please install it an rerun configure)
endif
-LIBXL_LIBS += -lyajl
+LIBXL_LIBS += -lyajl -lm
LIBXL_OBJS = flexarray.o libxl.o libxl_create.o libxl_dm.o libxl_pci.o \
libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o \