aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/aclocal.m4
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-20 08:59:25 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-20 08:59:25 +0000
commit08078d479d75da325e154dc46441ac79949a35c2 (patch)
treef895b431b6a7bf322998be355dddd14b09763a4b /libstdc++-v3/aclocal.m4
parenta3ad289ca1bfeaa87fe51b73353bf5e385a50b34 (diff)
2001-04-19 Benjamin Kosnik <bkoz@redhat.com>
* acconfig.h (_GLIBCPP_USE_C99): Add. * config.h.in: Regenerate. * acinclude.m4 (GLIBCPP_ENABLE_C99): New macro. Test for ISO/IEC 9899: 1999 support. * aclocal.m4: Regenerate. * configure.in (GLIBCPP_ENABLE_C99): Use it, on by default. * configure: Regenerate. * configure.in (GLIBCPP_ENABLE_LONG_LONG): Set default to yes. * configure: Regenerate. * include/c_std/bits/std_cwchar.h: Put wcstold, wcstoll, wcstoull into c99. * include/c_std/bits/std_cmath.h: Bring C99 functions into c99 namespace. * include/c_std/bits/std_cstdlib.h: Same. * docs/html/configopts.html: Update. * testsuite/26_numerics/c99_macros.cc: Edit, use cmath instead of math.h (test_c99_classify): Add. * config/os/gnu-linux/bits/os_defines.h (_GNU_SOURCE): Remove. (_ISOC99_SOURCE): Remove. * include/bits/stl_algo.h: Use _GLIBCPP_HAVE_DRAND48. * include/bits/c++config (__STL_ASSERTIONS): Simplify. * acinclude.m4 (GLIBCPP_CHECK_STDLIB_SUPPORT): Add check for drand48. * aclocal.m4: Regenerate. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41451 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/aclocal.m4')
-rw-r--r--libstdc++-v3/aclocal.m4113
1 files changed, 81 insertions, 32 deletions
diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4
index 74298f6bef0..0308344d947 100644
--- a/libstdc++-v3/aclocal.m4
+++ b/libstdc++-v3/aclocal.m4
@@ -467,9 +467,6 @@ dnl Check to see if the (stdlib function) argument passed is
dnl 1) declared when using the c++ compiler
dnl 2) has "C" linkage
dnl
-dnl Define HAVE_STRTOLD if "strtold" is declared and links
-dnl Define HAVE_STRTOF if "strtof" is declared and links
-dnl
dnl argument 1 is name of function to check
dnl
dnl ASSUMES argument is a math function with TWO parameters
@@ -612,8 +609,9 @@ dnl 1) make sure the name is declared when using the c++ compiler
dnl 2) make sure the name has "C" linkage
dnl This might seem like overkill but experience has shown that it's not...
dnl
-dnl Define HAVE_STRTOF etc if "strtof" is found.
-dnl Define HAVE_STRTOLD etc if "strtold" is found.
+dnl Define HAVE_STRTOLD if "strtold" is declared and links
+dnl Define HAVE_STRTOF if "strtof" is declared and links
+dnl Define HAVE_DRAND48 if "drand48" is declared and links
dnl
dnl GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
@@ -623,6 +621,7 @@ AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
AC_CHECK_FUNCS(strtof)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
+ AC_CHECK_FUNCS(drand48)
CXXFLAGS="$ac_save_CXXFLAGS"
])
@@ -1338,7 +1337,7 @@ dnl GLIBCPP_ENABLE_LONG_LONG
dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
-dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
+dnl Where DEFAULT is either `yes' or `no'. If omitted, it
dnl defaults to `no'.
dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
dnl
@@ -1356,44 +1355,93 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
*) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
esac],
enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
+
+ # Option parsed, now set things appropriately
+ if test x"$enable_long_long" = xyes; then
+ AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
+ fi
+])
+
- # Allow use of os-dependent settings, so that macros that turn on
- # C99 capabilities can be defined and used in a consistent way.
- OS_INC_PATH=${srcdir}/$os_include_dir
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS="-I$OS_INC_PATH"
+dnl
+dnl Check for ISO/IEC 9899:1999 "C99" support.
+dnl
+dnl GLIBCPP_ENABLE_C99
+dnl --enable-c99 defines _GLIBCPP_USE_C99
+dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined
+dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)]
+dnl Where DEFAULT is either `yes' or `no'. If omitted, it
+dnl defaults to `no'.
+dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'.
+dnl
+dnl GLIBCPP_ENABLE_C99
+AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl
+ define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl
- # Check for the existence of functions used if long long is enabled.
- AC_CHECK_FUNC(strtoll,,ac_strtoll=no)
- AC_CHECK_FUNC(strtoull,,ac_strtoull=no)
+ AC_ARG_ENABLE(c99,
+ changequote(<<, >>)dnl
+ <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
+ changequote([, ])dnl
+ [case "$enableval" in
+ yes) enable_c99=yes ;;
+ no) enable_c99=no ;;
+ *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
+ esac],
+ enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
- # Check for lldiv_t, et. al.
+ # Check for the existence of <math.h> functions used if C99 is enabled.
+ AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isgreater(0,0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isgreaterequal(0,0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isless(0,0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[islessequal(0,0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[islessgreater(0,0);],, [ac_c99_math=no])
+ AC_TRY_COMPILE([#include <math.h>],[isunordered(0,0);],, [ac_c99_math=no])
+
+ # Check for the existence in <stdlib.h> of lldiv_t, et. al.
+ AC_CHECK_FUNC(strtoll,,ac_c99_stdlib=no)
+ AC_CHECK_FUNC(strtoull,,ac_c99_stdlib=no)
+ AC_CHECK_FUNC(llabs,,ac_c99_stdlib=no)
+ AC_CHECK_FUNC(lldiv,,ac_c99_stdlib=no)
+ AC_CHECK_FUNC(atoll,,ac_c99_stdlib=no)
+
AC_MSG_CHECKING([for lldiv_t declaration])
- AC_CACHE_VAL(glibcpp_lldiv_t_use, [
- AC_TRY_COMPILE([#include <bits/os_defines.h>
- #include <stdlib.h>],
+ AC_CACHE_VAL(ac_c99_lldiv_t, [
+ AC_TRY_COMPILE([#include <stdlib.h>],
[ lldiv_t mydivt;],
- [glibcpp_lldiv_t_use=yes], [glibcpp_lldiv_t_use=no])
+ [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
])
- AC_MSG_RESULT($glibcpp_lldiv_t_use)
- if test x$glibcpp_lldiv_t_use = x"yes"; then
- AC_DEFINE(HAVE_LLDIV_T)
- fi
+ AC_MSG_RESULT($ac_c99_lldiv_t)
+ if test x"$ac_c99_lldiv_t" = x"no"; then
+ ac_c99_stdlib=no;
+ fi;
+
+ # Check for the existence of <wchar.h> functions used if C99 is enabled.
+ AC_CHECK_FUNC(wcstold,,ac_c99_wchar=no)
+ AC_CHECK_FUNC(wcstoll,,ac_c99_wchar=no)
+ AC_CHECK_FUNC(wcstoull,,ac_c99_wchar=no)
- AC_MSG_CHECKING([for enabled long long])
- if test x"$ac_strtoll" = xno || test x"$ac_strtoull" = xno; then
- enable_long_long=no;
+ AC_MSG_CHECKING([for enabled ISO C99 support])
+ if test x"$ac_c99_math" = x"no" || test x"$ac_c99_wchar" = x"no" \
+ || test x"$ac_c99_stdlib" = x"no"; then
+ enable_c99=no;
fi;
- AC_MSG_RESULT($enable_long_long)
+ AC_MSG_RESULT($enable_c99)
# Option parsed, now set things appropriately
- if test x"$enable_long_long" = xyes; then
- AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
+ if test x"$enable_c99" = x"yes"; then
+ AC_DEFINE(_GLIBCPP_USE_C99)
fi
- # Reset CFLAGS
- CFLAGS="$ac_save_CFLAGS"
+ AC_LANG_RESTORE
])
@@ -1765,6 +1813,7 @@ AC_DEFUN([AC_PROG_LD])
])
+
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.