[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 203ffc6846: Port libm configure-time test to Solaris 11.4
From: |
Paul Eggert |
Subject: |
master 203ffc6846: Port libm configure-time test to Solaris 11.4 |
Date: |
Tue, 10 May 2022 17:45:35 -0400 (EDT) |
branch: master
commit 203ffc68468abaccfed7e8ee630d9aa143ce5dbf
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>
Port libm configure-time test to Solaris 11.4
* configure.ac (LIB_MATH): Check all the math.h functions
that Emacs uses, not just sqrt (Bug#55294).
---
configure.ac | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 57 insertions(+), 10 deletions(-)
diff --git a/configure.ac b/configure.ac
index 484ce980a5..1ba4448d1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1617,16 +1617,63 @@ AC_DEFUN([AC_TYPE_SIZE_T])
# Likewise for obsolescent test for uid_t, gid_t; Emacs assumes them.
AC_DEFUN([AC_TYPE_UID_T])
-# sqrt and other floating-point functions such as fmod and frexp
-# are found in -lm on many systems.
-OLD_LIBS=$LIBS
-AC_SEARCH_LIBS([sqrt], [m])
-if test "X$LIBS" = "X$OLD_LIBS"; then
- LIB_MATH=
-else
- LIB_MATH=$ac_cv_search_sqrt
-fi
-LIBS=$OLD_LIBS
+# Check for all math.h functions that Emacs uses; on some platforms,
+# -lm is needed for some of these functions.
+AC_CACHE_CHECK([for math library],
+ [emacs_cv_lib_math],
+ [OLD_LIBS=$LIBS
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <math.h>
+ int
+ main (int argc, char **argv)
+ {
+ double d = argc;
+ float f = argc;
+ int i = argc;
+ long l = argc;
+ d = acos (d);
+ d = asin (d);
+ d = atan (d);
+ d = atan2 (d, d);
+ d = ceil (d);
+ d = copysign (d, d);
+ d = cos (d);
+ d = exp (d);
+ d = fabs (d);
+ d = floor (d);
+ d = fmod (d, d);
+ d = frexp (d, &i);
+ d = ldexp (d, i);
+ d = log (d);
+ d = log2 (d);
+ d = log10 (d);
+ d = pow (d, d);
+ d = rint (d);
+ d = scalbn (d, l);
+ d = sin (d);
+ d = sqrt (d);
+ d = tan (d);
+ d = trunc (d);
+ f = fabsf (f);
+ f = powf (f, f);
+ i = ilogb (d);
+ i = signbit (d);
+ l = lrint (d);
+ l = lround (d);
+ return d == f && i == l;
+ }
+ ]])],
+ [emacs_cv_lib_math='none required'],
+ [LIBS="-lm $LIBS"
+ AC_LINK_IFELSE([],
+ [emacs_cv_lib_math=-lm],
+ [AC_MSG_ERROR([Math library (-lm) not found])])])
+ LIBS=$OLD_LIBS])
+case $emacs_cv_lib_math in
+ -*) LIB_MATH=$emacs_cv_lib_math;;
+ *) LIB_MATH=;;
+esac
dnl Current possibilities handled by sed (aix4-2 -> aix,
dnl gnu-linux -> gnu/linux, etc.):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 203ffc6846: Port libm configure-time test to Solaris 11.4,
Paul Eggert <=