Commit 347669a0 by Benjamin Kosnik Committed by Benjamin Kosnik

acinclude.m4: Adjust so that _GLIBCXX_USE_C99 implies using _GLIBCXX_USE_C99_COMPLEX...


2005-03-23  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4: Adjust so that _GLIBCXX_USE_C99 implies
	using _GLIBCXX_USE_C99_COMPLEX, _GLIBCXX_USE_C99_MATH, and
	_GLIBCXX_USE_C99_WCHAR.
	Remove GLIBCXX_ENABLE_C_MBCHAR, consolidate in GLIBCXX_ENABLE_C99
	and GLIBCXX_ENABLE_WCHAR_T.
	Take C99 bits from GLIBCXX_CHECK_WCHAR_T_SUPPORT and put in
	GLIBCXX_ENABLE_C99.
	Change remaining parts of GLIBCXX_CHECK_WCHAR_T_SUPPORT to
	GLIBCXX_CHECK_ICONV_SUPPORT.
	* configure.ac: Remove GLIBCXX_ENABLE_C_MBCHAR, use
	GLIBCXX_CHECK_ICONV_SUPPORT and GLIBCXX_ENABLE_WCHAR_T.
	* crossconfig.m4: Same.
	* acconfig.h: Same, adjust comments.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* docs/html/configopts.html: Change --enable-c-mbchar to
	--enable-wchar_t.

	* config/locale/gnu/c++locale_internal.h: Guard wide functions
	with _GLIBCXX_USE_WCHAR_T.
	* include/c_std/std_cwctype.h: Alphabetize, remove duplicates.
	* include/c_std/std_cstdio.h: Spacing.

	* config/locale/gnu/c_locale.h: Tweaks for unused warnings.
	* src/debug.cc: Same.

