summaryrefslogtreecommitdiff
path: root/libstdc++-v3/linkage.m4
diff options
context:
space:
mode:
authorkcook <kcook@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-08 21:29:13 +0000
committerkcook <kcook@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-08 21:29:13 +0000
commit2480a3bb60a1dc74f2ed9314ef896d21670803a2 (patch)
treeb7a87cde46e9f514dd2d33ba411b687b78e30d2f /libstdc++-v3/linkage.m4
parent6f74fe3cdede1d8654a61d41f77bedfac6acd357 (diff)
downloadgcc-2480a3bb60a1dc74f2ed9314ef896d21670803a2.tar.gz
2005-04-08 Kelley Cook <kcook@gcc.gnu.org>
* linkage.m4 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Eliminate a subshell and if test fails, test for same functions with leading underscore. (GLIBCXX_CHECK_MATH_SUPPORT): Eliminate seperate checks for _funcs. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97860 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/linkage.m4')
-rw-r--r--libstdc++-v3/linkage.m442
1 files changed, 19 insertions, 23 deletions
diff --git a/libstdc++-v3/linkage.m4 b/libstdc++-v3/linkage.m4
index 762adb2adbf..59321d60fa0 100644
--- a/libstdc++-v3/linkage.m4
+++ b/libstdc++-v3/linkage.m4
@@ -27,6 +27,7 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [
AC_MSG_RESULT($glibcxx_cv_func_$1_use)
])
+
dnl
dnl Check to see if the (math function) argument passed is
dnl 1) declared when using the c++ compiler
@@ -59,19 +60,35 @@ dnl of functions at once. It's an all-or-nothing check -- either
dnl HAVE_XYZ is defined for each of the functions, or for none of them.
dnl Doing it this way saves significant configure time.
AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [
+ define([funclist],patsubst($3,\(\w+\)\(\W*\),\1 ))dnl
AC_MSG_CHECKING([for $1 functions])
AC_CACHE_VAL(glibcxx_cv_func_$2_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <math.h>],
- [ `for x in $3; do echo "$x (0);"; done` ],
+ patsubst(funclist,[\w+],[\& (0);]),
[glibcxx_cv_func_$2_use=yes],
[glibcxx_cv_func_$2_use=no])
AC_LANG_RESTORE])
AC_MSG_RESULT($glibcxx_cv_func_$2_use)
if test x$glibcxx_cv_func_$2_use = x"yes"; then
- AC_CHECK_FUNCS($3)
+ AC_CHECK_FUNCS(funclist)
+ else
+ AC_MSG_CHECKING([for _$1 functions])
+ AC_CACHE_VAL(glibcxx_cv_func__$2_use, [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <math.h>],
+ patsubst(funclist,[\w+],[_\& (0);]),
+ [glibcxx_cv_func__$2_use=yes],
+ [glibcxx_cv_func__$2_use=no])
+ AC_LANG_RESTORE])
+ AC_MSG_RESULT($glibcxx_cv_func__$2_use)
+ if test x$glibcxx_cv_func__$2_use = x"yes"; then
+ AC_CHECK_FUNCS(patsubst(funclist,[\w+],[_\&]))
+ fi
fi
+ undefine([funclist])
])
dnl
@@ -450,27 +467,6 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_SUPPORT], [
dnl keep this sync'd with the one above. And if you add any new symbol,
dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
dnl Check to see if certain C math functions exist.
-
- dnl Check to see if basic C math functions have float versions.
- GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig,
- _float_trig,
- _acosf _asinf _atanf \
- _cosf _sinf _tanf \
- _coshf _sinhf _tanhf)
- GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round,
- _float_round,
- _ceilf _floorf)
-
- dnl Check to see if basic C math functions have long double versions.
- GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig,
- _long_double_trig,
- _acosl _asinl _atanl \
- _cosl _sinl _tanl \
- _coshl _sinhl _tanhl)
- GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round,
- _long_double_round,
- _ceill _floorl)
-
LIBS="$ac_save_LIBS"
CXXFLAGS="$ac_save_CXXFLAGS"
])