diff options
author | kcook <kcook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-08 21:29:13 +0000 |
---|---|---|
committer | kcook <kcook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-08 21:29:13 +0000 |
commit | 2480a3bb60a1dc74f2ed9314ef896d21670803a2 (patch) | |
tree | b7a87cde46e9f514dd2d33ba411b687b78e30d2f /libstdc++-v3/linkage.m4 | |
parent | 6f74fe3cdede1d8654a61d41f77bedfac6acd357 (diff) | |
download | gcc-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.m4 | 42 |
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" ]) |