From-SVN: r96981
parent a53ed3de
2005-03-23 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4: Adjust so that _GLIBCXX_USE_C99 implies
using _GLIBCXX_USE_C99_COMPLEX, _GLIBCXX_USE_C99_MATH, and
_GLIBCXX_USE_C99_WCHAR.
Remove GLIBCXX_ENABLE_C_MBCHAR, consolidate in GLIBCXX_ENABLE_C99
and GLIBCXX_ENABLE_WCHAR_T.
Take C99 bits from GLIBCXX_CHECK_WCHAR_T_SUPPORT and put in
GLIBCXX_ENABLE_C99.
Change remaining parts of GLIBCXX_CHECK_WCHAR_T_SUPPORT to
GLIBCXX_CHECK_ICONV_SUPPORT.
* configure.ac: Remove GLIBCXX_ENABLE_C_MBCHAR, use
GLIBCXX_CHECK_ICONV_SUPPORT and GLIBCXX_ENABLE_WCHAR_T.
* crossconfig.m4: Same.
* acconfig.h: Same, adjust comments.
* config.h.in: Regenerate.
* configure: Regenerate.
* docs/html/configopts.html: Change --enable-c-mbchar to
--enable-wchar_t.
* config/locale/gnu/c++locale_internal.h: Guard wide functions
with _GLIBCXX_USE_WCHAR_T.
* include/c_std/std_cwctype.h: Alphabetize, remove duplicates.
* include/c_std/std_cstdio.h: Spacing.
* config/locale/gnu/c_locale.h: Tweaks for unused warnings.
* src/debug.cc: Same.
2005-03-23 Mark Mitchell <mark@codesourcery.com> 2005-03-23 Mark Mitchell <mark@codesourcery.com>
* testsuite/libstdc++-dg/normal.exp: Read testsuite_files, if it * testsuite/libstdc++-dg/normal.exp: Read testsuite_files, if it
......
// acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- // Symbols and macros for libstdc++ -*- C++ -*-
// Defines libstdc++ version. // Defines libstdc++ version.
#undef PACKAGE #undef PACKAGE
...@@ -10,21 +10,25 @@ ...@@ -10,21 +10,25 @@
#undef HAVE_GETTEXT #undef HAVE_GETTEXT
#undef HAVE_STPCPY #undef HAVE_STPCPY
// Include I/O support for 'long long' and 'unsigned long long'. // Define if code specialized for long long should be used.
#undef _GLIBCXX_USE_LONG_LONG #undef _GLIBCXX_USE_LONG_LONG
// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed. // Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
// Define if C99 functions or macros from <wchar.h>, <math.h>,
// <complex.h>, <stdio.h>, and <stdlib.h> can be used or exposed.
#undef _GLIBCXX_USE_C99 #undef _GLIBCXX_USE_C99
// Define if C99 math functions (like fpclassify) should be exposed. // Define if C99 functions or macros in <math.h> should be imported in
// <cmath> in namespace std.
#undef _GLIBCXX_USE_C99_MATH #undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex. // Define if C99 functions in <complex.h> should be used in
// <complex>. Using compiler builtins for these functions requires
// corresponding C99 library functions to be present.
#undef _GLIBCXX_USE_C99_COMPLEX #undef _GLIBCXX_USE_C99_COMPLEX
// Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
// Define if using setrlimit to set resource limits during 'make check'. // Define if using setrlimit to set resource limits during 'make check'.
#undef _GLIBCXX_RES_LIMITS #undef _GLIBCXX_RES_LIMITS
......
...@@ -124,14 +124,6 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [ ...@@ -124,14 +124,6 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
## (Right now, this only matters for enable_wchar_t, but nothing prevents ## (Right now, this only matters for enable_wchar_t, but nothing prevents
## other macros from doing the same. This should be automated.) -pme ## other macros from doing the same. This should be automated.) -pme
need_libmath=no need_libmath=no
enable_wchar_t=no
#enable_libstdcxx_debug=no
#enable_libstdcxx_pch=no
#enable_cheaders=c
#c_compatibility=no
#enable_abi_check=no
#enable_symvers=no
#enable_hosted_libstdcxx=yes
# Find platform-specific directories containing configuration info. # Find platform-specific directories containing configuration info.
# Also possibly modify flags used elsewhere, as needed by the platform. # Also possibly modify flags used elsewhere, as needed by the platform.
...@@ -290,85 +282,21 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [ ...@@ -290,85 +282,21 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
dnl dnl
dnl Check to see if this target can enable the wchar_t parts. dnl Check to see if this target can enable the iconv specializations.
dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This dnl If --disable-c-mbchar was given, no wchar_t specialization is enabled.
dnl must have been previously checked.) By default, wide characters are dnl (This must have been previously checked, along with the rest of C99
dnl disabled. dnl support.) By default, iconv support is disabled.
dnl dnl
dnl Defines: dnl Defines:
dnl HAVE_MBSTATE_T if mbstate_t is not in wchar.h dnl _GLIBCXX_USE_ICONV if all the bits are found.
dnl _GLIBCXX_USE_WCHAR_T if all the bits are found.
dnl Substs: dnl Substs:
dnl LIBICONV to a -l string containing the iconv library, if needed. dnl LIBICONV to a -l string containing the iconv library, if needed.
dnl dnl
AC_DEFUN([GLIBCXX_CHECK_WCHAR_T_SUPPORT], [ AC_DEFUN([GLIBCXX_CHECK_ICONV_SUPPORT], [
# Test wchar.h for mbstate_t, which is needed for char_traits and
# others even if wchar_t support is not on.
AC_MSG_CHECKING([for mbstate_t])
AC_TRY_COMPILE([#include <wchar.h>],
[mbstate_t teststate;],
have_mbstate_t=yes, have_mbstate_t=no)
AC_MSG_RESULT($have_mbstate_t)
if test x"$have_mbstate_t" = xyes; then
AC_DEFINE(HAVE_MBSTATE_T)
fi
# Sanity check for existence of ISO C99 headers for extended encoding.
AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
enable_iconv=no
# Only continue checking if the ISO C99 headers exist and support is on. # Only continue checking if the ISO C99 headers exist and support is on.
if test x"$ac_has_wchar_h" = xyes && if test x"$enable_wchar_t" = xyes; then
test x"$ac_has_wctype_h" = xyes &&
test x"$enable_c_mbchar" != xno; then
# Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
# numeric_limits can instantiate type_traits<wchar_t>
AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
AC_TRY_COMPILE([#include <wchar.h>],
[int i = WCHAR_MIN; int j = WCHAR_MAX;],
has_wchar_minmax=yes, has_wchar_minmax=no)
AC_MSG_RESULT($has_wchar_minmax)
# Test wchar.h for WEOF, which is what we use to determine whether
# to specialize for char_traits<wchar_t> or not.
AC_MSG_CHECKING([for WEOF])
AC_TRY_COMPILE([
#include <wchar.h>
#include <stddef.h>],
[wint_t i = WEOF;],
has_weof=yes, has_weof=no)
AC_MSG_RESULT($has_weof)
# Tests for wide character functions used in char_traits<wchar_t>.
ac_wfuncs=yes
AC_CHECK_FUNCS([wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset],
[],[ac_wfuncs=no])
# Checks for names injected into std:: by the c_std headers.
AC_CHECK_FUNCS([btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vswprintf \
vwprintf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstol \
wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr],
[],[ac_wfuncs=no])
# Checks for wide character functions that are not required
# for basic wchar_t support. Don't disable support if they are missing.
# Injection of these is wrapped with guard macros.
AC_CHECK_FUNCS([vfwscanf vswscanf vwscanf wcstof iswblank],[],[])
AC_MSG_CHECKING([for ISO C99 wchar_t support])
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes;
then
ac_isoC99_wchar_t=yes
else
ac_isoC99_wchar_t=no
fi
AC_MSG_RESULT($ac_isoC99_wchar_t)
# Use iconv for wchar_t to char conversions. As such, check for # Use iconv for wchar_t to char conversions. As such, check for
# X/Open Portability Guide, version 2 features (XPG2). # X/Open Portability Guide, version 2 features (XPG2).
...@@ -386,28 +314,17 @@ AC_DEFUN([GLIBCXX_CHECK_WCHAR_T_SUPPORT], [ ...@@ -386,28 +314,17 @@ AC_DEFUN([GLIBCXX_CHECK_WCHAR_T_SUPPORT], [
LIBS="$ac_save_LIBS" LIBS="$ac_save_LIBS"
AC_MSG_CHECKING([for XPG2 wchar_t support])
if test x"$ac_has_iconv_h" = xyes && if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes && test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; test x"$ac_XPG2funcs" = xyes;
then then
ac_XPG2_wchar_t=yes AC_DEFINE([_GLIBCXX_USE_ICONV],1,
else [Define if iconv and related functions exist and are usable.])
ac_XPG2_wchar_t=no enable_iconv=yes
fi
AC_MSG_RESULT($ac_XPG2_wchar_t)
# At the moment, only enable wchar_t specializations if all the
# above support is present.
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes;
then
AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
enable_wchar_t=yes
fi fi
fi fi
AC_MSG_CHECKING([for enabled wchar_t specializations]) AC_MSG_CHECKING([for enabled iconv specializations])
AC_MSG_RESULT($enable_wchar_t) AC_MSG_RESULT($enable_iconv)
]) ])
...@@ -838,29 +755,43 @@ dnl ...@@ -838,29 +755,43 @@ dnl
AC_DEFUN([GLIBCXX_ENABLE_C99], [ AC_DEFUN([GLIBCXX_ENABLE_C99], [
GLIBCXX_ENABLE(c99,$1,,[turns on ISO/IEC 9899:1999 support]) GLIBCXX_ENABLE(c99,$1,,[turns on ISO/IEC 9899:1999 support])
# Test wchar.h for mbstate_t, which is needed for char_traits and fpos
# even if C99 support is turned off.
AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
AC_MSG_CHECKING([for mbstate_t])
AC_TRY_COMPILE([#include <wchar.h>],
[mbstate_t teststate;],
have_mbstate_t=yes, have_mbstate_t=no)
AC_MSG_RESULT($have_mbstate_t)
if test x"$have_mbstate_t" = xyes; then
AC_DEFINE(HAVE_MBSTATE_T)
fi
if test x"$enable_c99" = x"yes"; then
AC_LANG_SAVE AC_LANG_SAVE
AC_LANG_CPLUSPLUS AC_LANG_CPLUSPLUS
# Check for the existence of <math.h> functions used if C99 is enabled. # Check for the existence of <math.h> functions used if C99 is enabled.
ac_c99_math=yes;
AC_MSG_CHECKING([for ISO C99 support in <math.h>]) AC_MSG_CHECKING([for ISO C99 support in <math.h>])
AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no]) AC_CACHE_VAL(ac_c99_math, [
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,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([#include <math.h>],
[isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no])
AC_TRY_COMPILE([#include <math.h>], AC_TRY_COMPILE([#include <math.h>],
[islessgreater(0.0,0.0);],, [ac_c99_math=no]) [fpclassify(0.0);
AC_TRY_COMPILE([#include <math.h>], isfinite(0.0);
[isunordered(0.0,0.0);],, [ac_c99_math=no]) isinf(0.0);
isnan(0.0);
isnormal(0.0);
signbit(0.0);
isgreater(0.0,0.0);
isgreaterequal(0.0,0.0);
isless(0.0,0.0);
islessequal(0.0,0.0);
islessgreater(0.0,0.0);
islessgreater(0.0,0.0);
isunordered(0.0,0.0);
],[ac_c99_math=yes], [ac_c99_math=no])
])
AC_MSG_RESULT($ac_c99_math) AC_MSG_RESULT($ac_c99_math)
if test x"$ac_c99_math" = x"yes"; then if test x"$ac_c99_math" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99_MATH) AC_DEFINE(_GLIBCXX_USE_C99_MATH)
fi fi
...@@ -869,200 +800,210 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ ...@@ -869,200 +800,210 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
# This is necessary even though libstdc++ uses the builtin versions # This is necessary even though libstdc++ uses the builtin versions
# of these functions, because if the builtin cannot be used, a reference # of these functions, because if the builtin cannot be used, a reference
# to the library function is emitted. # to the library function is emitted.
# In addition, need to explicitly specify "C" compilation for this
# one, or else the backwards C++ <complex.h> include will be selected.
save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -x c"
AC_CHECK_HEADERS(complex.h, ac_has_complex_h=yes, ac_has_complex_h=no) AC_CHECK_HEADERS(complex.h, ac_has_complex_h=yes, ac_has_complex_h=no)
ac_c99_complex=no; ac_c99_complex=no;
if test x"$ac_has_complex_h" = x"yes"; then if test x"$ac_has_complex_h" = x"yes"; then
ac_c99_complex=yes;
AC_MSG_CHECKING([for ISO C99 support in <complex.h>]) AC_MSG_CHECKING([for ISO C99 support in <complex.h>])
AC_TRY_COMPILE([#include <complex.h>], AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp; [typedef __complex__ float float_type; float_type tmpf;
cabsf(tmp);],, [ac_c99_complex=no]) cabsf(tmpf);
AC_TRY_COMPILE([#include <complex.h>], cargf(tmpf);
[typedef __complex__ double _ComplexT; _ComplexT tmp; ccosf(tmpf);
cabs(tmp);],, [ac_c99_complex=no]) ccoshf(tmpf);
AC_TRY_COMPILE([#include <complex.h>], cexpf(tmpf);
[typedef __complex__ long double _ComplexT; _ComplexT tmp; csinf(tmpf);
cabsl(tmp);],, [ac_c99_complex=no]) csinhf(tmpf);
AC_TRY_COMPILE([#include <complex.h>], csqrtf(tmpf);
[typedef __complex__ float _ComplexT; _ComplexT tmp; ctanf(tmpf);
cargf(tmp);],, [ac_c99_complex=no]) ctanhf(tmpf);
AC_TRY_COMPILE([#include <complex.h>], cpowf(tmpf, tmpf);
[typedef __complex__ double _ComplexT; _ComplexT tmp; typedef __complex__ double double_type; double_type tmpd;
carg(tmp);],, [ac_c99_complex=no]) cabs(tmpd);
AC_TRY_COMPILE([#include <complex.h>], carg(tmpd);
[typedef __complex__ long double _ComplexT; _ComplexT tmp; ccos(tmpd);
cargl(tmp);],, [ac_c99_complex=no]) ccosh(tmpd);
AC_TRY_COMPILE([#include <complex.h>], cexp(tmpd);
[typedef __complex__ float _ComplexT; _ComplexT tmp; csin(tmpd);
ccosf(tmp);],, [ac_c99_complex=no]) csinh(tmpd);
AC_TRY_COMPILE([#include <complex.h>], csqrt(tmpd);
[typedef __complex__ double _ComplexT; _ComplexT tmp; ctan(tmpd);
ccos(tmp);],, [ac_c99_complex=no]) ctanh(tmpd);
AC_TRY_COMPILE([#include <complex.h>], cpow(tmpd, tmpd);
[typedef __complex__ long double _ComplexT; _ComplexT tmp; typedef __complex__ long double ld_type; ld_type tmpld;
ccosl(tmp);],, [ac_c99_complex=no]) cabsl(tmpld);
AC_TRY_COMPILE([#include <complex.h>], cargl(tmpld);
[typedef __complex__ float _ComplexT; _ComplexT tmp; ccosl(tmpld);
ccoshf(tmp);],, [ac_c99_complex=no]) ccoshl(tmpld);
AC_TRY_COMPILE([#include <complex.h>], cexpl(tmpld);
[typedef __complex__ double _ComplexT; _ComplexT tmp; csinl(tmpld);
ccosh(tmp);],, [ac_c99_complex=no]) csinhl(tmpld);
AC_TRY_COMPILE([#include <complex.h>], csqrtl(tmpld);
[typedef __complex__ long double _ComplexT; _ComplexT tmp; ctanl(tmpld);
ccoshl(tmp);],, [ac_c99_complex=no]) ctanhl(tmpld);
AC_TRY_COMPILE([#include <complex.h>], cpowl(tmpld, tmpld);
[typedef __complex__ float _ComplexT; _ComplexT tmp; ],[ac_c99_complex=yes], [ac_c99_complex=no])
cexpf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
cexp(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
cexpl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
csinf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
csin(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
csinl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
csinhf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
csinh(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
csinhl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
csqrtf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
csqrt(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
csqrtl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
ctanf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
ctan(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
ctanl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
ctanhf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
ctanh(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
ctanhl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
cpowf(tmp, tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
cpow(tmp, tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
cpowl(tmp, tmp);],, [ac_c99_complex=no])
fi fi
CXXFLAGS="$save_CXXFLAGS"
AC_MSG_RESULT($ac_c99_complex) AC_MSG_RESULT($ac_c99_complex)
if test x"$ac_c99_complex" = x"yes"; then if test x"$ac_c99_complex" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX) AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX)
fi fi
# Check for the existence in <stdio.h> of vscanf, et. al. # Check for the existence in <stdio.h> of vscanf, et. al.
ac_c99_stdio=yes;
AC_MSG_CHECKING([for ISO C99 support in <stdio.h>]) AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
AC_TRY_COMPILE([#include <stdio.h>], AC_CACHE_VAL(ac_c99_stdio, [
[snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
AC_TRY_COMPILE([#include <stdio.h> AC_TRY_COMPILE([#include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
void foo(char* fmt, ...) void foo(char* fmt, ...)
{va_list args; va_start(args, fmt); {
vfscanf(stderr, "%i", args);}], va_list args; va_start(args, fmt);
[],, [ac_c99_stdio=no]) vfscanf(stderr, "%i", args);
AC_TRY_COMPILE([#include <stdio.h> vscanf("%i", args);
#include <stdarg.h> vsnprintf(fmt, 0, "%i", args);
void foo(char* fmt, ...) vsscanf(fmt, "%i", args);
{va_list args; va_start(args, fmt); }],
vscanf("%i", args);}], [snprintf("12", 0, "%i");],
[],, [ac_c99_stdio=no]) [ac_c99_stdio=yes], [ac_c99_stdio=no])
AC_TRY_COMPILE([#include <stdio.h> ])
#include <stdarg.h>
void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vsnprintf(fmt, 0, "%i", args);}],
[],, [ac_c99_stdio=no])
AC_TRY_COMPILE([#include <stdio.h>
#include <stdarg.h>
void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vsscanf(fmt, "%i", args);}],
[],, [ac_c99_stdio=no])
AC_MSG_RESULT($ac_c99_stdio) AC_MSG_RESULT($ac_c99_stdio)
# Check for the existence in <stdlib.h> of lldiv_t, et. al. # Check for the existence in <stdlib.h> of lldiv_t, et. al.
ac_c99_stdlib=yes;
AC_MSG_CHECKING([for lldiv_t declaration])
AC_CACHE_VAL(ac_c99_lldiv_t, [
AC_TRY_COMPILE([#include <stdlib.h>],
[ lldiv_t mydivt;],
[ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
])
AC_MSG_RESULT($ac_c99_lldiv_t)
AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>]) AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
AC_CACHE_VAL(ac_c99_stdlib, [
AC_TRY_COMPILE([#include <stdlib.h>], AC_TRY_COMPILE([#include <stdlib.h>],
[char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no]) [char* tmp;
AC_TRY_COMPILE([#include <stdlib.h>], strtof("gnu", &tmp);
[char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no]) strtold("gnu", &tmp);
AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no]) llabs(10);
AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no]) lldiv(10,1);
AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no]) atoll("10");
AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no]) _Exit(0);
if test x"$ac_c99_lldiv_t" = x"no"; then lldiv_t mydivt;],[ac_c99_stdlib=yes], [ac_c99_stdlib=no])
ac_c99_stdlib=no; ])
fi;
AC_MSG_RESULT($ac_c99_stdlib) AC_MSG_RESULT($ac_c99_stdlib)
# Check for the existence of <wchar.h> functions used if C99 is enabled. # Check for the existence in <wchar.h> of wcstoull, WEOF, etc.
# XXX the wchar.h checks should be rolled into the general C99 bits. AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
ac_c99_wchar=yes; ac_c99_wchar=no;
AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>]) if test x"$ac_has_wchar_h" = xyes &&
AC_TRY_COMPILE([#include <wchar.h>], test x"$ac_has_wctype_h" = xyes; then
[wcstold(L"10.0", NULL);],, [ac_c99_wchar=no]) AC_TRY_COMPILE([#include <wchar.h>
AC_TRY_COMPILE([#include <wchar.h>], #include <stddef.h>
[wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no]) wint_t i;
AC_TRY_COMPILE([#include <wchar.h>], long l = WEOF;
[wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no]) long j = WCHAR_MIN;
AC_MSG_RESULT($ac_c99_wchar) long k = WCHAR_MAX;
namespace test
{
using ::btowc;
using ::fgetwc;
using ::fgetws;
using ::fputwc;
using ::fputws;
using ::fwide;
using ::fwprintf;
using ::fwscanf;
using ::getwc;
using ::getwchar;
using ::mbrlen;
using ::mbrtowc;
using ::mbsinit;
using ::mbsrtowcs;
using ::putwc;
using ::putwchar;
using ::swprintf;
using ::swscanf;
using ::ungetwc;
using ::vfwprintf;
using ::vswprintf;
using ::vwprintf;
using ::wcrtomb;
using ::wcscat;
using ::wcschr;
using ::wcscmp;
using ::wcscoll;
using ::wcscpy;
using ::wcscspn;
using ::wcsftime;
using ::wcslen;
using ::wcsncat;
using ::wcsncmp;
using ::wcsncpy;
using ::wcspbrk;
using ::wcsrchr;
using ::wcsrtombs;
using ::wcsspn;
using ::wcsstr;
using ::wcstod;
using ::wcstok;
using ::wcstol;
using ::wcstold;
using ::wcstoll;
using ::wcstoul;
using ::wcstoull;
using ::wcsxfrm;
using ::wctob;
using ::wmemchr;
using ::wmemcmp;
using ::wmemcpy;
using ::wmemmove;
using ::wmemset;
using ::wprintf;
using ::wscanf;
}
],[],[ac_c99_wchar=yes], [ac_c99_wchar=no])
# Checks for wide character functions that may not be present.
# Injection of these is wrapped with guard macros.
# NB: only put functions here, instead of immediately above, if
# absolutely necessary.
AC_TRY_COMPILE([#include <wchar.h>
namespace test { using ::vfwscanf; } ], [],
[AC_DEFINE(HAVE_VFWSCANF,1,
[Defined if vfwscanf exists.])],[])
AC_TRY_COMPILE([#include <wchar.h>
namespace test { using ::vswscanf; } ], [],
[AC_DEFINE(HAVE_VSWSCANF,1,
[Defined if vswscanf exists.])],[])
AC_TRY_COMPILE([#include <wchar.h>
namespace test { using ::vwscanf; } ], [],
[AC_DEFINE(HAVE_VWSCANF,1,[Defined if vwscanf exists.])],[])
AC_TRY_COMPILE([#include <wchar.h>
namespace test { using ::wcstof; } ], [],
[AC_DEFINE(HAVE_WCSTOF,1,[Defined if wcstof exists.])],[])
AC_TRY_COMPILE([#include <wctype.h>],
[ wint_t t; int i = iswblank(t);],
[AC_DEFINE(HAVE_ISWBLANK,1,
[Defined if iswblank exists.])],[])
AC_MSG_CHECKING([for ISO C99 support in <wchar.h>])
AC_MSG_RESULT($ac_c99_wchar)
fi
AC_MSG_CHECKING([for enabled ISO C99 support]) # Option parsed, now set things appropriately.
if test x"$ac_c99_math" = x"no" || if test x"$ac_c99_math" = x"no" ||
test x"$ac_c99_complex" = x"no" || test x"$ac_c99_complex" = x"no" ||
test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdio" = x"no" ||
test x"$ac_c99_stdlib" = x"no" || test x"$ac_c99_stdlib" = x"no" ||
test x"$ac_c99_wchar" = x"no"; then test x"$ac_c99_wchar" = x"no"; then
enable_c99=no; enable_c99=no;
fi; else
AC_MSG_RESULT($enable_c99)
# Option parsed, now set things appropriately
if test x"$enable_c99" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99) AC_DEFINE(_GLIBCXX_USE_C99)
fi fi
AC_LANG_RESTORE AC_LANG_RESTORE
fi
AC_MSG_CHECKING([for fully enabled ISO C99 support])
AC_MSG_RESULT($enable_c99)
]) ])
...@@ -1296,7 +1237,7 @@ dnl ...@@ -1296,7 +1237,7 @@ dnl
dnl Default is new. dnl Default is new.
dnl dnl
AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [
AC_MSG_CHECKING([for std::allocator base class to use]) AC_MSG_CHECKING([for std::allocator base class])
GLIBCXX_ENABLE(libstdcxx-allocator,auto,[=KIND], GLIBCXX_ENABLE(libstdcxx-allocator,auto,[=KIND],
[use KIND for target std::allocator base], [use KIND for target std::allocator base],
[permit new|malloc|mt|bitmap|pool|yes|no|auto]) [permit new|malloc|mt|bitmap|pool|yes|no|auto])
...@@ -1445,21 +1386,6 @@ AC_DEFUN([GLIBCXX_ENABLE_CXX_FLAGS], [dnl ...@@ -1445,21 +1386,6 @@ AC_DEFUN([GLIBCXX_ENABLE_CXX_FLAGS], [dnl
dnl dnl
dnl Check for wide character support. Has the same effect as the option
dnl in gcc's configure, but in a form that autoconf can mess with.
dnl
dnl --enable-c-mbchar requests all the wchar_t stuff.
dnl --disable-c-mbchar doesn't.
dnl + Usage: GLIBCXX_ENABLE_C_MBCHAR[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'.
dnl
AC_DEFUN([GLIBCXX_ENABLE_C_MBCHAR], [
GLIBCXX_ENABLE(c-mbchar,$1,,[enable multibyte (wide) characters])
# Option parsed, now other scripts can test enable_c_mbchar for yes/no.
])
dnl
dnl Check to see if debugging libraries are to be built. dnl Check to see if debugging libraries are to be built.
dnl dnl
dnl --enable-libstdcxx-debug dnl --enable-libstdcxx-debug
...@@ -1555,7 +1481,7 @@ AC_DEFUN([GLIBCXX_ENABLE_HOSTED], [ ...@@ -1555,7 +1481,7 @@ AC_DEFUN([GLIBCXX_ENABLE_HOSTED], [
dnl dnl
dnl Check for template specializations for the 'long long' type extension. dnl Check for template specializations for the 'long long' type.
dnl The result determines only whether 'long long' I/O is enabled; things dnl The result determines only whether 'long long' I/O is enabled; things
dnl like numeric_limits<> specializations are always available. dnl like numeric_limits<> specializations are always available.
dnl dnl
...@@ -1565,10 +1491,32 @@ dnl + Usage: GLIBCXX_ENABLE_LONG_LONG[(DEFAULT)] ...@@ -1565,10 +1491,32 @@ dnl + Usage: GLIBCXX_ENABLE_LONG_LONG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'. dnl Where DEFAULT is either `yes' or `no'.
dnl dnl
AC_DEFUN([GLIBCXX_ENABLE_LONG_LONG], [ AC_DEFUN([GLIBCXX_ENABLE_LONG_LONG], [
GLIBCXX_ENABLE(long-long,$1,,[enables I/O support for 'long long']) GLIBCXX_ENABLE(long-long,$1,,[enable template specializations for 'long long'])
if test $enable_long_long = yes; then if test $enable_long_long = yes; then
AC_DEFINE(_GLIBCXX_USE_LONG_LONG) AC_DEFINE(_GLIBCXX_USE_LONG_LONG)
fi fi
AC_MSG_CHECKING([for enabled long long specializations])
AC_MSG_RESULT([$enable_long_long])
])
dnl
dnl Check for template specializations for the 'wchar_t' type.
dnl
dnl --enable-wchar_t defines _GLIBCXX_USE_WCHAR_T
dnl --disable-wchar_t leaves _GLIBCXX_USE_WCHAR_T undefined
dnl + Usage: GLIBCXX_ENABLE_WCHAR_T[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'.
dnl
dnl Necessary support (probed along with C99 support) must also be present.
dnl
AC_DEFUN([GLIBCXX_ENABLE_WCHAR_T], [
GLIBCXX_ENABLE(wchar_t,$1,,[enable template specializations for 'wchar_t'])
if test x"$ac_c99_wchar" = x"yes" && test x"$enable_wchar_t" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
fi
AC_MSG_CHECKING([for enabled wchar_t specializations])
AC_MSG_RESULT([$enable_wchar_t])
]) ])
......
/* config.h.in. Generated from configure.ac by autoheader. */ /* config.h.in. Generated from configure.ac by autoheader. */
// acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- // Symbols and macros for libstdc++ -*- C++ -*-
// Defines libstdc++ version. // Defines libstdc++ version.
#undef PACKAGE #undef PACKAGE
...@@ -11,21 +11,25 @@ ...@@ -11,21 +11,25 @@
#undef HAVE_GETTEXT #undef HAVE_GETTEXT
#undef HAVE_STPCPY #undef HAVE_STPCPY
// Include I/O support for 'long long' and 'unsigned long long'. // Define if code specialized for long long should be used.
#undef _GLIBCXX_USE_LONG_LONG #undef _GLIBCXX_USE_LONG_LONG
// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed. // Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
// Define if C99 functions or macros from <wchar.h>, <math.h>,
// <complex.h>, <stdio.h>, and <stdlib.h> can be used or exposed.
#undef _GLIBCXX_USE_C99 #undef _GLIBCXX_USE_C99
// Define if C99 math functions (like fpclassify) should be exposed. // Define if C99 functions or macros in <math.h> should be imported in
// <cmath> in namespace std.
#undef _GLIBCXX_USE_C99_MATH #undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex. // Define if C99 functions in <complex.h> should be used in
// <complex>. Using compiler builtins for these functions requires
// corresponding C99 library functions to be present.
#undef _GLIBCXX_USE_C99_COMPLEX #undef _GLIBCXX_USE_C99_COMPLEX
// Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
// Define if using setrlimit to set resource limits during 'make check'. // Define if using setrlimit to set resource limits during 'make check'.
#undef _GLIBCXX_RES_LIMITS #undef _GLIBCXX_RES_LIMITS
...@@ -194,9 +198,6 @@ ...@@ -194,9 +198,6 @@
/* Define to 1 if you have the `atanl' function. */ /* Define to 1 if you have the `atanl' function. */
#undef HAVE_ATANL #undef HAVE_ATANL
/* Define to 1 if you have the `btowc' function. */
#undef HAVE_BTOWC
/* Define to 1 if you have the `ceilf' function. */ /* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF #undef HAVE_CEILF
...@@ -242,12 +243,6 @@ ...@@ -242,12 +243,6 @@
/* Define to 1 if you have the `fabsl' function. */ /* Define to 1 if you have the `fabsl' function. */
#undef HAVE_FABSL #undef HAVE_FABSL
/* Define to 1 if you have the `fgetwc' function. */
#undef HAVE_FGETWC
/* Define to 1 if you have the `fgetws' function. */
#undef HAVE_FGETWS
/* Define to 1 if you have the `finite' function. */ /* Define to 1 if you have the `finite' function. */
#undef HAVE_FINITE #undef HAVE_FINITE
...@@ -275,12 +270,6 @@ ...@@ -275,12 +270,6 @@
/* Define to 1 if you have the `fpclass' function. */ /* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS #undef HAVE_FPCLASS
/* Define to 1 if you have the `fputwc' function. */
#undef HAVE_FPUTWC
/* Define to 1 if you have the `fputws' function. */
#undef HAVE_FPUTWS
/* Define to 1 if you have the <fp.h> header file. */ /* Define to 1 if you have the <fp.h> header file. */
#undef HAVE_FP_H #undef HAVE_FP_H
...@@ -290,27 +279,12 @@ ...@@ -290,27 +279,12 @@
/* Define to 1 if you have the `frexpl' function. */ /* Define to 1 if you have the `frexpl' function. */
#undef HAVE_FREXPL #undef HAVE_FREXPL
/* Define to 1 if you have the `fwide' function. */
#undef HAVE_FWIDE
/* Define to 1 if you have the `fwprintf' function. */
#undef HAVE_FWPRINTF
/* Define to 1 if you have the `fwscanf' function. */
#undef HAVE_FWSCANF
/* Define to 1 if you have the <gconv.h> header file. */ /* Define to 1 if you have the <gconv.h> header file. */
#undef HAVE_GCONV_H #undef HAVE_GCONV_H
/* Define to 1 if you have the `getpagesize' function. */ /* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE #undef HAVE_GETPAGESIZE
/* Define to 1 if you have the `getwc' function. */
#undef HAVE_GETWC
/* Define to 1 if you have the `getwchar' function. */
#undef HAVE_GETWCHAR
/* Define to 1 if you have the `hypot' function. */ /* Define to 1 if you have the `hypot' function. */
#undef HAVE_HYPOT #undef HAVE_HYPOT
...@@ -353,7 +327,7 @@ ...@@ -353,7 +327,7 @@
/* Define to 1 if you have the `isnanl' function. */ /* Define to 1 if you have the `isnanl' function. */
#undef HAVE_ISNANL #undef HAVE_ISNANL
/* Define to 1 if you have the `iswblank' function. */ /* Defined if iswblank exists. */
#undef HAVE_ISWBLANK #undef HAVE_ISWBLANK
/* Define to 1 if you have the `ldexpf' function. */ /* Define to 1 if you have the `ldexpf' function. */
...@@ -404,18 +378,6 @@ ...@@ -404,18 +378,6 @@
/* Define to 1 if you have the <machine/param.h> header file. */ /* Define to 1 if you have the <machine/param.h> header file. */
#undef HAVE_MACHINE_PARAM_H #undef HAVE_MACHINE_PARAM_H
/* Define to 1 if you have the `mbrlen' function. */
#undef HAVE_MBRLEN
/* Define to 1 if you have the `mbrtowc' function. */
#undef HAVE_MBRTOWC
/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT
/* Define to 1 if you have the `mbsrtowcs' function. */
#undef HAVE_MBSRTOWCS
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MEMORY_H
...@@ -440,12 +402,6 @@ ...@@ -440,12 +402,6 @@
/* Define to 1 if you have the `powl' function. */ /* Define to 1 if you have the `powl' function. */
#undef HAVE_POWL #undef HAVE_POWL
/* Define to 1 if you have the `putwc' function. */
#undef HAVE_PUTWC
/* Define to 1 if you have the `putwchar' function. */
#undef HAVE_PUTWCHAR
/* Define to 1 if you have the `qfpclass' function. */ /* Define to 1 if you have the `qfpclass' function. */
#undef HAVE_QFPCLASS #undef HAVE_QFPCLASS
...@@ -500,12 +456,6 @@ ...@@ -500,12 +456,6 @@
/* Define to 1 if you have the `strtold' function. */ /* Define to 1 if you have the `strtold' function. */
#undef HAVE_STRTOLD #undef HAVE_STRTOLD
/* Define to 1 if you have the `swprintf' function. */
#undef HAVE_SWPRINTF
/* Define to 1 if you have the `swscanf' function. */
#undef HAVE_SWSCANF
/* Define to 1 if you have the <sys/filio.h> header file. */ /* Define to 1 if you have the <sys/filio.h> header file. */
#undef HAVE_SYS_FILIO_H #undef HAVE_SYS_FILIO_H
...@@ -554,129 +504,27 @@ ...@@ -554,129 +504,27 @@
/* Define to 1 if you have the `tanl' function. */ /* Define to 1 if you have the `tanl' function. */
#undef HAVE_TANL #undef HAVE_TANL
/* Define to 1 if you have the `ungetwc' function. */
#undef HAVE_UNGETWC
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H #undef HAVE_UNISTD_H
/* Define to 1 if you have the `vfwprintf' function. */ /* Defined if vfwscanf exists. */
#undef HAVE_VFWPRINTF
/* Define to 1 if you have the `vfwscanf' function. */
#undef HAVE_VFWSCANF #undef HAVE_VFWSCANF
/* Define to 1 if you have the `vswprintf' function. */ /* Defined if vswscanf exists. */
#undef HAVE_VSWPRINTF
/* Define to 1 if you have the `vswscanf' function. */
#undef HAVE_VSWSCANF #undef HAVE_VSWSCANF
/* Define to 1 if you have the `vwprintf' function. */ /* Defined if vwscanf exists. */
#undef HAVE_VWPRINTF
/* Define to 1 if you have the `vwscanf' function. */
#undef HAVE_VWSCANF #undef HAVE_VWSCANF
/* Define to 1 if you have the <wchar.h> header file. */ /* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H #undef HAVE_WCHAR_H
/* Define to 1 if you have the `wcrtomb' function. */ /* Defined if wcstof exists. */
#undef HAVE_WCRTOMB
/* Define to 1 if you have the `wcscat' function. */
#undef HAVE_WCSCAT
/* Define to 1 if you have the `wcschr' function. */
#undef HAVE_WCSCHR
/* Define to 1 if you have the `wcscmp' function. */
#undef HAVE_WCSCMP
/* Define to 1 if you have the `wcscoll' function. */
#undef HAVE_WCSCOLL
/* Define to 1 if you have the `wcscpy' function. */
#undef HAVE_WCSCPY
/* Define to 1 if you have the `wcscspn' function. */
#undef HAVE_WCSCSPN
/* Define to 1 if you have the `wcsftime' function. */
#undef HAVE_WCSFTIME
/* Define to 1 if you have the `wcslen' function. */
#undef HAVE_WCSLEN
/* Define to 1 if you have the `wcsncat' function. */
#undef HAVE_WCSNCAT
/* Define to 1 if you have the `wcsncmp' function. */
#undef HAVE_WCSNCMP
/* Define to 1 if you have the `wcsncpy' function. */
#undef HAVE_WCSNCPY
/* Define to 1 if you have the `wcspbrk' function. */
#undef HAVE_WCSPBRK
/* Define to 1 if you have the `wcsrchr' function. */
#undef HAVE_WCSRCHR
/* Define to 1 if you have the `wcsrtombs' function. */
#undef HAVE_WCSRTOMBS
/* Define to 1 if you have the `wcsspn' function. */
#undef HAVE_WCSSPN
/* Define to 1 if you have the `wcsstr' function. */
#undef HAVE_WCSSTR
/* Define to 1 if you have the `wcstod' function. */
#undef HAVE_WCSTOD
/* Define to 1 if you have the `wcstof' function. */
#undef HAVE_WCSTOF #undef HAVE_WCSTOF
/* Define to 1 if you have the `wcstok' function. */
#undef HAVE_WCSTOK
/* Define to 1 if you have the `wcstol' function. */
#undef HAVE_WCSTOL
/* Define to 1 if you have the `wcstoul' function. */
#undef HAVE_WCSTOUL
/* Define to 1 if you have the `wcsxfrm' function. */
#undef HAVE_WCSXFRM
/* Define to 1 if you have the `wctob' function. */
#undef HAVE_WCTOB
/* Define to 1 if you have the <wctype.h> header file. */ /* Define to 1 if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H #undef HAVE_WCTYPE_H
/* Define to 1 if you have the `wmemchr' function. */
#undef HAVE_WMEMCHR
/* Define to 1 if you have the `wmemcmp' function. */
#undef HAVE_WMEMCMP
/* Define to 1 if you have the `wmemcpy' function. */
#undef HAVE_WMEMCPY
/* Define to 1 if you have the `wmemmove' function. */
#undef HAVE_WMEMMOVE
/* Define to 1 if you have the `wmemset' function. */
#undef HAVE_WMEMSET
/* Define to 1 if you have the `wprintf' function. */
#undef HAVE_WPRINTF
/* Define to 1 if you have the `wscanf' function. */
#undef HAVE_WSCANF
/* Define to 1 if you have the `_acosf' function. */ /* Define to 1 if you have the `_acosf' function. */
#undef HAVE__ACOSF #undef HAVE__ACOSF
...@@ -898,6 +746,9 @@ ...@@ -898,6 +746,9 @@
/* Define if the compiler is configured for setjmp/longjmp exceptions. */ /* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef _GLIBCXX_SJLJ_EXCEPTIONS #undef _GLIBCXX_SJLJ_EXCEPTIONS
/* Define if iconv and related functions exist and are usable. */
#undef _GLIBCXX_USE_ICONV
// //
// Systems that have certain non-standard functions prefixed with an // Systems that have certain non-standard functions prefixed with an
// underscore, we'll handle those here. Must come after config.h.in. // underscore, we'll handle those here. Must come after config.h.in.
......
// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- // Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
// Copyright (C) 2002, 2004 Free Software Foundation, Inc. // Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -29,11 +29,11 @@ ...@@ -29,11 +29,11 @@
// Written by Jakub Jelinek <jakub@redhat.com> // Written by Jakub Jelinek <jakub@redhat.com>
#include <bits/c++config.h>
#include <clocale> #include <clocale>
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
extern "C" __typeof(iswctype_l) __iswctype_l;
extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
extern "C" __typeof(strcoll_l) __strcoll_l; extern "C" __typeof(strcoll_l) __strcoll_l;
extern "C" __typeof(strftime_l) __strftime_l; extern "C" __typeof(strftime_l) __strftime_l;
...@@ -41,15 +41,19 @@ extern "C" __typeof(strtod_l) __strtod_l; ...@@ -41,15 +41,19 @@ extern "C" __typeof(strtod_l) __strtod_l;
extern "C" __typeof(strtof_l) __strtof_l; extern "C" __typeof(strtof_l) __strtof_l;
extern "C" __typeof(strtold_l) __strtold_l; extern "C" __typeof(strtold_l) __strtold_l;
extern "C" __typeof(strxfrm_l) __strxfrm_l; extern "C" __typeof(strxfrm_l) __strxfrm_l;
extern "C" __typeof(newlocale) __newlocale;
extern "C" __typeof(freelocale) __freelocale;
extern "C" __typeof(duplocale) __duplocale;
extern "C" __typeof(uselocale) __uselocale;
#ifdef _GLIBCXX_USE_WCHAR_T
extern "C" __typeof(iswctype_l) __iswctype_l;
extern "C" __typeof(towlower_l) __towlower_l; extern "C" __typeof(towlower_l) __towlower_l;
extern "C" __typeof(towupper_l) __towupper_l; extern "C" __typeof(towupper_l) __towupper_l;
extern "C" __typeof(wcscoll_l) __wcscoll_l; extern "C" __typeof(wcscoll_l) __wcscoll_l;
extern "C" __typeof(wcsftime_l) __wcsftime_l; extern "C" __typeof(wcsftime_l) __wcsftime_l;
extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
extern "C" __typeof(wctype_l) __wctype_l; extern "C" __typeof(wctype_l) __wctype_l;
extern "C" __typeof(newlocale) __newlocale; #endif
extern "C" __typeof(freelocale) __freelocale;
extern "C" __typeof(duplocale) __duplocale;
extern "C" __typeof(uselocale) __uselocale;
#endif // GLIBC 2.3 and later #endif // GLIBC 2.3 and later
// Wrapper for underlying C-language localization -*- C++ -*- // Wrapper for underlying C-language localization -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -66,7 +66,9 @@ namespace std ...@@ -66,7 +66,9 @@ namespace std
// be avoided. // be avoided.
template<typename _Tv> template<typename _Tv>
int int
__convert_from_v(char* __out, const int __size, const char* __fmt, __convert_from_v(char* __out,
const int __size __attribute__ ((__unused__)),
const char* __fmt,
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
_Tv __v, const __c_locale& __cloc, int __prec) _Tv __v, const __c_locale& __cloc, int __prec)
{ {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -64,32 +64,28 @@ AM_INIT_AUTOMAKE([1.9.1 no-define foreign no-dependencies -Wall -Wno-portability ...@@ -64,32 +64,28 @@ AM_INIT_AUTOMAKE([1.9.1 no-define foreign no-dependencies -Wall -Wno-portability
# up critical shell variables. # up critical shell variables.
GLIBCXX_CONFIGURE GLIBCXX_CONFIGURE
#AC_MSG_NOTICE([====== Starting libtool configuration])
AC_LIBTOOL_DLOPEN AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
AC_SUBST(enable_shared) AC_SUBST(enable_shared)
AC_SUBST(enable_static) AC_SUBST(enable_static)
#AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10
# Possibly disable most of the library. # Possibly disable most of the library.
## XXX Consider skipping unncessary tests altogether in this case, rather ## TODO: Consider skipping unncessary tests altogether in this case, rather
## than just ignoring the results. Faster /and/ more correct, win win. ## than just ignoring the results. Faster /and/ more correct, win win.
GLIBCXX_ENABLE_HOSTED GLIBCXX_ENABLE_HOSTED
# Check for support bits and g++ features that don't require linking. # Check for compiler support that doesn't require linking.
GLIBCXX_ENABLE_SJLJ_EXCEPTIONS GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
GLIBCXX_ENABLE_PCH($is_hosted) GLIBCXX_ENABLE_PCH($is_hosted)
# Enable all the variable C++ runtime options. # Enable all the variable C++ runtime options.
# NB: C_MBCHAR must come early.
GLIBCXX_ENABLE_CSTDIO GLIBCXX_ENABLE_CSTDIO
GLIBCXX_ENABLE_CLOCALE GLIBCXX_ENABLE_CLOCALE
GLIBCXX_ENABLE_ALLOCATOR GLIBCXX_ENABLE_ALLOCATOR
GLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.host GLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.host
GLIBCXX_ENABLE_C_MBCHAR([yes])
GLIBCXX_ENABLE_C99([yes]) GLIBCXX_ENABLE_C99([yes])
GLIBCXX_ENABLE_LONG_LONG([yes]) GLIBCXX_ENABLE_LONG_LONG([yes])
GLIBCXX_ENABLE_THREADS GLIBCXX_ENABLE_WCHAR_T([yes])
GLIBCXX_ENABLE_CONCEPT_CHECKS([no]) GLIBCXX_ENABLE_CONCEPT_CHECKS([no])
GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"]) GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"])
GLIBCXX_ENABLE_DEBUG([no]) GLIBCXX_ENABLE_DEBUG([no])
...@@ -97,6 +93,7 @@ GLIBCXX_ENABLE_CXX_FLAGS ...@@ -97,6 +93,7 @@ GLIBCXX_ENABLE_CXX_FLAGS
GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no]) GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no])
# No surprises, no surprises... # No surprises, no surprises...
GLIBCXX_ENABLE_THREADS
if test $atomicity_dir = cpu/generic ; then if test $atomicity_dir = cpu/generic ; then
AC_MSG_WARN([No native atomic operations are provided for this platform.]) AC_MSG_WARN([No native atomic operations are provided for this platform.])
if test $target_thread_file = single; then if test $target_thread_file = single; then
...@@ -124,7 +121,7 @@ if $GLIBCXX_IS_NATIVE; then ...@@ -124,7 +121,7 @@ if $GLIBCXX_IS_NATIVE; then
GLIBCXX_CHECK_MATH_SUPPORT GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper(). # For showmanyc_helper().
......
dnl dnl
dnl This file contains stuff. dnl This file contains details for non-natives builds.
dnl dnl
# Base decisions on target environment. # Base decisions on target environment.
...@@ -21,7 +21,7 @@ case "${host}" in ...@@ -21,7 +21,7 @@ case "${host}" in
GLIBCXX_CHECK_MATH_SUPPORT GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper(). # For showmanyc_helper().
...@@ -56,7 +56,7 @@ case "${host}" in ...@@ -56,7 +56,7 @@ case "${host}" in
GLIBCXX_CHECK_MATH_SUPPORT GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT GLIBCXX_CHECK_STDLIB_SUPPORT
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
AC_DEFINE(HAVE_WRITEV) AC_DEFINE(HAVE_WRITEV)
...@@ -71,7 +71,7 @@ case "${host}" in ...@@ -71,7 +71,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_LC_MESSAGES) AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_GETPAGESIZE) AC_DEFINE(HAVE_GETPAGESIZE)
AC_DEFINE(HAVE_SETENV) AC_DEFINE(HAVE_SETENV)
...@@ -126,7 +126,7 @@ case "${host}" in ...@@ -126,7 +126,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN) AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF) AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FREXPF) AC_DEFINE(HAVE_FREXPF)
...@@ -150,7 +150,7 @@ case "${host}" in ...@@ -150,7 +150,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
# For LFS. # For LFS.
AC_DEFINE(HAVE_INT64_T) AC_DEFINE(HAVE_INT64_T)
...@@ -237,7 +237,7 @@ case "${host}" in ...@@ -237,7 +237,7 @@ case "${host}" in
AC_CHECK_HEADERS([sys/types.h locale.h float.h]) AC_CHECK_HEADERS([sys/types.h locale.h float.h])
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
;; ;;
*-netbsd*) *-netbsd*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
...@@ -247,7 +247,7 @@ case "${host}" in ...@@ -247,7 +247,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN) AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF) AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITEF) AC_DEFINE(HAVE_FINITEF)
...@@ -271,7 +271,7 @@ case "${host}" in ...@@ -271,7 +271,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
# For showmanyc_helper(). # For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
...@@ -287,7 +287,7 @@ case "${host}" in ...@@ -287,7 +287,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COSF) AC_DEFINE(HAVE_COSF)
AC_DEFINE(HAVE_COSL) AC_DEFINE(HAVE_COSL)
AC_DEFINE(HAVE_COSHF) AC_DEFINE(HAVE_COSHF)
...@@ -316,71 +316,19 @@ case "${host}" in ...@@ -316,71 +316,19 @@ case "${host}" in
AC_DEFINE(HAVE_POLL) AC_DEFINE(HAVE_POLL)
AC_DEFINE(HAVE_S_ISREG) AC_DEFINE(HAVE_S_ISREG)
AC_DEFINE(HAVE_LC_MESSAGES) AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_BTOWC)
AC_DEFINE(HAVE_FGETWC)
AC_DEFINE(HAVE_FGETWS)
AC_DEFINE(HAVE_FINITE) AC_DEFINE(HAVE_FINITE)
AC_DEFINE(HAVE_FPCLASS) AC_DEFINE(HAVE_FPCLASS)
AC_DEFINE(HAVE_FPUTWC)
AC_DEFINE(HAVE_FPUTWS)
AC_DEFINE(HAVE_FWIDE)
AC_DEFINE(HAVE_FWPRINTF)
AC_DEFINE(HAVE_FWSCANF)
AC_DEFINE(HAVE_GETPAGESIZE) AC_DEFINE(HAVE_GETPAGESIZE)
AC_DEFINE(HAVE_GETWC)
AC_DEFINE(HAVE_GETWCHAR)
AC_DEFINE(HAVE_MBRLEN)
AC_DEFINE(HAVE_MBRTOWC)
AC_DEFINE(HAVE_MBSINIT)
AC_DEFINE(HAVE_MBSRTOWCS)
AC_DEFINE(HAVE_NL_LANGINFO) AC_DEFINE(HAVE_NL_LANGINFO)
AC_DEFINE(HAVE_PUTWC)
AC_DEFINE(HAVE_PUTWCHAR)
AC_DEFINE(HAVE_SWPRINTF)
AC_DEFINE(HAVE_SWSCANF)
AC_DEFINE(HAVE_UNGETWC)
AC_DEFINE(HAVE_VFWPRINTF)
AC_DEFINE(HAVE_VSWPRINTF)
AC_DEFINE(HAVE_VWPRINTF)
AC_DEFINE(HAVE_WCRTOMB)
AC_DEFINE(HAVE_WCSCAT)
AC_DEFINE(HAVE_WCSCHR)
AC_DEFINE(HAVE_WCSCMP)
AC_DEFINE(HAVE_WCSCOLL)
AC_DEFINE(HAVE_WCSCPY)
AC_DEFINE(HAVE_WCSCSPN)
AC_DEFINE(HAVE_WCSFTIME)
AC_DEFINE(HAVE_WCSLEN)
AC_DEFINE(HAVE_WCSNCAT)
AC_DEFINE(HAVE_WCSNCMP)
AC_DEFINE(HAVE_WCSNCPY)
AC_DEFINE(HAVE_WCSPBRK)
AC_DEFINE(HAVE_WCSRCHR)
AC_DEFINE(HAVE_WCSRTOMBS)
AC_DEFINE(HAVE_WCSSPN)
AC_DEFINE(HAVE_WCSSTR)
AC_DEFINE(HAVE_WCSTOD)
AC_DEFINE(HAVE_WCSTOK)
AC_DEFINE(HAVE_WCSTOL)
AC_DEFINE(HAVE_WCSTOUL)
AC_DEFINE(HAVE_WCSXFRM)
AC_DEFINE(HAVE_WCTOB)
AC_DEFINE(HAVE_WMEMCHR)
AC_DEFINE(HAVE_WMEMCMP)
AC_DEFINE(HAVE_WMEMCPY)
AC_DEFINE(HAVE_WMEMMOVE)
AC_DEFINE(HAVE_WMEMSET)
AC_DEFINE(HAVE_WPRINTF)
AC_DEFINE(HAVE_WSCANF)
AC_DEFINE(HAVE_ICONV) AC_DEFINE(HAVE_ICONV)
AC_DEFINE(HAVE_ICONV_CLOSE) AC_DEFINE(HAVE_ICONV_CLOSE)
AC_DEFINE(HAVE_ICONV_OPEN) AC_DEFINE(HAVE_ICONV_OPEN)
# Look for the pieces required for wchar_t support in order to # Look for the pieces required for wchar_t support in order to
# get all the right HAVE_* macros defined. # get all the right HAVE_* macros defined.
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
# All of the dependencies for wide character support are here, so # All of the dependencies for wide character support are here, so
# turn it on. This requires some syncronization with the # turn it on. This requires some syncronization with the
# GLIBCXX_CHECK_WCHAR_T_SUPPORT in acinclude.m4 # GLIBCXX_CHECK_ICONV_SUPPORT in acinclude.m4
AC_DEFINE(_GLIBCXX_USE_WCHAR_T) AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
# Are these tested for even when cross? # Are these tested for even when cross?
AC_DEFINE(HAVE_FLOAT_H) AC_DEFINE(HAVE_FLOAT_H)
...@@ -435,7 +383,7 @@ case "${host}" in ...@@ -435,7 +383,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS) AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN) AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF) AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITE) AC_DEFINE(HAVE_FINITE)
......
...@@ -234,14 +234,13 @@ options</a></h1> ...@@ -234,14 +234,13 @@ options</a></h1>
</p> </p>
</dd> </dd>
<dt><code>--enable-c-mbchar </code>[default]</dt> <dt><code>--enable-wchar_t </code>[default]</dt>
<dd><p>Certain template specializations are required for wide <dd><p>Template specializations for the &quot;wchar_t&quot; type are
character conversion support. This is tricky and currently required for wide character conversion support. Disabling
changing rapidly, and can cause problems on new platforms. wide character specializations may be expedient for initial
Disabling wide character specializations is useful for initial porting efforts, but builds only a subset of what is required by
porting steps, but builds only a subset of what is required by ISO, and is not recommended. By default, this option is on.
ISO. By default, this option is on. This option can change This option can change the library ABI.
the library ABI.
</p> </p>
</dd> </dd>
......
...@@ -154,15 +154,16 @@ namespace __gnu_cxx ...@@ -154,15 +154,16 @@ namespace __gnu_cxx
{ {
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" int extern "C" int
(snprintf)(char * restrict, size_t, const char * restrict, ...); (snprintf)(char * restrict, size_t, const char * restrict, ...);
extern "C" int extern "C" int
(vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list); (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
extern "C" int (vscanf)(const char * restrict, __gnuc_va_list); extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
extern "C" int extern "C" int
(vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list); (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
extern "C" int extern "C" int
(vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list); (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
#endif #endif
#if !_GLIBCXX_USE_C99_DYNAMIC #if !_GLIBCXX_USE_C99_DYNAMIC
using ::snprintf; using ::snprintf;
using ::vfscanf; using ::vfscanf;
......
// -*- C++ -*- forwarding header. // -*- C++ -*- forwarding header.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -59,19 +59,18 @@ ...@@ -59,19 +59,18 @@
# undef iswblank # undef iswblank
#endif #endif
#undef iswcntrl #undef iswcntrl
#undef iswctype
#undef iswdigit #undef iswdigit
#undef iswgraph #undef iswgraph
#undef iswlower #undef iswlower
#undef iswprint #undef iswprint
#undef iswprint
#undef iswpunct #undef iswpunct
#undef iswspace #undef iswspace
#undef iswupper #undef iswupper
#undef iswxdigit #undef iswxdigit
#undef iswctype #undef towctrans
#undef towlower #undef towlower
#undef towupper #undef towupper
#undef towctrans
#undef wctrans #undef wctrans
#undef wctype #undef wctype
...@@ -89,19 +88,18 @@ namespace std ...@@ -89,19 +88,18 @@ namespace std
using ::iswblank; using ::iswblank;
#endif #endif
using ::iswcntrl; using ::iswcntrl;
using ::iswctype;
using ::iswdigit; using ::iswdigit;
using ::iswgraph; using ::iswgraph;
using ::iswlower; using ::iswlower;
using ::iswprint; using ::iswprint;
using ::iswprint;
using ::iswpunct; using ::iswpunct;
using ::iswspace; using ::iswspace;
using ::iswupper; using ::iswupper;
using ::iswxdigit; using ::iswxdigit;
using ::iswctype; using ::towctrans;
using ::towlower; using ::towlower;
using ::towupper; using ::towupper;
using ::towctrans;
using ::wctrans; using ::wctrans;
using ::wctype; using ::wctype;
} }
......
// Debugging mode support code -*- C++ -*- // Debugging mode support code -*- C++ -*-
// Copyright (C) 2003, 2004 // Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -507,7 +507,7 @@ namespace __gnu_debug ...@@ -507,7 +507,7 @@ namespace __gnu_debug
template<typename _Tp> template<typename _Tp>
void void
_Error_formatter::_M_format_word(char* __buf, _Error_formatter::_M_format_word(char* __buf,
int __n __attribute__((__unused__)), int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const const char* __fmt, _Tp __s) const
{ {
#ifdef _GLIBCXX_USE_C99 #ifdef _GLIBCXX_USE_C99
...@@ -653,21 +653,20 @@ namespace __gnu_debug ...@@ -653,21 +653,20 @@ namespace __gnu_debug
// Instantiations. // Instantiations.
template template
void void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt, _Error_formatter::_M_format_word(char*, int, const char*,
const void* __s) const; const void*) const;
template template
void void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt, _Error_formatter::_M_format_word(char*, int, const char*, long) const;
long __s) const;
template template
void void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt, _Error_formatter::_M_format_word(char*, int, const char*,
std::size_t __s) const; std::size_t) const;
template template
void void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt, _Error_formatter::_M_format_word(char*, int, const char*,
const char* __s) const; const char*) const;
} // namespace __gnu_debug } // namespace __gnu_debug
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment