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
This commit is contained in:
Benjamin Kosnik 2005-03-24 05:45:45 +00:00 committed by Benjamin Kosnik
parent a53ed3ded7
commit 347669a079
13 changed files with 1237 additions and 14102 deletions

View File

@ -1,3 +1,31 @@
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>
* testsuite/libstdc++-dg/normal.exp: Read testsuite_files, if it

View File

@ -1,4 +1,4 @@
// acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*-
// Symbols and macros for libstdc++ -*- C++ -*-
// Defines libstdc++ version.
#undef PACKAGE
@ -10,21 +10,25 @@
#undef HAVE_GETTEXT
#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
// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed.
#undef _GLIBCXX_USE_C99
// Define if C99 math functions (like fpclassify) should be exposed.
#undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex.
#undef _GLIBCXX_USE_C99_COMPLEX
// 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
// Define if C99 functions or macros in <math.h> should be imported in
// <cmath> in namespace std.
#undef _GLIBCXX_USE_C99_MATH
// 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
// Define if using setrlimit to set resource limits during 'make check'.
#undef _GLIBCXX_RES_LIMITS

View File

@ -124,14 +124,6 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
## (Right now, this only matters for enable_wchar_t, but nothing prevents
## other macros from doing the same. This should be automated.) -pme
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.
# Also possibly modify flags used elsewhere, as needed by the platform.
@ -290,85 +282,21 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
dnl
dnl Check to see if this target can enable the wchar_t parts.
dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This
dnl must have been previously checked.) By default, wide characters are
dnl disabled.
dnl Check to see if this target can enable the iconv specializations.
dnl If --disable-c-mbchar was given, no wchar_t specialization is enabled.
dnl (This must have been previously checked, along with the rest of C99
dnl support.) By default, iconv support is disabled.
dnl
dnl Defines:
dnl HAVE_MBSTATE_T if mbstate_t is not in wchar.h
dnl _GLIBCXX_USE_WCHAR_T if all the bits are found.
dnl _GLIBCXX_USE_ICONV if all the bits are found.
dnl Substs:
dnl LIBICONV to a -l string containing the iconv library, if needed.
dnl
AC_DEFUN([GLIBCXX_CHECK_WCHAR_T_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)
AC_DEFUN([GLIBCXX_CHECK_ICONV_SUPPORT], [
enable_iconv=no
# Only continue checking if the ISO C99 headers exist and support is on.
if test x"$ac_has_wchar_h" = xyes &&
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)
if test x"$enable_wchar_t" = xyes; then
# Use iconv for wchar_t to char conversions. As such, check for
# X/Open Portability Guide, version 2 features (XPG2).
@ -386,28 +314,17 @@ AC_DEFUN([GLIBCXX_CHECK_WCHAR_T_SUPPORT], [
LIBS="$ac_save_LIBS"
AC_MSG_CHECKING([for XPG2 wchar_t support])
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes;
then
ac_XPG2_wchar_t=yes
else
ac_XPG2_wchar_t=no
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
AC_DEFINE([_GLIBCXX_USE_ICONV],1,
[Define if iconv and related functions exist and are usable.])
enable_iconv=yes
fi
fi
AC_MSG_CHECKING([for enabled wchar_t specializations])
AC_MSG_RESULT($enable_wchar_t)
AC_MSG_CHECKING([for enabled iconv specializations])
AC_MSG_RESULT($enable_iconv)
])
@ -838,29 +755,43 @@ dnl
AC_DEFUN([GLIBCXX_ENABLE_C99], [
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_CPLUSPLUS
# 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_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,0.0);],, [ac_c99_math=no])
AC_CACHE_VAL(ac_c99_math, [
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>],
[islessgreater(0.0,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([#include <math.h>],
[isunordered(0.0,0.0);],, [ac_c99_math=no])
[fpclassify(0.0);
isfinite(0.0);
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)
if test x"$ac_c99_math" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99_MATH)
fi
@ -869,200 +800,210 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
# This is necessary even though libstdc++ uses the builtin versions
# of these functions, because if the builtin cannot be used, a reference
# 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_c99_complex=no;
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_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
cabsf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
cabs(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
cabsl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
cargf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
carg(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
cargl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
ccosf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
ccos(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
ccosl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
ccoshf(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ double _ComplexT; _ComplexT tmp;
ccosh(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ long double _ComplexT; _ComplexT tmp;
ccoshl(tmp);],, [ac_c99_complex=no])
AC_TRY_COMPILE([#include <complex.h>],
[typedef __complex__ float _ComplexT; _ComplexT tmp;
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])
[typedef __complex__ float float_type; float_type tmpf;
cabsf(tmpf);
cargf(tmpf);
ccosf(tmpf);
ccoshf(tmpf);
cexpf(tmpf);
csinf(tmpf);
csinhf(tmpf);
csqrtf(tmpf);
ctanf(tmpf);
ctanhf(tmpf);
cpowf(tmpf, tmpf);
typedef __complex__ double double_type; double_type tmpd;
cabs(tmpd);
carg(tmpd);
ccos(tmpd);
ccosh(tmpd);
cexp(tmpd);
csin(tmpd);
csinh(tmpd);
csqrt(tmpd);
ctan(tmpd);
ctanh(tmpd);
cpow(tmpd, tmpd);
typedef __complex__ long double ld_type; ld_type tmpld;
cabsl(tmpld);
cargl(tmpld);
ccosl(tmpld);
ccoshl(tmpld);
cexpl(tmpld);
csinl(tmpld);
csinhl(tmpld);
csqrtl(tmpld);
ctanl(tmpld);
ctanhl(tmpld);
cpowl(tmpld, tmpld);
],[ac_c99_complex=yes], [ac_c99_complex=no])
fi
CXXFLAGS="$save_CXXFLAGS"
AC_MSG_RESULT($ac_c99_complex)
if test x"$ac_c99_complex" = x"yes"; then
AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX)
fi
# 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_TRY_COMPILE([#include <stdio.h>],
[snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
AC_CACHE_VAL(ac_c99_stdio, [
AC_TRY_COMPILE([#include <stdio.h>
#include <stdarg.h>
#include <stdarg.h>
void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vfscanf(stderr, "%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);
vscanf("%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);
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])
{
va_list args; va_start(args, fmt);
vfscanf(stderr, "%i", args);
vscanf("%i", args);
vsnprintf(fmt, 0, "%i", args);
vsscanf(fmt, "%i", args);
}],
[snprintf("12", 0, "%i");],
[ac_c99_stdio=yes], [ac_c99_stdio=no])
])
AC_MSG_RESULT($ac_c99_stdio)
# 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_CACHE_VAL(ac_c99_stdlib, [
AC_TRY_COMPILE([#include <stdlib.h>],
[char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([#include <stdlib.h>],
[char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no])
if test x"$ac_c99_lldiv_t" = x"no"; then
ac_c99_stdlib=no;
fi;
[char* tmp;
strtof("gnu", &tmp);
strtold("gnu", &tmp);
llabs(10);
lldiv(10,1);
atoll("10");
_Exit(0);
lldiv_t mydivt;],[ac_c99_stdlib=yes], [ac_c99_stdlib=no])
])
AC_MSG_RESULT($ac_c99_stdlib)
# Check for the existence of <wchar.h> functions used if C99 is enabled.
# XXX the wchar.h checks should be rolled into the general C99 bits.
ac_c99_wchar=yes;
AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
AC_TRY_COMPILE([#include <wchar.h>],
[wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
AC_TRY_COMPILE([#include <wchar.h>],
[wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
AC_TRY_COMPILE([#include <wchar.h>],
[wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
AC_MSG_RESULT($ac_c99_wchar)
# Check for the existence in <wchar.h> of wcstoull, WEOF, etc.
AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
ac_c99_wchar=no;
if test x"$ac_has_wchar_h" = xyes &&
test x"$ac_has_wctype_h" = xyes; then
AC_TRY_COMPILE([#include <wchar.h>
#include <stddef.h>
wint_t i;
long l = WEOF;
long j = WCHAR_MIN;
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])
AC_MSG_CHECKING([for enabled ISO C99 support])
# 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
# Option parsed, now set things appropriately.
if test x"$ac_c99_math" = x"no" ||
test x"$ac_c99_complex" = x"no" ||
test x"$ac_c99_stdio" = x"no" ||
test x"$ac_c99_stdlib" = x"no" ||
test x"$ac_c99_wchar" = x"no"; then
enable_c99=no;
fi;
AC_MSG_RESULT($enable_c99)
# Option parsed, now set things appropriately
if test x"$enable_c99" = x"yes"; then
else
AC_DEFINE(_GLIBCXX_USE_C99)
fi
AC_LANG_RESTORE
fi
AC_MSG_CHECKING([for fully enabled ISO C99 support])
AC_MSG_RESULT($enable_c99)
])
@ -1296,7 +1237,7 @@ dnl
dnl Default is new.
dnl
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],
[use KIND for target std::allocator base],
[permit new|malloc|mt|bitmap|pool|yes|no|auto])
@ -1444,21 +1385,6 @@ AC_DEFUN([GLIBCXX_ENABLE_CXX_FLAGS], [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
@ -1555,7 +1481,7 @@ AC_DEFUN([GLIBCXX_ENABLE_HOSTED], [
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 like numeric_limits<> specializations are always available.
dnl
@ -1565,10 +1491,32 @@ dnl + Usage: GLIBCXX_ENABLE_LONG_LONG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'.
dnl
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
AC_DEFINE(_GLIBCXX_USE_LONG_LONG)
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])
])

View File

@ -1,5 +1,5 @@
/* 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.
#undef PACKAGE
@ -11,21 +11,25 @@
#undef HAVE_GETTEXT
#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
// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed.
#undef _GLIBCXX_USE_C99
// Define if C99 math functions (like fpclassify) should be exposed.
#undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex.
#undef _GLIBCXX_USE_C99_COMPLEX
// 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
// Define if C99 functions or macros in <math.h> should be imported in
// <cmath> in namespace std.
#undef _GLIBCXX_USE_C99_MATH
// 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
// Define if using setrlimit to set resource limits during 'make check'.
#undef _GLIBCXX_RES_LIMITS
@ -194,9 +198,6 @@
/* Define to 1 if you have the `atanl' function. */
#undef HAVE_ATANL
/* Define to 1 if you have the `btowc' function. */
#undef HAVE_BTOWC
/* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF
@ -242,12 +243,6 @@
/* Define to 1 if you have the `fabsl' function. */
#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. */
#undef HAVE_FINITE
@ -275,12 +270,6 @@
/* Define to 1 if you have the `fpclass' function. */
#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. */
#undef HAVE_FP_H
@ -290,27 +279,12 @@
/* Define to 1 if you have the `frexpl' function. */
#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. */
#undef HAVE_GCONV_H
/* Define to 1 if you have the `getpagesize' function. */
#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. */
#undef HAVE_HYPOT
@ -353,7 +327,7 @@
/* Define to 1 if you have the `isnanl' function. */
#undef HAVE_ISNANL
/* Define to 1 if you have the `iswblank' function. */
/* Defined if iswblank exists. */
#undef HAVE_ISWBLANK
/* Define to 1 if you have the `ldexpf' function. */
@ -404,18 +378,6 @@
/* Define to 1 if you have the <machine/param.h> header file. */
#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. */
#undef HAVE_MEMORY_H
@ -440,12 +402,6 @@
/* Define to 1 if you have the `powl' function. */
#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. */
#undef HAVE_QFPCLASS
@ -500,12 +456,6 @@
/* Define to 1 if you have the `strtold' function. */
#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. */
#undef HAVE_SYS_FILIO_H
@ -554,129 +504,27 @@
/* Define to 1 if you have the `tanl' function. */
#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. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vfwprintf' function. */
#undef HAVE_VFWPRINTF
/* Define to 1 if you have the `vfwscanf' function. */
/* Defined if vfwscanf exists. */
#undef HAVE_VFWSCANF
/* Define to 1 if you have the `vswprintf' function. */
#undef HAVE_VSWPRINTF
/* Define to 1 if you have the `vswscanf' function. */
/* Defined if vswscanf exists. */
#undef HAVE_VSWSCANF
/* Define to 1 if you have the `vwprintf' function. */
#undef HAVE_VWPRINTF
/* Define to 1 if you have the `vwscanf' function. */
/* Defined if vwscanf exists. */
#undef HAVE_VWSCANF
/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define to 1 if you have the `wcrtomb' function. */
#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. */
/* Defined if wcstof exists. */
#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. */
#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. */
#undef HAVE__ACOSF
@ -898,6 +746,9 @@
/* Define if the compiler is configured for setjmp/longjmp 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
// underscore, we'll handle those here. Must come after config.h.in.

View File

@ -1,6 +1,6 @@
// 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
// software; you can redistribute it and/or modify it under the
@ -29,11 +29,11 @@
// Written by Jakub Jelinek <jakub@redhat.com>
#include <bits/c++config.h>
#include <clocale>
#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(strcoll_l) __strcoll_l;
extern "C" __typeof(strftime_l) __strftime_l;
@ -41,15 +41,19 @@ extern "C" __typeof(strtod_l) __strtod_l;
extern "C" __typeof(strtof_l) __strtof_l;
extern "C" __typeof(strtold_l) __strtold_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(towupper_l) __towupper_l;
extern "C" __typeof(wcscoll_l) __wcscoll_l;
extern "C" __typeof(wcsftime_l) __wcsftime_l;
extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
extern "C" __typeof(wctype_l) __wctype_l;
extern "C" __typeof(newlocale) __newlocale;
extern "C" __typeof(freelocale) __freelocale;
extern "C" __typeof(duplocale) __duplocale;
extern "C" __typeof(uselocale) __uselocale;
#endif
#endif // GLIBC 2.3 and later

View File

@ -1,6 +1,6 @@
// 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
// software; you can redistribute it and/or modify it under the
@ -66,7 +66,9 @@ namespace std
// be avoided.
template<typename _Tv>
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)
_Tv __v, const __c_locale& __cloc, int __prec)
{

14392
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -64,32 +64,28 @@ AM_INIT_AUTOMAKE([1.9.1 no-define foreign no-dependencies -Wall -Wno-portability
# up critical shell variables.
GLIBCXX_CONFIGURE
#AC_MSG_NOTICE([====== Starting libtool configuration])
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_SUBST(enable_shared)
AC_SUBST(enable_static)
#AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10
# 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.
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_PCH($is_hosted)
# Enable all the variable C++ runtime options.
# NB: C_MBCHAR must come early.
GLIBCXX_ENABLE_CSTDIO
GLIBCXX_ENABLE_CLOCALE
GLIBCXX_ENABLE_ALLOCATOR
GLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.host
GLIBCXX_ENABLE_C_MBCHAR([yes])
GLIBCXX_ENABLE_C99([yes])
GLIBCXX_ENABLE_LONG_LONG([yes])
GLIBCXX_ENABLE_THREADS
GLIBCXX_ENABLE_WCHAR_T([yes])
GLIBCXX_ENABLE_CONCEPT_CHECKS([no])
GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"])
GLIBCXX_ENABLE_DEBUG([no])
@ -97,6 +93,7 @@ GLIBCXX_ENABLE_CXX_FLAGS
GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no])
# No surprises, no surprises...
GLIBCXX_ENABLE_THREADS
if test $atomicity_dir = cpu/generic ; then
AC_MSG_WARN([No native atomic operations are provided for this platform.])
if test $target_thread_file = single; then
@ -124,7 +121,7 @@ if $GLIBCXX_IS_NATIVE; then
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper().

View File

@ -1,5 +1,5 @@
dnl
dnl This file contains stuff.
dnl This file contains details for non-natives builds.
dnl
# Base decisions on target environment.
@ -21,7 +21,7 @@ case "${host}" in
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
# For showmanyc_helper().
@ -56,7 +56,7 @@ case "${host}" in
GLIBCXX_CHECK_MATH_SUPPORT
GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
GLIBCXX_CHECK_STDLIB_SUPPORT
GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
AC_DEFINE(HAVE_WRITEV)
@ -71,7 +71,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_GETPAGESIZE)
AC_DEFINE(HAVE_SETENV)
@ -126,7 +126,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FREXPF)
@ -150,7 +150,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
# For LFS.
AC_DEFINE(HAVE_INT64_T)
@ -237,7 +237,7 @@ case "${host}" in
AC_CHECK_HEADERS([sys/types.h locale.h float.h])
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
;;
*-netbsd*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
@ -247,7 +247,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITEF)
@ -271,7 +271,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
# For showmanyc_helper().
AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
@ -287,7 +287,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COSF)
AC_DEFINE(HAVE_COSL)
AC_DEFINE(HAVE_COSHF)
@ -316,71 +316,19 @@ case "${host}" in
AC_DEFINE(HAVE_POLL)
AC_DEFINE(HAVE_S_ISREG)
AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_BTOWC)
AC_DEFINE(HAVE_FGETWC)
AC_DEFINE(HAVE_FGETWS)
AC_DEFINE(HAVE_FINITE)
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_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_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_CLOSE)
AC_DEFINE(HAVE_ICONV_OPEN)
# Look for the pieces required for wchar_t support in order to
# 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
# 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)
# Are these tested for even when cross?
AC_DEFINE(HAVE_FLOAT_H)
@ -435,7 +383,7 @@ case "${host}" in
AC_SUBST(SECTION_FLAGS)
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_WCHAR_T_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITE)

View File

@ -234,14 +234,13 @@ options</a></h1>
</p>
</dd>
<dt><code>--enable-c-mbchar </code>[default]</dt>
<dd><p>Certain template specializations are required for wide
character conversion support. This is tricky and currently
changing rapidly, and can cause problems on new platforms.
Disabling wide character specializations is useful for initial
porting steps, but builds only a subset of what is required by
ISO. By default, this option is on. This option can change
the library ABI.
<dt><code>--enable-wchar_t </code>[default]</dt>
<dd><p>Template specializations for the &quot;wchar_t&quot; type are
required for wide character conversion support. Disabling
wide character specializations may be expedient for initial
porting efforts, but builds only a subset of what is required by
ISO, and is not recommended. By default, this option is on.
This option can change the library ABI.
</p>
</dd>

View File

@ -154,15 +154,16 @@ namespace __gnu_cxx
{
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" int
(snprintf)(char * restrict, size_t, const char * restrict, ...);
(snprintf)(char * restrict, size_t, const char * restrict, ...);
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
(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
(vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
(vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
#endif
#if !_GLIBCXX_USE_C99_DYNAMIC
using ::snprintf;
using ::vfscanf;

View File

@ -1,6 +1,6 @@
// -*- 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -59,19 +59,18 @@
# undef iswblank
#endif
#undef iswcntrl
#undef iswctype
#undef iswdigit
#undef iswgraph
#undef iswlower
#undef iswprint
#undef iswprint
#undef iswpunct
#undef iswspace
#undef iswupper
#undef iswxdigit
#undef iswctype
#undef towctrans
#undef towlower
#undef towupper
#undef towctrans
#undef wctrans
#undef wctype
@ -89,19 +88,18 @@ namespace std
using ::iswblank;
#endif
using ::iswcntrl;
using ::iswctype;
using ::iswdigit;
using ::iswgraph;
using ::iswlower;
using ::iswprint;
using ::iswprint;
using ::iswpunct;
using ::iswspace;
using ::iswupper;
using ::iswxdigit;
using ::iswctype;
using ::towctrans;
using ::towlower;
using ::towupper;
using ::towctrans;
using ::wctrans;
using ::wctype;
}

View File

@ -1,6 +1,6 @@
// Debugging mode support code -*- C++ -*-
// Copyright (C) 2003, 2004
// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -507,7 +507,7 @@ namespace __gnu_debug
template<typename _Tp>
void
_Error_formatter::_M_format_word(char* __buf,
int __n __attribute__((__unused__)),
int __n __attribute__ ((__unused__)),
const char* __fmt, _Tp __s) const
{
#ifdef _GLIBCXX_USE_C99
@ -653,21 +653,20 @@ namespace __gnu_debug
// Instantiations.
template
void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt,
const void* __s) const;
_Error_formatter::_M_format_word(char*, int, const char*,
const void*) const;
template
void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt,
long __s) const;
_Error_formatter::_M_format_word(char*, int, const char*, long) const;
template
void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt,
std::size_t __s) const;
_Error_formatter::_M_format_word(char*, int, const char*,
std::size_t) const;
template
void
_Error_formatter::_M_format_word(char* __buf, int __n, const char* __fmt,
const char* __s) const;
_Error_formatter::_M_format_word(char*, int, const char*,
const char*) const;
} // namespace __gnu_debug