dnl acinclude.m4 dnl dnl This file was derived from libstdc++-v3/acinclude.m4 and heavily pruned. dnl Its purpose is to check for glibc time, gettimeofday and dnl float128 availability. dnl dnl GLIBCXX_CONDITIONAL (NAME, SHELL-TEST) dnl dnl Exactly like AM_CONDITIONAL, but delays evaluation of the test until the dnl end of configure. This lets tested variables be reassigned, and the dnl conditional will depend on the final state of the variable. For a simple dnl example of why this is needed, see GLIBCXX_ENABLE_HOSTED. dnl m4_define([_m4_divert(glibcxx_diversion)], 8000)dnl AC_DEFUN([GLIBCXX_CONDITIONAL], [dnl m4_divert_text([glibcxx_diversion],dnl AM_CONDITIONAL([$1],[$2]) )dnl ])dnl AC_DEFUN([GLIBCXX_EVALUATE_CONDITIONALS], [m4_undivert([glibcxx_diversion])])dnl dnl dnl Check to see what architecture and operating system we are compiling dnl for. Also, if architecture- or OS-specific flags are required for dnl compilation, pick them up here. dnl AC_DEFUN([GLIBCXX_CHECK_HOST], [ . $glibcxx_srcdir/configure.host AC_MSG_NOTICE([CPU config directory is $cpu_include_dir]) AC_MSG_NOTICE([OS config directory is $os_include_dir]) ]) dnl dnl Initialize the rest of the library configury. At this point we have dnl variables like $host. dnl dnl Sets: dnl SUBDIRS dnl Substs: dnl glibcxx_builddir (absolute path) dnl glibcxx_srcdir (absolute path) dnl toplevel_builddir (absolute path) dnl toplevel_srcdir (absolute path) dnl with_cross_host dnl with_newlib dnl with_target_subdir dnl plus dnl - the variables in GLIBCXX_CHECK_HOST / configure.host dnl - default settings for all AM_CONFITIONAL test variables dnl - lots of tools, like CC and CXX dnl AC_DEFUN([GLIBCXX_CONFIGURE], [ # Keep these sync'd with the list in Makefile.am. The first provides an # expandable list at autoconf time; the second provides an expandable list # (i.e., shell variable) at configure time. m4_define([glibcxx_SUBDIRS],[]) SUBDIRS='glibcxx_SUBDIRS' # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. glibcxx_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcxx_srcdir=${srcdir} ;; *) glibcxx_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; esac toplevel_builddir=${glibcxx_builddir}/.. toplevel_srcdir=${glibcxx_srcdir}/.. AC_SUBST(glibcxx_builddir) AC_SUBST(glibcxx_srcdir) AC_SUBST(toplevel_builddir) AC_SUBST(toplevel_srcdir) # We use these options to decide which functions to include. They are # set from the top level. AC_ARG_WITH([target-subdir], AC_HELP_STRING([--with-target-subdir=SUBDIR], [configuring in a subdirectory])) AC_ARG_WITH([cross-host], AC_HELP_STRING([--with-cross-host=HOST], [configuring with a cross compiler])) AC_ARG_WITH([newlib], AC_HELP_STRING([--with-newlib], [assume newlib as a system C library])) # Will set LN_S to either 'ln -s', 'ln', or 'cp -p' (if linking isn't # available). Uncomment the next line to force a particular method. AC_PROG_LN_S #LN_S='cp -p' AC_CHECK_TOOL(AS, as) AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) AM_MAINTAINER_MODE # Set up safe default values for all subsequent AM_CONDITIONAL tests # which are themselves conditionally expanded. ## (Right now, this only matters for enable_wchar_t, but nothing prevents ## other macros from doing the same. This should be automated.) -pme # Check for C library flavor since GNU/Linux platforms use different # configuration directories depending on the C library in use. AC_EGREP_CPP([_using_uclibc], [ #include #if __UCLIBC__ _using_uclibc #endif ], uclibc=yes, uclibc=no) AC_EGREP_CPP([_using_bionic], [ #include #if __BIONIC__ _using_bionic #endif ], bionic=yes, bionic=no) # Find platform-specific directories containing configuration info. # Also possibly modify flags used elsewhere, as needed by the platform. GLIBCXX_CHECK_HOST ]) dnl dnl GLIBCXX_ENABLE dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING) dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, permit a|b|c) dnl (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, SHELL-CODE-HANDLER) dnl dnl See manual/appendix_porting.html#appendix.porting.build_hacking for dnl documentation. dnl m4_define([GLIBCXX_ENABLE],[dnl m4_define([_g_switch],[--enable-$1])dnl m4_define([_g_help],[AC_HELP_STRING([_g_switch$3],[$4 @<:@default=$2@:>@])])dnl AC_ARG_ENABLE([$1],m4_dquote(_g_help), m4_bmatch([$5], [^permit ], [[ case "$enableval" in m4_bpatsubst([$5],[permit ])) ;; *) AC_MSG_ERROR(Unknown argument to enable/disable $1) ;; dnl Idea for future: generate a URL pointing to dnl "onlinedocs/configopts.html#whatever" esac ]], [^$], [[ case "$enableval" in yes|no) ;; *) AC_MSG_ERROR(Argument to enable/disable $1 must be yes or no) ;; esac ]], [[$5]]), [enable_]m4_bpatsubst([$1],-,_)[=][$2]) m4_undefine([_g_switch])dnl m4_undefine([_g_help])dnl ]) dnl dnl Check for clock_gettime, nanosleep and sched_yield, used in the dnl implementation of 20.11.7 [time.clock], and 30.3.2 [thread.thread.this] dnl in the C++11 standard. dnl dnl --enable-libstdcxx-time dnl --enable-libstdcxx-time=yes dnl checks for the availability of monotonic and realtime clocks, dnl nanosleep and sched_yield in libc. dnl --enable-libstdcxx-time=rt dnl also searches (and, if needed, links) librt. Note that this is dnl not always desirable because, in glibc 2.16 and earlier, for dnl example, in turn it triggers the linking of libpthread too, dnl which activates locking, dnl a large overhead for single-thread programs. dnl --enable-libstdcxx-time=no dnl --disable-libstdcxx-time dnl disables the checks completely dnl dnl N.B. Darwin provides nanosleep but doesn't support the whole POSIX dnl Timers option, so doesn't define _POSIX_TIMERS. Because the test dnl below fails Darwin unconditionally defines _GLIBCXX_USE_NANOSLEEP in dnl os_defines.h and also defines _GLIBCXX_USE_SCHED_YIELD. dnl dnl needed AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [ GLIBCXX_ENABLE(libstdcxx-time,auto,[[[=KIND]]], [use KIND for check type], [permit yes|no|rt]) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-exceptions" ac_save_LIBS="$LIBS" ac_has_clock_monotonic=no ac_has_clock_realtime=no ac_has_nanosleep=no ac_has_sched_yield=no if test x"$enable_libstdcxx_time" = x"auto"; then case "${target_os}" in cygwin*) ac_has_nanosleep=yes ;; mingw*) ac_has_win32_sleep=yes ac_has_sched_yield=yes ;; darwin*) ac_has_nanosleep=yes ac_has_sched_yield=yes ;; # VxWorks has nanosleep as soon as the kernel is configured with # INCLUDE_POSIX_TIMERS, which is normally/most-often the case. vxworks*) ac_has_nanosleep=yes ;; gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) # Don't use link test for freestanding library, in case gcc_no_link=yes if test x"$is_hosted" = xyes; then # Versions of glibc before 2.17 needed -lrt for clock_gettime. AC_SEARCH_LIBS(clock_gettime, [rt]) if test x"$ac_cv_search_clock_gettime" = x"none required"; then ac_has_clock_monotonic=yes ac_has_clock_realtime=yes fi fi ac_has_nanosleep=yes ac_has_sched_yield=yes ;; freebsd*|netbsd*|dragonfly*|rtems*) ac_has_clock_monotonic=yes ac_has_clock_realtime=yes ac_has_nanosleep=yes ac_has_sched_yield=yes ;; openbsd*) ac_has_clock_monotonic=yes ac_has_clock_realtime=yes ac_has_nanosleep=yes ;; solaris*) ac_has_clock_monotonic=yes ac_has_clock_realtime=yes ac_has_nanosleep=yes ac_has_sched_yield=yes ;; uclinux*) ac_has_nanosleep=yes ac_has_sched_yield=yes esac elif test x"$enable_libstdcxx_time" != x"no"; then if test x"$enable_libstdcxx_time" = x"rt"; then AC_SEARCH_LIBS(clock_gettime, [rt]) AC_SEARCH_LIBS(nanosleep, [rt]) else AC_CHECK_FUNC(clock_gettime) AC_CHECK_FUNC(nanosleep) fi case "$ac_cv_search_clock_gettime" in -l*) GLIBCXX_LIBS=$ac_cv_search_clock_gettime ;; esac case "$ac_cv_search_nanosleep" in -l*) GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_nanosleep" ;; esac AC_SEARCH_LIBS(sched_yield, [rt]) case "$ac_cv_search_sched_yield" in -lrt*) if test x"$enable_libstdcxx_time" = x"rt"; then GLIBCXX_LIBS="$GLIBCXX_LIBS $ac_cv_search_sched_yield" ac_has_sched_yield=yes fi ;; *) ac_has_sched_yield=yes ;; esac AC_CHECK_HEADERS(unistd.h, ac_has_unistd_h=yes, ac_has_unistd_h=no) if test x"$ac_has_unistd_h" = x"yes"; then AC_MSG_CHECKING([for monotonic clock]) AC_TRY_LINK( [#include #include ], [#if _POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK) timespec tp; #endif clock_gettime(CLOCK_MONOTONIC, &tp); ], [ac_has_clock_monotonic=yes], [ac_has_clock_monotonic=no]) AC_MSG_RESULT($ac_has_clock_monotonic) AC_MSG_CHECKING([for realtime clock]) AC_TRY_LINK( [#include #include ], [#if _POSIX_TIMERS > 0 timespec tp; #endif clock_gettime(CLOCK_REALTIME, &tp); ], [ac_has_clock_realtime=yes], [ac_has_clock_realtime=no]) AC_MSG_RESULT($ac_has_clock_realtime) AC_MSG_CHECKING([for nanosleep]) AC_TRY_LINK( [#include #include ], [#if _POSIX_TIMERS > 0 timespec tp; #endif nanosleep(&tp, 0); ], [ac_has_nanosleep=yes], [ac_has_nanosleep=no]) AC_MSG_RESULT($ac_has_nanosleep) fi fi if test x"$ac_has_clock_monotonic" != x"yes"; then case ${target_os} in linux* | uclinux*) AC_MSG_CHECKING([for clock_gettime syscall]) AC_TRY_COMPILE( [#include #include #include ], [#if _POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK) timespec tp; #endif syscall(SYS_clock_gettime, CLOCK_MONOTONIC, &tp); syscall(SYS_clock_gettime, CLOCK_REALTIME, &tp); ], [ac_has_clock_gettime_syscall=yes], [ac_has_clock_gettime_syscall=no]) AC_MSG_RESULT($ac_has_clock_gettime_syscall) if test x"$ac_has_clock_gettime_syscall" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL, 1, [Defined if clock_gettime syscall has monotonic and realtime clock support. ]) ac_has_clock_monotonic=yes ac_has_clock_realtime=yes AC_MSG_CHECKING([for struct timespec that matches syscall]) AC_TRY_COMPILE( [#include #include ], [#ifdef SYS_clock_gettime64 #if SYS_clock_gettime64 != SYS_clock_gettime // We need to use SYS_clock_gettime and libc appears to // also know about the SYS_clock_gettime64 syscall. // Check that userspace doesn't use time64 version of timespec. static_assert(sizeof(timespec::tv_sec) == sizeof(long), "struct timespec must be compatible with SYS_clock_gettime"); #endif #endif ], [ac_timespec_matches_syscall=yes], [ac_timespec_matches_syscall=no]) AC_MSG_RESULT($ac_timespec_matches_syscall) if test x"$ac_timespec_matches_syscall" = no; then AC_MSG_ERROR([struct timespec is not compatible with SYS_clock_gettime, please report a bug to http://gcc.gnu.org/bugzilla]) fi fi;; esac fi if test x"$ac_has_clock_monotonic" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_CLOCK_MONOTONIC, 1, [ Defined if clock_gettime has monotonic clock support. ]) fi if test x"$ac_has_clock_realtime" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_CLOCK_REALTIME, 1, [ Defined if clock_gettime has realtime clock support. ]) fi if test x"$ac_has_sched_yield" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_SCHED_YIELD, 1, [ Defined if sched_yield is available. ]) fi if test x"$ac_has_nanosleep" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_NANOSLEEP, 1, [ Defined if nanosleep is available. ]) elif test x"$ac_has_win32_sleep" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_WIN32_SLEEP, 1, [Defined if Sleep exists.]) else AC_MSG_CHECKING([for sleep]) AC_TRY_COMPILE([#include ], [sleep(1)], [ac_has_sleep=yes],[ac_has_sleep=no]) if test x"$ac_has_sleep" = x"yes"; then AC_DEFINE(HAVE_SLEEP,1, [Defined if sleep exists.]) fi AC_MSG_RESULT($ac_has_sleep) AC_MSG_CHECKING([for usleep]) AC_TRY_COMPILE([#include ], [sleep(1); usleep(100);], [ac_has_usleep=yes],[ac_has_usleep=no]) if test x"$ac_has_usleep" = x"yes"; then AC_DEFINE(HAVE_USLEEP,1, [Defined if usleep exists.]) fi AC_MSG_RESULT($ac_has_usleep) fi if test x"$ac_has_nanosleep$ac_has_win32_sleep$ac_has_sleep" = x"nonono"; then AC_DEFINE(_GLIBCXX_NO_SLEEP,1, [Defined if no way to sleep is available.]) fi AC_SUBST(GLIBCXX_LIBS) CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" AC_LANG_RESTORE ]) dnl dnl Check for gettimeofday, used in the implementation of 20.11.7 dnl [time.clock] in the C++11 standard. dnl dnl needed AC_DEFUN([GLIBCXX_CHECK_GETTIMEOFDAY], [ AC_MSG_CHECKING([for gettimeofday]) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-exceptions" ac_has_gettimeofday=no; AC_CHECK_HEADERS(sys/time.h, ac_has_sys_time_h=yes, ac_has_sys_time_h=no) if test x"$ac_has_sys_time_h" = x"yes"; then AC_MSG_CHECKING([for gettimeofday]) GCC_TRY_COMPILE_OR_LINK([#include ], [timeval tv; gettimeofday(&tv, 0);], [ac_has_gettimeofday=yes], [ac_has_gettimeofday=no]) AC_MSG_RESULT($ac_has_gettimeofday) fi if test x"$ac_has_gettimeofday" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_GETTIMEOFDAY, 1, [ Defined if gettimeofday is available. ]) fi CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) dnl dnl Check for which locale library to use. The choice is mapped to dnl a subdirectory of config/locale. dnl dnl Default is generic. dnl AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ GLIBCXX_ENABLE(clocale,auto,[[[=MODEL]]], [use MODEL for target locale package], [permit generic|gnu|ieee_1003.1-2001|newlib|yes|no|auto]) # Deal with gettext issues. Default to not using it (=no) until we detect # support for it later. Let the user turn it off via --e/d, but let that # default to on for easier handling. USE_NLS=no AC_ARG_ENABLE(nls, AC_HELP_STRING([--enable-nls],[use Native Language Support (default)]), [], [enable_nls=yes]) # Either a known package, or "auto" if test $enable_clocale = no || test $enable_clocale = yes; then enable_clocale=auto fi enable_clocale_flag=$enable_clocale # Probe for locale model to use if none specified. # Default to "generic". if test $enable_clocale_flag = auto; then case ${target_os} in linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) enable_clocale_flag=gnu ;; darwin*) enable_clocale_flag=darwin ;; vxworks*) enable_clocale_flag=vxworks ;; dragonfly* | freebsd*) enable_clocale_flag=dragonfly ;; openbsd*) enable_clocale_flag=newlib ;; *) if test x"$with_newlib" = x"yes"; then enable_clocale_flag=newlib else enable_clocale_flag=generic fi ;; esac fi # Sanity check model, and test for special functionality. if test $enable_clocale_flag = gnu; then AC_EGREP_CPP([_GLIBCXX_ok], [ #include #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__) _GLIBCXX_ok #endif ], enable_clocale_flag=gnu, enable_clocale_flag=generic) # Set it to scream when it hurts. ac_save_CFLAGS="$CFLAGS" CFLAGS="-Wimplicit-function-declaration -Werror" # Use strxfrm_l if available. AC_TRY_COMPILE([#define _GNU_SOURCE 1 #include #include ], [char s[128]; __locale_t loc; strxfrm_l(s, "C", 5, loc);], AC_DEFINE(HAVE_STRXFRM_L, 1, [Define if strxfrm_l is available in .]),) # Use strerror_l if available. AC_TRY_COMPILE([#define _GNU_SOURCE 1 #include #include ], [__locale_t loc; strerror_l(5, loc);], AC_DEFINE(HAVE_STRERROR_L, 1, [Define if strerror_l is available in .]),) CFLAGS="$ac_save_CFLAGS" fi # Perhaps use strerror_r if available, and strerror_l isn't. ac_save_CFLAGS="$CFLAGS" CFLAGS="-Wimplicit-function-declaration -Werror" AC_TRY_COMPILE([#define _GNU_SOURCE 1 #include #include ], [char s[128]; strerror_r(5, s, 128);], AC_DEFINE(HAVE_STRERROR_R, 1, [Define if strerror_r is available in .]),) CFLAGS="$ac_save_CFLAGS" # Set configure bits for specified locale package AC_MSG_CHECKING([for C locale to use]) case ${enable_clocale_flag} in generic) AC_MSG_RESULT(generic) CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; darwin) AC_MSG_RESULT(darwin) CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/darwin/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; vxworks) AC_MSG_RESULT(vxworks) CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/vxworks/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; dragonfly) AC_MSG_RESULT(dragonfly or freebsd) CLOCALE_H=config/locale/dragonfly/c_locale.h CLOCALE_CC=config/locale/dragonfly/c_locale.cc CCODECVT_CC=config/locale/dragonfly/codecvt_members.cc CCOLLATE_CC=config/locale/dragonfly/collate_members.cc CCTYPE_CC=config/locale/dragonfly/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/dragonfly/monetary_members.cc CNUMERIC_CC=config/locale/dragonfly/numeric_members.cc CTIME_H=config/locale/dragonfly/time_members.h CTIME_CC=config/locale/dragonfly/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; gnu) AC_MSG_RESULT(gnu) # Declare intention to use gettext, and add support for specific # languages. # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ done AC_SUBST(glibcxx_MOFILES) AC_SUBST(glibcxx_POFILES) CLOCALE_H=config/locale/gnu/c_locale.h CLOCALE_CC=config/locale/gnu/c_locale.cc CCODECVT_CC=config/locale/gnu/codecvt_members.cc CCOLLATE_CC=config/locale/gnu/collate_members.cc CCTYPE_CC=config/locale/gnu/ctype_members.cc CMESSAGES_H=config/locale/gnu/messages_members.h CMESSAGES_CC=config/locale/gnu/messages_members.cc CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc CTIME_H=config/locale/gnu/time_members.h CTIME_CC=config/locale/gnu/time_members.cc CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; ieee_1003.1-2001) AC_MSG_RESULT(IEEE 1003.1) CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; newlib) AC_MSG_RESULT(newlib) CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/newlib/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; esac # This is where the testsuite looks for locale catalogs, using the # -DLOCALEDIR define during testsuite compilation. glibcxx_localedir=${glibcxx_builddir}/po/share/locale AC_SUBST(glibcxx_localedir) # A standalone libintl (e.g., GNU libintl) may be in use. if test $USE_NLS = yes; then AC_CHECK_HEADERS([libintl.h], [], USE_NLS=no) AC_SEARCH_LIBS(gettext, intl, [], USE_NLS=no) fi if test $USE_NLS = yes; then AC_DEFINE(_GLIBCXX_USE_NLS, 1, [Define if NLS translations are to be used.]) fi AC_SUBST(USE_NLS) AC_SUBST(CLOCALE_H) AC_SUBST(CMESSAGES_H) AC_SUBST(CCODECVT_CC) AC_SUBST(CCOLLATE_CC) AC_SUBST(CCTYPE_CC) AC_SUBST(CMESSAGES_CC) AC_SUBST(CMONEY_CC) AC_SUBST(CNUMERIC_CC) AC_SUBST(CTIME_H) AC_SUBST(CTIME_CC) AC_SUBST(CLOCALE_CC) AC_SUBST(CLOCALE_INTERNAL_H) ]) dnl dnl Check for GNU 128-bit floating point type. dnl dnl Note: also checks that the type isn't a standard types. dnl dnl Defines: dnl ENABLE_FLOAT128 dnl AC_DEFUN([GLIBCXX_ENABLE_FLOAT128], [ AC_LANG_SAVE AC_LANG_CPLUSPLUS # Fake what AC_TRY_COMPILE does, without linking as this is # unnecessary for this test. cat > conftest.$ac_ext << EOF [#]line __oline__ "configure" template struct same { typedef T2 type; }; template struct same; int main() { typename same::type f1; typename same::type f2; } EOF AC_MSG_CHECKING([for __float128]) if AC_TRY_EVAL(ac_compile); then enable_float128=yes else enable_float128=no fi AC_MSG_RESULT($enable_float128) GLIBCXX_CONDITIONAL(ENABLE_FLOAT128, test $enable_float128 = yes) rm -f conftest* AC_LANG_RESTORE ]) # Macros from the top-level gcc directory. m4_include([../config/gc++filt.m4]) m4_include([../config/tls.m4]) m4_include([../config/gthr.m4]) m4_include([../config/cet.m4])