xref: /netbsd-src/external/gpl3/gcc.old/dist/libstdc++-v3/crossconfig.m4 (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
11debfc3dSmrgdnl
21debfc3dSmrgdnl This file contains details for non-native builds.
31debfc3dSmrgdnl
41debfc3dSmrg
51debfc3dSmrgAC_DEFUN([GLIBCXX_CROSSCONFIG],[
61debfc3dSmrg# Base decisions on target environment.
71debfc3dSmrgcase "${host}" in
81debfc3dSmrg  arm*-*-symbianelf*)
91debfc3dSmrg    # This is a freestanding configuration; there is nothing to do here.
101debfc3dSmrg    ;;
111debfc3dSmrg
121debfc3dSmrg  avr*-*-*)
131debfc3dSmrg    AC_DEFINE(HAVE_ACOSF)
141debfc3dSmrg    AC_DEFINE(HAVE_ASINF)
151debfc3dSmrg    AC_DEFINE(HAVE_ATAN2F)
161debfc3dSmrg    AC_DEFINE(HAVE_ATANF)
171debfc3dSmrg    AC_DEFINE(HAVE_CEILF)
181debfc3dSmrg    AC_DEFINE(HAVE_COSF)
191debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
201debfc3dSmrg    AC_DEFINE(HAVE_EXPF)
211debfc3dSmrg    AC_DEFINE(HAVE_FABSF)
221debfc3dSmrg    AC_DEFINE(HAVE_FLOORF)
231debfc3dSmrg    AC_DEFINE(HAVE_FMODF)
241debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
251debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
261debfc3dSmrg    AC_DEFINE(HAVE_HYPOTF)
271debfc3dSmrg    AC_DEFINE(HAVE_LDEXPF)
281debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
291debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
301debfc3dSmrg    AC_DEFINE(HAVE_MODFF)
311debfc3dSmrg    AC_DEFINE(HAVE_POWF)
321debfc3dSmrg    AC_DEFINE(HAVE_SINF)
331debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
341debfc3dSmrg    AC_DEFINE(HAVE_TANF)
351debfc3dSmrg    AC_DEFINE(HAVE_TANHF)
361debfc3dSmrg    ;;
371debfc3dSmrg
381debfc3dSmrg  mips*-sde-elf*)
391debfc3dSmrg    # These definitions are for the SDE C library rather than newlib.
401debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
411debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
421debfc3dSmrg    GLIBCXX_CHECK_COMPILER_FEATURES
431debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
441debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
451debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
461debfc3dSmrg
471debfc3dSmrg    AC_DEFINE(HAVE_FINITE)
481debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
491debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
501debfc3dSmrg    AC_DEFINE(HAVE_ISINF)
511debfc3dSmrg
521debfc3dSmrg    AC_DEFINE(HAVE_LDEXPF)
531debfc3dSmrg    AC_DEFINE(HAVE_MODF)
541debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
551debfc3dSmrg    ;;
561debfc3dSmrg
571debfc3dSmrg  *-aix*)
581debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
591debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
601debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
61c0a68be4Smrg    AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM)
621debfc3dSmrg    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
631debfc3dSmrg    # We don't yet support AIX's TLS ABI.
641debfc3dSmrg    #GCC_CHECK_TLS
651debfc3dSmrg    AM_ICONV
661debfc3dSmrg    ;;
671debfc3dSmrg
681debfc3dSmrg  *-darwin*)
691debfc3dSmrg    # Darwin versions vary, but the linker should work in a cross environment,
701debfc3dSmrg    # so we just check for all the features here.
711debfc3dSmrg    # Check for available headers.
721debfc3dSmrg
731debfc3dSmrg    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
741debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
751debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
761debfc3dSmrg    ;;
771debfc3dSmrg
781debfc3dSmrg  *djgpp)
791debfc3dSmrg    # GLIBCXX_CHECK_MATH_SUPPORT
801debfc3dSmrg    AC_DEFINE(HAVE_ISINF)
811debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
821debfc3dSmrg    AC_DEFINE(HAVE_FINITE)
831debfc3dSmrg    AC_DEFINE(HAVE_SINCOS)
841debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
851debfc3dSmrg    ;;
861debfc3dSmrg
871debfc3dSmrg  *-freebsd*)
881debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
891debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
901debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
911debfc3dSmrg    AC_DEFINE(HAVE_SETENV)
921debfc3dSmrg    AC_DEFINE(HAVE_FINITEF)
931debfc3dSmrg    AC_DEFINE(HAVE_FINITE)
941debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
951debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
961debfc3dSmrg    AC_DEFINE(HAVE_HYPOTF)
971debfc3dSmrg    AC_DEFINE(HAVE_ISINF)
981debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
991debfc3dSmrg    AC_DEFINE(HAVE_ISNANF)
1001debfc3dSmrg
1011debfc3dSmrg    AC_DEFINE(HAVE_ACOSF)
1021debfc3dSmrg    AC_DEFINE(HAVE_ASINF)
1031debfc3dSmrg    AC_DEFINE(HAVE_ATAN2F)
1041debfc3dSmrg    AC_DEFINE(HAVE_ATANF)
1051debfc3dSmrg    AC_DEFINE(HAVE_CEILF)
1061debfc3dSmrg    AC_DEFINE(HAVE_COSF)
1071debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
1081debfc3dSmrg    AC_DEFINE(HAVE_EXPF)
1091debfc3dSmrg    AC_DEFINE(HAVE_FABSF)
1101debfc3dSmrg    AC_DEFINE(HAVE_FLOORF)
1111debfc3dSmrg    AC_DEFINE(HAVE_FMODF)
1121debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
1131debfc3dSmrg    AC_DEFINE(HAVE_LDEXPF)
1141debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
1151debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
1161debfc3dSmrg    AC_DEFINE(HAVE_MODFF)
1171debfc3dSmrg    AC_DEFINE(HAVE_POWF)
1181debfc3dSmrg    AC_DEFINE(HAVE_SINF)
1191debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
1201debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
1211debfc3dSmrg    AC_DEFINE(HAVE_TANF)
1221debfc3dSmrg    AC_DEFINE(HAVE_TANHF)
1231debfc3dSmrg    if test x"long_double_math_on_this_cpu" = x"yes"; then
1241debfc3dSmrg      AC_DEFINE(HAVE_FINITEL)
1251debfc3dSmrg      AC_DEFINE(HAVE_ISINFL)
1261debfc3dSmrg      AC_DEFINE(HAVE_ISNANL)
1271debfc3dSmrg    fi
1281debfc3dSmrg    AC_CHECK_FUNCS(__cxa_thread_atexit)
1291debfc3dSmrg    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
130c0a68be4Smrg    AC_CHECK_FUNCS(timespec_get)
131c0a68be4Smrg    AC_CHECK_FUNCS(sockatmark)
1321debfc3dSmrg    ;;
1331debfc3dSmrg
1341debfc3dSmrg  *-fuchsia*)
1351debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
1361debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
1371debfc3dSmrg    ;;
1381debfc3dSmrg
1391debfc3dSmrg  *-hpux*)
1401debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
1411debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
1421debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
1431debfc3dSmrg
1441debfc3dSmrg    # GLIBCXX_CHECK_MATH_SUPPORT
1451debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
1461debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
1471debfc3dSmrg    AC_DEFINE(HAVE_ACOSF)
1481debfc3dSmrg    AC_DEFINE(HAVE_ASINF)
1491debfc3dSmrg    AC_DEFINE(HAVE_ATANF)
1501debfc3dSmrg    AC_DEFINE(HAVE_COSF)
1511debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
1521debfc3dSmrg    AC_DEFINE(HAVE_SINF)
1531debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
1541debfc3dSmrg    AC_DEFINE(HAVE_TANF)
1551debfc3dSmrg    AC_DEFINE(HAVE_TANHF)
1561debfc3dSmrg    AC_DEFINE(HAVE_EXPF)
1571debfc3dSmrg    AC_DEFINE(HAVE_ATAN2F)
1581debfc3dSmrg    AC_DEFINE(HAVE_FABSF)
1591debfc3dSmrg    AC_DEFINE(HAVE_FMODF)
1601debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
1611debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
1621debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
1631debfc3dSmrg    AC_DEFINE(HAVE_MODF)
1641debfc3dSmrg    AC_DEFINE(HAVE_POWF)
1651debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
1661debfc3dSmrg
1671debfc3dSmrg    # GLIBCXX_CHECK_STDLIB_SUPPORT
1681debfc3dSmrg    AC_DEFINE(HAVE_STRTOLD)
1691debfc3dSmrg
1701debfc3dSmrg    GCC_CHECK_TLS
1711debfc3dSmrg    case "$target" in
1721debfc3dSmrg      *-hpux10*)
1731debfc3dSmrg	AC_DEFINE(HAVE_ISINF)
1741debfc3dSmrg	AC_DEFINE(HAVE_ISINFF)
1751debfc3dSmrg	AC_DEFINE(HAVE_ISNANF)
1761debfc3dSmrg	AC_DEFINE(HAVE_FINITE)
1771debfc3dSmrg	AC_DEFINE(HAVE_FINITEF)
1781debfc3dSmrg	;;
1791debfc3dSmrg    esac
1801debfc3dSmrg    ;;
181a2dc1f3fSmrg  *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-cygwin* | *-solaris*)
1821debfc3dSmrg    GLIBCXX_CHECK_COMPILER_FEATURES
1831debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
1841debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
1851debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
186c0a68be4Smrg    AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM)
1871debfc3dSmrg    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
1881debfc3dSmrg    GCC_CHECK_TLS
1891debfc3dSmrg    AC_CHECK_FUNCS(__cxa_thread_atexit_impl)
1901debfc3dSmrg    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
191c0a68be4Smrg    AC_CHECK_FUNCS(timespec_get)
192c0a68be4Smrg    AC_CHECK_FUNCS(sockatmark)
1931debfc3dSmrg    AM_ICONV
1941debfc3dSmrg    ;;
1951debfc3dSmrg  *-mingw32*)
1961debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
1971debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
1981debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
1991debfc3dSmrg    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
200c0a68be4Smrg    AC_CHECK_FUNCS(_wfopen)
2011debfc3dSmrg    ;;
202c0a68be4Smrg  *-netbsd* | *-openbsd*)
2031debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
2041debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
2051debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
2061debfc3dSmrg
2071debfc3dSmrg    AC_DEFINE(HAVE_ICONV)
2081debfc3dSmrg    AC_DEFINE(HAVE_ICONV_CLOSE)
2091debfc3dSmrg    AC_DEFINE(HAVE_ICONV_OPEN)
2101debfc3dSmrg    AC_DEFINE(HAVE_LC_MESSAGES)
2111debfc3dSmrg
2121debfc3dSmrg    AC_DEFINE(HAVE_MMAP)
2131debfc3dSmrg    AC_DEFINE(HAVE_GETPAGESIZE)
2141debfc3dSmrg    AC_DEFINE(HAVE_SETENV)
2151debfc3dSmrg    AC_DEFINE(HAVE_SIGSETJMP)
2161debfc3dSmrg
2171debfc3dSmrg    AC_DEFINE(HAVE_FINITEF)
2181debfc3dSmrg    AC_DEFINE(HAVE_FINITE)
2191debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
2201debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
2211debfc3dSmrg    AC_DEFINE(HAVE_HYPOTF)
2221debfc3dSmrg    AC_DEFINE(HAVE_ISINF)
2231debfc3dSmrg    AC_DEFINE(HAVE_ISINFF)
2241debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
2251debfc3dSmrg    AC_DEFINE(HAVE_ISNANF)
2261debfc3dSmrg    AC_DEFINE(HAVE_ACOSF)
2271debfc3dSmrg    AC_DEFINE(HAVE_ASINF)
2281debfc3dSmrg    AC_DEFINE(HAVE_ATAN2F)
2291debfc3dSmrg    AC_DEFINE(HAVE_ATANF)
2301debfc3dSmrg    AC_DEFINE(HAVE_CEILF)
2311debfc3dSmrg    AC_DEFINE(HAVE_COSF)
2321debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
2331debfc3dSmrg    AC_DEFINE(HAVE_EXPF)
2341debfc3dSmrg    AC_DEFINE(HAVE_FABSF)
2351debfc3dSmrg    AC_DEFINE(HAVE_FLOORF)
2361debfc3dSmrg    AC_DEFINE(HAVE_FMODF)
2371debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
2381debfc3dSmrg    AC_DEFINE(HAVE_LDEXPF)
2391debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
2401debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
2411debfc3dSmrg    AC_DEFINE(HAVE_MODF)
2421debfc3dSmrg    AC_DEFINE(HAVE_MODFF)
2431debfc3dSmrg    AC_DEFINE(HAVE_POWF)
2441debfc3dSmrg    AC_DEFINE(HAVE_SINF)
2451debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
2461debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
2471debfc3dSmrg    AC_DEFINE(HAVE_STRTOF)
2481debfc3dSmrg    AC_DEFINE(HAVE_STRTOLD)
2491debfc3dSmrg    AC_DEFINE(HAVE_TANF)
2501debfc3dSmrg    AC_DEFINE(HAVE_TANHF)
2511debfc3dSmrg    if test x"long_double_math_on_this_cpu" = x"yes"; then
2521debfc3dSmrg      AC_DEFINE(HAVE_FINITEL)
2531debfc3dSmrg      AC_DEFINE(HAVE_ISINFL)
2541debfc3dSmrg      AC_DEFINE(HAVE_ISNANL)
2551debfc3dSmrg    fi
2561debfc3dSmrg    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
257c0a68be4Smrg    AC_CHECK_FUNCS(timespec_get)
258c0a68be4Smrg    AC_CHECK_FUNCS(sockatmark)
2591debfc3dSmrg    ;;
2601debfc3dSmrg  *-qnx6.1* | *-qnx6.2*)
2611debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
2621debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
2631debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
2641debfc3dSmrg    AC_DEFINE(HAVE_COSF)
2651debfc3dSmrg    AC_DEFINE(HAVE_COSL)
2661debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
2671debfc3dSmrg    AC_DEFINE(HAVE_COSHL)
2681debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
2691debfc3dSmrg    AC_DEFINE(HAVE_LOGL)
2701debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
2711debfc3dSmrg    AC_DEFINE(HAVE_LOG10L)
2721debfc3dSmrg    AC_DEFINE(HAVE_SINF)
2731debfc3dSmrg    AC_DEFINE(HAVE_SINL)
2741debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
2751debfc3dSmrg    AC_DEFINE(HAVE_SINHL)
2761debfc3dSmrg    ;;
2771debfc3dSmrg  *-rtems*)
2781debfc3dSmrg    GLIBCXX_CHECK_COMPILER_FEATURES
2791debfc3dSmrg    GLIBCXX_CHECK_LINKER_FEATURES
2801debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
2811debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
2821debfc3dSmrg    ;;
2831debfc3dSmrg  *-tpf)
2841debfc3dSmrg    SECTION_FLAGS='-ffunction-sections -fdata-sections'
2851debfc3dSmrg    SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS'
2861debfc3dSmrg    AC_SUBST(SECTION_FLAGS)
2871debfc3dSmrg    AC_DEFINE(HAVE_FINITE)
2881debfc3dSmrg    AC_DEFINE(HAVE_FINITEF)
2891debfc3dSmrg    AC_DEFINE(HAVE_FREXPF)
2901debfc3dSmrg    AC_DEFINE(HAVE_HYPOTF)
2911debfc3dSmrg    AC_DEFINE(HAVE_ISINF)
2921debfc3dSmrg    AC_DEFINE(HAVE_ISINFF)
2931debfc3dSmrg    AC_DEFINE(HAVE_ISNAN)
2941debfc3dSmrg    AC_DEFINE(HAVE_ISNANF)
2951debfc3dSmrg    AC_DEFINE(HAVE_SINCOS)
2961debfc3dSmrg    AC_DEFINE(HAVE_SINCOSF)
2971debfc3dSmrg    if test x"long_double_math_on_this_cpu" = x"yes"; then
2981debfc3dSmrg      AC_DEFINE(HAVE_FINITEL)
2991debfc3dSmrg      AC_DEFINE(HAVE_HYPOTL)
3001debfc3dSmrg      AC_DEFINE(HAVE_ISINFL)
3011debfc3dSmrg      AC_DEFINE(HAVE_ISNANL)
3021debfc3dSmrg    fi
3031debfc3dSmrg    ;;
3041debfc3dSmrg  *-*vms*)
3051debfc3dSmrg    # Check for available headers.
3061debfc3dSmrg    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld
3071debfc3dSmrg    GLIBCXX_CHECK_MATH_SUPPORT
3081debfc3dSmrg    GLIBCXX_CHECK_STDLIB_SUPPORT
3091debfc3dSmrg    ;;
3101debfc3dSmrg  *-vxworks)
3111debfc3dSmrg    AC_DEFINE(HAVE_ACOSF)
3121debfc3dSmrg    AC_DEFINE(HAVE_ASINF)
3131debfc3dSmrg    AC_DEFINE(HAVE_ATAN2F)
3141debfc3dSmrg    AC_DEFINE(HAVE_ATANF)
3151debfc3dSmrg    AC_DEFINE(HAVE_CEILF)
3161debfc3dSmrg    AC_DEFINE(HAVE_COSF)
3171debfc3dSmrg    AC_DEFINE(HAVE_COSHF)
3181debfc3dSmrg    AC_DEFINE(HAVE_EXPF)
3191debfc3dSmrg    AC_DEFINE(HAVE_FABSF)
3201debfc3dSmrg    AC_DEFINE(HAVE_FLOORF)
3211debfc3dSmrg    AC_DEFINE(HAVE_FMODF)
3221debfc3dSmrg    AC_DEFINE(HAVE_HYPOT)
3231debfc3dSmrg    AC_DEFINE(HAVE_LOG10F)
3241debfc3dSmrg    AC_DEFINE(HAVE_LOGF)
3251debfc3dSmrg    AC_DEFINE(HAVE_POWF)
3261debfc3dSmrg    AC_DEFINE(HAVE_SINF)
3271debfc3dSmrg    AC_DEFINE(HAVE_SINHF)
3281debfc3dSmrg    AC_DEFINE(HAVE_SQRTF)
3291debfc3dSmrg    AC_DEFINE(HAVE_TANF)
3301debfc3dSmrg    AC_DEFINE(HAVE_TANHF)
331*8feb0f0bSmrg
332*8feb0f0bSmrgdnl # Different versions and execution modes implement different
333*8feb0f0bSmrgdnl # subsets of these functions.  Instead of hard-coding, test for C
334*8feb0f0bSmrgdnl # declarations in headers.  The C primitives could be defined as
335*8feb0f0bSmrgdnl # macros, in which case the tests might fail, and we might have to
336*8feb0f0bSmrgdnl # switch to more elaborate tests.
337*8feb0f0bSmrg    GLIBCXX_CHECK_MATH_DECLS([
338*8feb0f0bSmrg      acosl asinl atan2l atanl ceill cosl coshl expl fabsl floorl fmodl
339*8feb0f0bSmrg      frexpl ldexpl log10l logl modfl powl sinl sinhl sqrtl tanl tanhl])
340*8feb0f0bSmrgdnl # sincosl is the only one missing here, compared with the *l
341*8feb0f0bSmrgdnl # functions in the list guarded by
342*8feb0f0bSmrgdnl # long_double_math_on_this_cpu in configure.ac, right after
343*8feb0f0bSmrgdnl # the expansion of the present macro.
3441debfc3dSmrg    ;;
3451debfc3dSmrg  *)
3461debfc3dSmrg    AC_MSG_ERROR([No support for this host/target combination.])
3471debfc3dSmrg   ;;
3481debfc3dSmrgesac
3491debfc3dSmrg])
350*8feb0f0bSmrg
351*8feb0f0bSmrg
352*8feb0f0bSmrgdnl
353*8feb0f0bSmrgdnl Check to see if the (math function) argument passed is
354*8feb0f0bSmrgdnl declared when using the c compiler
355*8feb0f0bSmrgdnl
356*8feb0f0bSmrgdnl Define HAVE_CARGF etc if "cargf" is declared
357*8feb0f0bSmrgdnl
358*8feb0f0bSmrgdnl argument 1 is name of function to check
359*8feb0f0bSmrgdnl
360*8feb0f0bSmrgdnl ASSUMES argument is a math function
361*8feb0f0bSmrgdnl
362*8feb0f0bSmrgdnl GLIBCXX_CHECK_MATH_DECL
363*8feb0f0bSmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECL], [
364*8feb0f0bSmrg  AC_CACHE_CHECK([for $1 declaration],
365*8feb0f0bSmrg    [glibcxx_cv_func_$1_use], [
366*8feb0f0bSmrg      AC_LANG_SAVE
367*8feb0f0bSmrg      AC_LANG_C
368*8feb0f0bSmrg      AC_TRY_COMPILE([
369*8feb0f0bSmrg#include <math.h>
370*8feb0f0bSmrg#ifdef HAVE_IEEEFP_H
371*8feb0f0bSmrg# include <ieeefp.h>
372*8feb0f0bSmrg#endif
373*8feb0f0bSmrg#undef $1
374*8feb0f0bSmrg], [
375*8feb0f0bSmrg  void (*f)(void) = (void (*)(void))$1;
376*8feb0f0bSmrg], [glibcxx_cv_func_$1_use=yes
377*8feb0f0bSmrg], [glibcxx_cv_func_$1_use=no])])
378*8feb0f0bSmrg  if test "x$glibcxx_cv_func_$1_use" = xyes; then
379*8feb0f0bSmrg    AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]))
380*8feb0f0bSmrg  fi
381*8feb0f0bSmrg])
382*8feb0f0bSmrg
383*8feb0f0bSmrgdnl
384*8feb0f0bSmrgdnl Check to see whether multiple math functions are
385*8feb0f0bSmrgdnl declared when using the c compiler
386*8feb0f0bSmrgdnl
387*8feb0f0bSmrgdnl Define HAVE_CARGF HAVE_POWL etc if "cargf" and "powl"
388*8feb0f0bSmrgdnl are declared
389*8feb0f0bSmrgdnl
390*8feb0f0bSmrgdnl argument 1 is a word list naming function to check
391*8feb0f0bSmrgdnl
392*8feb0f0bSmrgdnl ASSUMES arguments are math functions
393*8feb0f0bSmrgdnl
394*8feb0f0bSmrgdnl GLIBCXX_CHECK_MATH_DECLS
395*8feb0f0bSmrgAC_DEFUN([GLIBCXX_CHECK_MATH_DECLS], [
396*8feb0f0bSmrg  m4_foreach_w([glibcxx_func], [$1], [
397*8feb0f0bSmrg    GLIBCXX_CHECK_MATH_DECL(glibcxx_func)
398*8feb0f0bSmrg  ])
399*8feb0f0bSmrg])
400