summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorgingold <gingold@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-26 08:42:52 +0000
committergingold <gingold@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-26 08:42:52 +0000
commite564d7f548f6ccbce0a59a2008700b4f545f5234 (patch)
tree766dfd228e0597427152a908fbaa5a4fe67feb25 /config
parentab3908c1dfc72dfede3e759059f8793a2dc25c1f (diff)
downloadgcc-e564d7f548f6ccbce0a59a2008700b4f545f5234.tar.gz
2012-03-26 Tristan Gingold <gingold@adacore.com>
* math.m4: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185788 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'config')
-rw-r--r--config/ChangeLog4
-rw-r--r--config/math.m449
2 files changed, 53 insertions, 0 deletions
diff --git a/config/ChangeLog b/config/ChangeLog
index bfabcc0fb3c..f502696ac55 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2012-03-26 Tristan Gingold <gingold@adacore.com>
+
+ * math.m4: New file.
+
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
diff --git a/config/math.m4 b/config/math.m4
new file mode 100644
index 00000000000..5527c25aec3
--- /dev/null
+++ b/config/math.m4
@@ -0,0 +1,49 @@
+dnl GCC_CHECK_LIBM
+dnl
+dnl Check whether -lm is available. This is a pre-requisite for
+dnl GCC_CHECK_MATH_FUNC so that it will link with -lm.
+AC_DEFUN([GCC_CHECK_LIBM],
+[AC_CHECK_LIB([m],[sin])])
+
+dnl GCC_CHECK_MATH_HEADERS
+dnl
+dnl Check for math.h and complex.h. This is a pre-requisite for
+dnl GCC_CHECK_MATH_FUNC so that it includes the right headers.
+dnl (Some systems, such as AIX or OpenVMS may define macro for math
+dnl functions).
+AC_DEFUN([GCC_CHECK_MATH_HEADERS],
+[AC_CHECK_HEADERS_ONCE(math.h complex.h)])
+
+dnl GCC_CHECK_MATH_FUNC([name],[if-present])
+dnl
+dnl Check whether math function NAME is available on the system (by compiling
+dnl and linking a C program) and run if-present on success.
+dnl
+dnl Note that OpenVMS system insists on including complex.h before math.h
+AC_DEFUN([GCC_CHECK_MATH_FUNC],
+[
+ AC_REQUIRE([GCC_CHECK_LIBM])
+ AC_REQUIRE([GCC_CHECK_MATH_HEADERS])
+ AC_CACHE_CHECK([for $1], [gcc_cv_math_func_$1],
+ [AC_LINK_IFELSE([
+#ifdef HAVE_COMPLEX_H
+#include <complex.h>
+#endif
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+int (*ptr)() = (int (*)())$1;
+
+int
+main ()
+{
+ return 0;
+}
+],
+[gcc_cv_math_func_$1=yes],
+[gcc_cv_math_func_$1=no])])
+ if test $gcc_cv_math_func_$1 = yes; then
+ $2
+ fi
+])