[Spice-devel] [spice-common 1/7] build: Ensure we link with -lm if needed
Christophe Fergeau
cfergeau at redhat.com
Mon Jun 4 17:13:43 UTC 2018
lines.c uses hypot(), which is found in libm on some systems. This means
we are currently relying on getting -lm indirectly through some other
means, as otherwise linking any binary with spice-common would fail.
Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
---
m4/spice-deps.m4 | 4 ++++
meson.build | 10 ++++++++++
2 files changed, 14 insertions(+)
diff --git a/m4/spice-deps.m4 b/m4/spice-deps.m4
index 7c0cca4..cf0e048 100644
--- a/m4/spice-deps.m4
+++ b/m4/spice-deps.m4
@@ -64,6 +64,10 @@ AC_DEFUN([SPICE_CHECK_SYSDEPS], [
AC_FUNC_ERROR_AT_LINE
AC_FUNC_FORK
AC_CHECK_FUNCS([dup2 floor inet_ntoa memmove memset pow sqrt])
+ AC_SEARCH_LIBS([hypot], [m], [], [
+ AC_MSG_ERROR([unable to find the hypot() function])
+ ])
+
])
diff --git a/meson.build b/meson.build
index de777db..4dd4610 100644
--- a/meson.build
+++ b/meson.build
@@ -87,6 +87,16 @@ foreach func : functions
endif
endforeach
+# check for hypot function
+#
+# Include math.h header to avoid problems with builtins.
+# In some systems the function is in libm.
+if not compiler.has_function('hypot', prefix : '#include <math.h>')
+ libm = compiler.find_library('m', required : false)
+ if compiler.has_function('hypot', prefix : '#include <math.h>', dependencies : libm)
+ spice_common_deps += libm
+ endif
+endif
#
# check for mandatory dependencies
--
2.17.1
More information about the Spice-devel
mailing list