re PR c++/6072 (3.2 g++ testsuite breakage on cygwin)

2003-09-25  Brad Spencer  <spencer@infointeractive.com>

	PR libstdc++/6072
	* acinclude.m4:
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* crossconfig.m4: Add in wchar_t bits for solaris crosses.
	* config/io/basic_file_stdio.cc: Guard unistd.h.
	* include/c_compatibility/wchar.h: Guard extra wchar_t functionality.
	* include/c_std/std_cwchar.h: Same.
	* include/c_std/std_cwctype.h: Same.

From-SVN: r71795
This commit is contained in:
Brad Spencer 2003-09-25 20:30:20 +00:00 committed by Benjamin Kosnik
parent bf172f5467
commit 2b1be54b96
12 changed files with 2625 additions and 87 deletions

View File

@ -1,3 +1,16 @@
2003-09-25 Brad Spencer <spencer@infointeractive.com>
PR libstdc++/6072
* acinclude.m4:
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* crossconfig.m4: Add in wchar_t bits for solaris crosses.
* config/io/basic_file_stdio.cc: Guard unistd.h.
* include/c_compatibility/wchar.h: Guard extra wchar_t functionality.
* include/c_std/std_cwchar.h: Same.
* include/c_std/std_cwctype.h: Same.
2003-09-25 Benjamin Kosnik <bkoz@redhat.com>
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is): Fix.

View File

@ -634,7 +634,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf autom4te.cache
-rm -rf $(top_srcdir)/autom4te.cache
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive

View File

