14fee23f9Smrgdnl 24fee23f9Smrgdnl This file contains macros for testing linkage. 34fee23f9Smrgdnl 44fee23f9Smrg 54fee23f9Smrgdnl 64fee23f9Smrgdnl Check to see if the (math function) argument passed is 74fee23f9Smrgdnl declared when using the c++ compiler 84fee23f9Smrgdnl ASSUMES argument is a math function with ONE parameter 94fee23f9Smrgdnl 104fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_1 114fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [ 124fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 134fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 144fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 154fee23f9Smrg AC_LANG_SAVE 164fee23f9Smrg AC_LANG_CPLUSPLUS 174fee23f9Smrg AC_TRY_COMPILE([#include <math.h> 184fee23f9Smrg #ifdef HAVE_IEEEFP_H 194fee23f9Smrg #include <ieeefp.h> 204fee23f9Smrg #endif 214fee23f9Smrg ], 224fee23f9Smrg [ $1(0);], 234fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 244fee23f9Smrg AC_LANG_RESTORE 254fee23f9Smrg ]) 264fee23f9Smrg fi 274fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 284fee23f9Smrg]) 294fee23f9Smrg 304fee23f9Smrg 314fee23f9Smrgdnl 324fee23f9Smrgdnl Define autoheader template for using the underscore functions 334fee23f9Smrgdnl For each parameter, create a macro where if func doesn't exist, 344fee23f9Smrgdnl but _func does, then it will "#define func _func". 354fee23f9Smrgdnl 364fee23f9Smrgdnl GLIBCXX_MAYBE_UNDERSCORED_FUNCS 374fee23f9SmrgAC_DEFUN([GLIBCXX_MAYBE_UNDERSCORED_FUNCS], 384fee23f9Smrg[AC_FOREACH([glibcxx_ufunc], [$1], 394fee23f9Smrg [AH_VERBATIM(_[]glibcxx_ufunc, 404fee23f9Smrg[#if defined (]AS_TR_CPP(HAVE__[]glibcxx_ufunc)[) && ! defined (]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[) 414fee23f9Smrg# define ]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[ 1 424fee23f9Smrg# define ]glibcxx_ufunc[ _]glibcxx_ufunc[ 434fee23f9Smrg#endif])]) 444fee23f9Smrg]) 454fee23f9Smrg 464fee23f9Smrg 474fee23f9Smrgdnl 484fee23f9Smrgdnl Check to see if the (math function) argument passed is 494fee23f9Smrgdnl 1) declared when using the c++ compiler 504fee23f9Smrgdnl 2) has "C" linkage 514fee23f9Smrgdnl 3) if not, see if 1) and 2) for argument prepended with '_' 524fee23f9Smrgdnl 534fee23f9Smrgdnl Define HAVE_CARGF etc if "cargf" is declared and links 544fee23f9Smrgdnl 554fee23f9Smrgdnl argument 1 is name of function to check 564fee23f9Smrgdnl 574fee23f9Smrgdnl ASSUMES argument is a math function with ONE parameter 584fee23f9Smrgdnl 594fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1 604fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1], [ 614fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_1($1) 624fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 634fee23f9Smrg AC_CHECK_FUNCS($1) 644fee23f9Smrg else 654fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_1(_$1) 664fee23f9Smrg if test x$glibcxx_cv_func__$1_use = x"yes"; then 674fee23f9Smrg AC_CHECK_FUNCS(_$1) 684fee23f9Smrg fi 694fee23f9Smrg fi 704fee23f9Smrg GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1) 714fee23f9Smrg]) 724fee23f9Smrg 734fee23f9Smrg 744fee23f9Smrgdnl 754fee23f9Smrgdnl Like GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of 764fee23f9Smrgdnl of functions at once. It's an all-or-nothing check -- either 774fee23f9Smrgdnl HAVE_XYZ is defined for each of the functions, or for none of them. 784fee23f9Smrgdnl Doing it this way saves significant configure time. 794fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [ 804fee23f9Smrg define([funclist],patsubst($3,\(\w+\)\(\W*\),\1 ))dnl 814fee23f9Smrg AC_MSG_CHECKING([for $1 functions]) 824fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$2_use, [ 834fee23f9Smrg AC_LANG_SAVE 844fee23f9Smrg AC_LANG_CPLUSPLUS 854fee23f9Smrg AC_TRY_COMPILE([#include <math.h>], 864fee23f9Smrg patsubst(funclist,[\w+],[\& (0);]), 874fee23f9Smrg [glibcxx_cv_func_$2_use=yes], 884fee23f9Smrg [glibcxx_cv_func_$2_use=no]) 894fee23f9Smrg AC_LANG_RESTORE]) 904fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$2_use) 914fee23f9Smrg if test x$glibcxx_cv_func_$2_use = x"yes"; then 924fee23f9Smrg AC_CHECK_FUNCS(funclist) 934fee23f9Smrg else 944fee23f9Smrg AC_MSG_CHECKING([for _$1 functions]) 954fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func__$2_use, [ 964fee23f9Smrg AC_LANG_SAVE 974fee23f9Smrg AC_LANG_CPLUSPLUS 984fee23f9Smrg AC_TRY_COMPILE([#include <math.h>], 994fee23f9Smrg patsubst(funclist,[\w+],[_\& (0);]), 1004fee23f9Smrg [glibcxx_cv_func__$2_use=yes], 1014fee23f9Smrg [glibcxx_cv_func__$2_use=no]) 1024fee23f9Smrg AC_LANG_RESTORE]) 1034fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func__$2_use) 1044fee23f9Smrg if test x$glibcxx_cv_func__$2_use = x"yes"; then 1054fee23f9Smrg AC_CHECK_FUNCS(patsubst(funclist,[\w+],[_\&])) 1064fee23f9Smrg fi 1074fee23f9Smrg fi 1084fee23f9Smrg GLIBCXX_MAYBE_UNDERSCORED_FUNCS(funclist) 1094fee23f9Smrg undefine([funclist]) 1104fee23f9Smrg]) 1114fee23f9Smrg 1124fee23f9Smrgdnl 1134fee23f9Smrgdnl Check to see if the (math function) argument passed is 1144fee23f9Smrgdnl declared when using the c++ compiler 1154fee23f9Smrgdnl ASSUMES argument is a math function with TWO parameters 1164fee23f9Smrgdnl 1174fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_2 1184fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_2], [ 1194fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 1204fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 1214fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 1224fee23f9Smrg AC_LANG_SAVE 1234fee23f9Smrg AC_LANG_CPLUSPLUS 1244fee23f9Smrg AC_TRY_COMPILE([#include <math.h>], 1254fee23f9Smrg [ $1(0, 0);], 1264fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 1274fee23f9Smrg AC_LANG_RESTORE 1284fee23f9Smrg ]) 1294fee23f9Smrg fi 1304fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 1314fee23f9Smrg]) 1324fee23f9Smrg 1334fee23f9Smrgdnl 1344fee23f9Smrgdnl Check to see if the (math function) argument passed is 1354fee23f9Smrgdnl 1) declared when using the c++ compiler 1364fee23f9Smrgdnl 2) has "C" linkage 1374fee23f9Smrgdnl 1384fee23f9Smrgdnl Define HAVE_CARGF etc if "cargf" is declared and links 1394fee23f9Smrgdnl 1404fee23f9Smrgdnl argument 1 is name of function to check 1414fee23f9Smrgdnl 1424fee23f9Smrgdnl ASSUMES argument is a math function with TWO parameters 1434fee23f9Smrgdnl 1444fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2 1454fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2], [ 1464fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_2($1) 1474fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 1484fee23f9Smrg AC_CHECK_FUNCS($1) 1494fee23f9Smrg else 1504fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_2(_$1) 1514fee23f9Smrg if test x$glibcxx_cv_func__$1_use = x"yes"; then 1524fee23f9Smrg AC_CHECK_FUNCS(_$1) 1534fee23f9Smrg fi 1544fee23f9Smrg fi 1554fee23f9Smrg GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1) 1564fee23f9Smrg]) 1574fee23f9Smrg 1584fee23f9Smrg 1594fee23f9Smrgdnl 1604fee23f9Smrgdnl Check to see if the (math function) argument passed is 1614fee23f9Smrgdnl declared when using the c++ compiler 1624fee23f9Smrgdnl ASSUMES argument is a math function with THREE parameters 1634fee23f9Smrgdnl 1644fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_3 1654fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_3], [ 1664fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 1674fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 1684fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 1694fee23f9Smrg AC_LANG_SAVE 1704fee23f9Smrg AC_LANG_CPLUSPLUS 1714fee23f9Smrg AC_TRY_COMPILE([#include <math.h>], 1724fee23f9Smrg [ $1(0, 0, 0);], 1734fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 1744fee23f9Smrg AC_LANG_RESTORE 1754fee23f9Smrg ]) 1764fee23f9Smrg fi 1774fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 1784fee23f9Smrg]) 1794fee23f9Smrg 1804fee23f9Smrgdnl 1814fee23f9Smrgdnl Check to see if the (math function) argument passed is 1824fee23f9Smrgdnl 1) declared when using the c++ compiler 1834fee23f9Smrgdnl 2) has "C" linkage 1844fee23f9Smrgdnl 1854fee23f9Smrgdnl Define HAVE_CARGF etc if "cargf" is declared and links 1864fee23f9Smrgdnl 1874fee23f9Smrgdnl argument 1 is name of function to check 1884fee23f9Smrgdnl 1894fee23f9Smrgdnl ASSUMES argument is a math function with THREE parameters 1904fee23f9Smrgdnl 1914fee23f9Smrgdnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3 1924fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3], [ 1934fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_3($1) 1944fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 1954fee23f9Smrg AC_CHECK_FUNCS($1) 1964fee23f9Smrg else 1974fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_3(_$1) 1984fee23f9Smrg if test x$glibcxx_cv_func__$1_use = x"yes"; then 1994fee23f9Smrg AC_CHECK_FUNCS(_$1) 2004fee23f9Smrg fi 2014fee23f9Smrg fi 2024fee23f9Smrg GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1) 2034fee23f9Smrg]) 2044fee23f9Smrg 2054fee23f9Smrg 2064fee23f9Smrgdnl 2074fee23f9Smrgdnl Check to see if the (stdlib function) argument passed is 2084fee23f9Smrgdnl 1) declared when using the c++ compiler 2094fee23f9Smrgdnl 2) has "C" linkage 2104fee23f9Smrgdnl 2114fee23f9Smrgdnl argument 1 is name of function to check 2124fee23f9Smrgdnl 2134fee23f9Smrgdnl ASSUMES argument is a stdlib function without parameters 2144fee23f9Smrgdnl 2154fee23f9Smrgdnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0 2164fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0], [ 2174fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 2184fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 2194fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 2204fee23f9Smrg AC_LANG_SAVE 2214fee23f9Smrg AC_LANG_CPLUSPLUS 2224fee23f9Smrg AC_TRY_COMPILE([#include <stdlib.h>], 2234fee23f9Smrg [ $1();], 2244fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 2254fee23f9Smrg AC_LANG_RESTORE 2264fee23f9Smrg ]) 2274fee23f9Smrg fi 2284fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 2294fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 2304fee23f9Smrg AC_CHECK_FUNCS($1) 2314fee23f9Smrg fi 2324fee23f9Smrg]) 2334fee23f9Smrg 2344fee23f9Smrg 2354fee23f9Smrgdnl 2364fee23f9Smrgdnl Check to see if the (stdlib function) argument passed is 2374fee23f9Smrgdnl 1) declared when using the c++ compiler 2384fee23f9Smrgdnl 2) has "C" linkage 2394fee23f9Smrgdnl 2404fee23f9Smrgdnl argument 1 is name of function to check 2414fee23f9Smrgdnl 242*48fb7bfaSmrgdnl ASSUMES argument is a stdlib function with ONE parameter 243*48fb7bfaSmrgdnl 244*48fb7bfaSmrgdnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1 245*48fb7bfaSmrgAC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1], [ 246*48fb7bfaSmrg AC_MSG_CHECKING([for $1 declaration]) 247*48fb7bfaSmrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 248*48fb7bfaSmrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 249*48fb7bfaSmrg AC_LANG_SAVE 250*48fb7bfaSmrg AC_LANG_CPLUSPLUS 251*48fb7bfaSmrg AC_TRY_COMPILE([#include <stdlib.h>], 252*48fb7bfaSmrg [ $1(0);], 253*48fb7bfaSmrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 254*48fb7bfaSmrg AC_LANG_RESTORE 255*48fb7bfaSmrg ]) 256*48fb7bfaSmrg fi 257*48fb7bfaSmrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 258*48fb7bfaSmrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 259*48fb7bfaSmrg AC_CHECK_FUNCS($1) 260*48fb7bfaSmrg fi 261*48fb7bfaSmrg]) 262*48fb7bfaSmrg 263*48fb7bfaSmrg 264*48fb7bfaSmrgdnl 265*48fb7bfaSmrgdnl Check to see if the (stdlib function) argument passed is 266*48fb7bfaSmrgdnl 1) declared when using the c++ compiler 267*48fb7bfaSmrgdnl 2) has "C" linkage 268*48fb7bfaSmrgdnl 269*48fb7bfaSmrgdnl argument 1 is name of function to check 270*48fb7bfaSmrgdnl 2714fee23f9Smrgdnl ASSUMES argument is a stdlib function with TWO parameters 2724fee23f9Smrgdnl 2734fee23f9Smrgdnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2 2744fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2], [ 2754fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 2764fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 2774fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 2784fee23f9Smrg AC_LANG_SAVE 2794fee23f9Smrg AC_LANG_CPLUSPLUS 2804fee23f9Smrg AC_TRY_COMPILE([#include <stdlib.h>], 2814fee23f9Smrg [ $1(0, 0);], 2824fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 2834fee23f9Smrg AC_LANG_RESTORE 2844fee23f9Smrg ]) 2854fee23f9Smrg fi 2864fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 2874fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 2884fee23f9Smrg AC_CHECK_FUNCS($1) 2894fee23f9Smrg fi 2904fee23f9Smrg GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1) 2914fee23f9Smrg]) 2924fee23f9Smrg 2934fee23f9Smrg 2944fee23f9Smrgdnl 2954fee23f9Smrgdnl Check to see if the (stdlib function) argument passed is 2964fee23f9Smrgdnl 1) declared when using the c++ compiler 2974fee23f9Smrgdnl 2) has "C" linkage 2984fee23f9Smrgdnl 2994fee23f9Smrgdnl argument 1 is name of function to check 3004fee23f9Smrgdnl 3014fee23f9Smrgdnl ASSUMES argument is a stdlib function with THREE parameters 3024fee23f9Smrgdnl 3034fee23f9Smrgdnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3 3044fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3], [ 3054fee23f9Smrg AC_MSG_CHECKING([for $1 declaration]) 3064fee23f9Smrg if test x${glibcxx_cv_func_$1_use+set} != xset; then 3074fee23f9Smrg AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 3084fee23f9Smrg AC_LANG_SAVE 3094fee23f9Smrg AC_LANG_CPLUSPLUS 3104fee23f9Smrg AC_TRY_COMPILE([#include <stdlib.h>], 3114fee23f9Smrg [ $1(0, 0, 0);], 3124fee23f9Smrg [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 3134fee23f9Smrg AC_LANG_RESTORE 3144fee23f9Smrg ]) 3154fee23f9Smrg fi 3164fee23f9Smrg AC_MSG_RESULT($glibcxx_cv_func_$1_use) 3174fee23f9Smrg if test x$glibcxx_cv_func_$1_use = x"yes"; then 3184fee23f9Smrg AC_CHECK_FUNCS($1) 3194fee23f9Smrg fi 3204fee23f9Smrg]) 3214fee23f9Smrg 3224fee23f9Smrgdnl 3234fee23f9Smrgdnl Check to see what the underlying c library is like 3244fee23f9Smrgdnl These checks need to do two things: 3254fee23f9Smrgdnl 1) make sure the name is declared when using the c++ compiler 3264fee23f9Smrgdnl 2) make sure the name has "C" linkage 3274fee23f9Smrgdnl This might seem like overkill but experience has shown that it's not... 3284fee23f9Smrgdnl 3294fee23f9Smrgdnl Define HAVE_STRTOLD if "strtold" is declared and links 3304fee23f9Smrgdnl Define HAVE_STRTOF if "strtof" is declared and links 3314fee23f9Smrgdnl 3324fee23f9Smrgdnl GLIBCXX_CHECK_STDLIB_SUPPORT 3334fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [ 3344fee23f9Smrg ac_test_CXXFLAGS="${CXXFLAGS+set}" 3354fee23f9Smrg ac_save_CXXFLAGS="$CXXFLAGS" 3364fee23f9Smrg CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 3374fee23f9Smrg 338*48fb7bfaSmrg GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(at_quick_exit) 339*48fb7bfaSmrg GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(quick_exit) 3404fee23f9Smrg GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold) 3414fee23f9Smrg GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof) 3424fee23f9Smrg 3434fee23f9Smrg CXXFLAGS="$ac_save_CXXFLAGS" 3444fee23f9Smrg]) 3454fee23f9Smrg 3464fee23f9Smrgdnl 3474fee23f9Smrgdnl Check to see what the underlying c library or math library is like. 3484fee23f9Smrgdnl These checks need to do two things: 3494fee23f9Smrgdnl 1) make sure the name is declared when using the c++ compiler 3504fee23f9Smrgdnl 2) make sure the name has "C" linkage 3514fee23f9Smrgdnl This might seem like overkill but experience has shown that it's not... 3524fee23f9Smrgdnl 3534fee23f9Smrgdnl Define HAVE_CARGF etc if "cargf" is found. 3544fee23f9Smrgdnl 3554fee23f9Smrgdnl GLIBCXX_CHECK_MATH_SUPPORT 3564fee23f9SmrgAC_DEFUN([GLIBCXX_CHECK_MATH_SUPPORT], [ 3574fee23f9Smrg ac_test_CXXFLAGS="${CXXFLAGS+set}" 3584fee23f9Smrg ac_save_CXXFLAGS="$CXXFLAGS" 3594fee23f9Smrg CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 3604fee23f9Smrg 3614fee23f9Smrg dnl Check libm 3624fee23f9Smrg AC_CHECK_LIB(m, sin, libm="-lm") 3634fee23f9Smrg ac_save_LIBS="$LIBS" 3644fee23f9Smrg LIBS="$LIBS $libm" 3654fee23f9Smrg 3664fee23f9Smrg dnl Check to see if certain C math functions exist. 3674fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinf) 3684fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnan) 3694fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finite) 3704fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincos) 3714fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass) 3724fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass) 3734fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypot) 3744fee23f9Smrg 3754fee23f9Smrg dnl Check to see if basic C math functions have float versions. 3764fee23f9Smrg GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig, 3774fee23f9Smrg float_trig, 3784fee23f9Smrg acosf asinf atanf \ 3794fee23f9Smrg cosf sinf tanf \ 3804fee23f9Smrg coshf sinhf tanhf) 3814fee23f9Smrg GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float round, 3824fee23f9Smrg float_round, 3834fee23f9Smrg ceilf floorf) 3844fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expf) 3854fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf) 3864fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinff) 3874fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f) 3884fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf) 3894fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf) 3904fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf) 3914fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf) 3924fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf) 3934fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logf) 3944fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10f) 3954fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modff) 3964fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modf) 3974fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powf) 3984fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf) 3994fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf) 4004fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitef) 4014fee23f9Smrg 4024fee23f9Smrg dnl Check to see if basic C math functions have long double versions. 4034fee23f9Smrg GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig, 4044fee23f9Smrg long_double_trig, 4054fee23f9Smrg acosl asinl atanl \ 4064fee23f9Smrg cosl sinl tanl \ 4074fee23f9Smrg coshl sinhl tanhl) 4084fee23f9Smrg GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round, 4094fee23f9Smrg long_double_round, 4104fee23f9Smrg ceill floorl) 4114fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl) 4124fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl) 4134fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l) 4144fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expl) 4154fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl) 4164fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl) 4174fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl) 4184fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl) 4194fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl) 4204fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logl) 4214fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10l) 4224fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modfl) 4234fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powl) 4244fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl) 4254fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl) 4264fee23f9Smrg GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitel) 4274fee23f9Smrg 4284fee23f9Smrg LIBS="$ac_save_LIBS" 4294fee23f9Smrg CXXFLAGS="$ac_save_CXXFLAGS" 4304fee23f9Smrg]) 431