This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[PATCH] Fix wchar_t breakage on Solaris
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: libstdc++ at gcc dot gnu dot org
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 31 Mar 2006 23:06:37 +0200
- Subject: [PATCH] Fix wchar_t breakage on Solaris
Hi,
wchar_t support has been broken on Solaris < 10 in GCC 4.1.0. Tested on
SPARC/Solaris 7, 8 and 9 as well as on AMD64/Linux, OK for mainline and 4.1
branch?
2006-03-27 Eric Botcazou <ebotcazou@libertysurf.fr>
PR libstdc++-v3/6702
* acinclude.m4 (GLIBCXX_ENABLE_C99): Do not take into account
wcstold, wcstoll and wcstoull to enable C99 wchar_t support.
Add individual checks for wcstold, wcstoll and wcstoull.
* configure: Regenerate.
* config.h.in: Likewise.
--
Eric Botcazou
Index: acinclude.m4
===================================================================
--- acinclude.m4 (revision 112529)
+++ acinclude.m4 (working copy)
@@ -933,7 +933,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
])
AC_MSG_RESULT($ac_c99_stdlib)
- # Check for the existence in <wchar.h> of wcstoull, WEOF, etc.
+ # Check for the existence in <wchar.h> of wcstoul, 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 &&
@@ -952,55 +952,52 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
using ::fputwc;
using ::fputws;
using ::fwide;
- using ::fwprintf;
+ using ::fwprintf;
using ::fwscanf;
using ::getwc;
using ::getwchar;
- using ::mbrlen;
- using ::mbrtowc;
- using ::mbsinit;
- using ::mbsrtowcs;
+ using ::mbrlen;
+ using ::mbrtowc;
+ using ::mbsinit;
+ using ::mbsrtowcs;
using ::putwc;
using ::putwchar;
- using ::swprintf;
- using ::swscanf;
+ 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 ::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 ::wcsncat;
+ using ::wcsncmp;
+ using ::wcsncpy;
using ::wcspbrk;
- using ::wcsrchr;
- using ::wcsrtombs;
- using ::wcsspn;
+ using ::wcsrchr;
+ using ::wcsrtombs;
+ using ::wcsspn;
using ::wcsstr;
- using ::wcstod;
- using ::wcstok;
+ using ::wcstod;
+ using ::wcstok;
using ::wcstol;
- using ::wcstold;
- using ::wcstoll;
- using ::wcstoul;
- using ::wcstoull;
- using ::wcsxfrm;
- using ::wctob;
+ using ::wcstoul;
+ using ::wcsxfrm;
+ using ::wctob;
using ::wmemchr;
using ::wmemcmp;
using ::wmemcpy;
using ::wmemmove;
using ::wmemset;
- using ::wprintf;
- using ::wscanf;
+ using ::wprintf;
+ using ::wscanf;
}
],[],[ac_c99_wchar=yes], [ac_c99_wchar=no])
@@ -1031,6 +1028,21 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
[AC_DEFINE(HAVE_ISWBLANK,1,
[Defined if iswblank exists.])],[])
+ AC_TRY_COMPILE([#include <wchar.h>
+ namespace test { using ::wcstold; } ], [],
+ [AC_DEFINE(HAVE_WCSTOLD,1,
+ [Defined if wcstold exists.])],[])
+
+ AC_TRY_COMPILE([#include <wchar.h>
+ namespace test { using ::wcstoll; } ], [],
+ [AC_DEFINE(HAVE_WCSTOLL,1,
+ [Defined if wcstoll exists.])],[])
+
+ AC_TRY_COMPILE([#include <wchar.h>
+ namespace test { using ::wcstoull; } ], [],
+ [AC_DEFINE(HAVE_WCSTOULL,1,
+ [Defined if wcstoull exists.])],[])
+
AC_MSG_CHECKING([for ISO C99 support in <wchar.h>])
AC_MSG_RESULT($ac_c99_wchar)
fi