@ -383,13 +383,18 @@ AC_DEFUN(GLIBCXX_CHECK_WCHAR_T_SUPPORT, [
# 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 vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
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 &&

View File

@ -396,13 +396,18 @@ AC_DEFUN(GLIBCXX_CHECK_WCHAR_T_SUPPORT, [
# 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 vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
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 &&

View File

@ -662,6 +662,9 @@
/* Define to 1 if you have the `wscanf' function. */
#undef HAVE_WSCANF
/* Define if you have the `iswblank' function. */
#undef HAVE_ISWBLANK
/* Define to 1 if you have the `_acosf' function. */
#undef HAVE__ACOSF

View File

@ -33,11 +33,20 @@
#include <bits/basic_file.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#ifdef _GLIBCXX_HAVE_POLL
#include <poll.h>
#endif
// Pick up ioctl on Solaris 2.8
#ifdef _GLIBCXX_HAVE_UNISTD_H
#include <unistd.h>
#endif
// Pick up FIONREAD on Solaris 2
#ifdef _GLIBCXX_HAVE_SYS_IOCTL_H
#define BSD_COMP /* Get FIONREAD on Solaris2. */
#define BSD_COMP
#include <sys/ioctl.h>
#endif
@ -46,10 +55,6 @@
#include <sys/filio.h>
#endif
#ifdef _GLIBCXX_HAVE_POLL
#include <poll.h>
#endif
#ifdef _GLIBCXX_HAVE_SYS_UIO_H
#include <sys/uio.h>
#endif

2498
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -208,17 +208,120 @@ case "${host}" in
AC_DEFINE(HAVE_SINHL)
;;
*-solaris*)
#case "$target" in
case "$target" in
# *-solaris2.5)
# os_include_dir="os/solaris/solaris2.5"
# ;;
# *-solaris2.6)
# os_include_dir="os/solaris/solaris2.6"
# ;;
# *-solaris2.7 | *-solaris2.8 | *-solaris2.9)
# os_include_dir="os/solaris/solaris2.7"
# ;;
#esac
*-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
AC_DEFINE(HAVE_GETPAGESIZE)
AC_DEFINE(HAVE_SIGSETJMP)
AC_DEFINE(HAVE_MBSTATE_T)
AC_DEFINE(HAVE_POLL)
AC_DEFINE(HAVE_S_ISREG)
AC_DEFINE(HAVE_LC_MESSAGES)
AC_DEFINE(HAVE_BTOWC)
AC_DEFINE(HAVE_DRAND48)
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_ISATTY)
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
# 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
AC_DEFINE(_GLIBCXX_USE_WCHAR_T)
# Are these tested for even when cross?
AC_DEFINE(HAVE_FLOAT_H)
AC_DEFINE(HAVE_IEEEFP_H)
AC_DEFINE(HAVE_INTTYPES_H)
AC_DEFINE(HAVE_LOCALE_H)
AC_DEFINE(HAVE_NAN_H)
AC_DEFINE(HAVE_SYS_FILIO_H)
AC_DEFINE(HAVE_SYS_IOCTL_H)
AC_DEFINE(HAVE_SYS_ISA_DEFS_H)
AC_DEFINE(HAVE_SYS_RESOURCE_H)
AC_DEFINE(HAVE_SYS_TIME_H)
AC_DEFINE(HAVE_SYS_TYPES_H)
AC_DEFINE(HAVE_UNISTD_H)
AC_DEFINE(HAVE_WCHAR_H)
AC_DEFINE(HAVE_WCTYPE_H)
AC_DEFINE(HAVE_LIBM)
;;
esac
case "$target" in
sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10)
# I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386
AC_DEFINE(HAVE___BUILTIN_ABS)
AC_DEFINE(HAVE___BUILTIN_LABS)
AC_DEFINE(HAVE___BUILTIN_FABS)
AC_DEFINE(HAVE___BUILTIN_FABSF)
AC_DEFINE(HAVE___BUILTIN_FABSL)
AC_DEFINE(HAVE___BUILTIN_COS)
AC_DEFINE(HAVE___BUILTIN_COSF)
AC_DEFINE(HAVE___BUILTIN_SIN)
AC_DEFINE(HAVE___BUILTIN_SINF)
;;
esac
AC_DEFINE(HAVE_STRTOF)
AC_DEFINE(HAVE_STRTOLD)
AC_DEFINE(HAVE_MMAP)

View File

@ -1,6 +1,6 @@
// -*- C++ -*- compatibility header.
// Copyright (C) 2002 Free Software Foundation, Inc.
// Copyright (C) 2002, 2003 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
@ -50,11 +50,17 @@ using std::fwscanf;
using std::swprintf;
using std::swscanf;
using std::vfwprintf;
#if _GLIBCXX_HAVE_VFWSCANF
using std::vfwscanf;
#endif
using std::vswprintf;
#if _GLIBCXX_HAVE_VSWSCANF
using std::vswscanf;
#endif
using std::vwprintf;
#if _GLIBCXX_HAVE_VWSCANF
using std::vwscanf;
#endif
using std::wprintf;
using std::wscanf;
using std::getwc;
@ -69,7 +75,9 @@ using std::putwchar;
using std::ungetwc;
using std::wcrtomb;
using std::wcstod;
#if _GLIBCXX_HAVE_WCSTOF
using std::wcstof;
#endif
using std::wcstol;
using std::wcstoul;
using std::wcscpy;

View File

@ -92,11 +92,17 @@ namespace std
#undef swscanf
#undef ungetwc
#undef vfwprintf
#undef vfwscanf
#if _GLIBCXX_HAVE_VFWSCANF
# undef vfwscanf
#endif
#undef vswprintf
#undef vswscanf
#if _GLIBCXX_HAVE_VSWSCANF
# undef vswscanf
#endif
#undef vwprintf
#undef vwscanf
#if _GLIBCXX_HAVE_VWSCANF
# undef vwscanf
#endif
#undef wcrtomb
#undef wcscat
#undef wcschr
@ -115,7 +121,9 @@ namespace std
#undef wcsspn
#undef wcsstr
#undef wcstod
#undef wcstof
#if _GLIBCXX_HAVE_WCSTOF
# undef wcstof
#endif
#undef wcstok
#undef wcstol
#undef wcstoul
@ -154,11 +162,17 @@ namespace std
using ::swscanf;
using ::ungetwc;
using ::vfwprintf;
#if _GLIBCXX_HAVE_VFWSCANF
using ::vfwscanf;
#endif
using ::vswprintf;
#if _GLIBCXX_HAVE_VSWSCANF
using ::vswscanf;
#endif
using ::vwprintf;
#if _GLIBCXX_HAVE_VWSCANF
using ::vwscanf;
#endif
using ::wcrtomb;
using ::wcscat;
using ::wcscmp;
@ -173,7 +187,9 @@ namespace std
using ::wcsrtombs;
using ::wcsspn;
using ::wcstod;
#if _GLIBCXX_HAVE_WCSTOF
using ::wcstof;
#endif
using ::wcstok;
using ::wcstol;
using ::wcstoul;

View File

@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -55,7 +55,9 @@
// Get rid of those macros defined in <wctype.h> in lieu of real functions.
#undef iswalnum
#undef iswalpha
#undef iswblank
#if _GLIBCXX_HAVE_ISWBLANK
# undef iswblank
#endif
#undef iswcntrl
#undef iswdigit
#undef iswgraph
@ -83,7 +85,9 @@ namespace std
using ::iswalnum;
using ::iswalpha;
#if _GLIBCXX_HAVE_ISWBLANK
using ::iswblank;
#endif
using ::iswcntrl;
using ::iswdigit;
using ::iswgraph;

View File

@ -226,8 +226,8 @@ toolexeclib_LTLIBRARIES = libstdc++.la
# Symbol versioning for shared libraries.
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_dep =
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_dep = libstdc++-symbol.ver
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_dep =
# Source files linked in via configuration/make substitution for a
# particular host.