This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]