Author: faridz
Date: Fri Jul 4 07:36:23 2008
New Revision: 674069
URL: http://svn.apache.org/viewvc?rev=674069&view=rev
Log:
2008-07-04 Farid Zaripov <[EMAIL PROTECTED]>
* include/rw/_config-gcc.h [__MINGW32__]: Add MinGW specific defines.
* tests/localization/22.locale.cons.mt.cpp (test_ctors): Use MSVC
specific workarounds on MinGW too.
* tests/localization/22.locale.time.put.cpp (rw_strftime): Ditto.
* util/gencat.cpp [__MINGW32__] (main): Create message catalog dll's
independent on cygwin1.dll.
Modified:
stdcxx/branches/4.2.x/include/rw/_config-gcc.h
stdcxx/branches/4.2.x/tests/localization/22.locale.cons.mt.cpp
stdcxx/branches/4.2.x/tests/localization/22.locale.time.put.cpp
stdcxx/branches/4.2.x/util/gencat.cpp
Modified: stdcxx/branches/4.2.x/include/rw/_config-gcc.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/rw/_config-gcc.h?rev=674069&r1=674068&r2=674069&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/rw/_config-gcc.h (original)
+++ stdcxx/branches/4.2.x/include/rw/_config-gcc.h Fri Jul 4 07:36:23 2008
@@ -145,6 +145,20 @@
# endif
#endif // __CYGWIN__
+#ifdef __MINGW32__
+# ifdef _RWSHARED
+ // disabe exporting timeplate instantations in shared builds
+ // see STDCXX-507
+# define _RWSTD_NO_EXTERN_TEMPLATE
+# endif
+
+ // operator new and delete is not reliably replaceable across
+ // shared library boundaries, which includes the shared library
+ // version of the language support library
+ // on MinGW the language support library is always shared
+# define _RWSTD_NO_REPLACEABLE_NEW_DELETE
+#endif // __MINGW32__
+
#ifdef _RWSTD_OS_OSF1
// sizeof (long double) == sizeof (double), 'L' causes SIGSEGV
# define _RWSTD_LDBL_PRINTF_PREFIX ""
Modified: stdcxx/branches/4.2.x/tests/localization/22.locale.cons.mt.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/localization/22.locale.cons.mt.cpp?rev=674069&r1=674068&r2=674069&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/tests/localization/22.locale.cons.mt.cpp (original)
+++ stdcxx/branches/4.2.x/tests/localization/22.locale.cons.mt.cpp Fri Jul 4
07:36:23 2008
@@ -126,7 +126,7 @@
// verify that the locales were created correctly
if ( std::locale::none == cat
-#ifdef _MSC_VER
+#if defined (_MSC_VER) || defined (__MINGW32__)
|| std::locale::messages == cat
#endif
|| first == next) {
@@ -141,7 +141,7 @@
const std::locale combined_2 (first, next, cat);
if ( std::locale::none == cat
-#ifdef _MSC_VER
+#if defined (_MSC_VER) || defined (__MINGW32__)
|| std::locale::messages == cat
#endif
|| first == next) {
Modified: stdcxx/branches/4.2.x/tests/localization/22.locale.time.put.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/localization/22.locale.time.put.cpp?rev=674069&r1=674068&r2=674069&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/tests/localization/22.locale.time.put.cpp (original)
+++ stdcxx/branches/4.2.x/tests/localization/22.locale.time.put.cpp Fri Jul 4
07:36:23 2008
@@ -142,7 +142,7 @@
if (!tmb)
tmb = &tmp;
-#ifdef _MSC_VER
+#if defined (_MSC_VER) || defined (__MINGW32__)
// ms crt aborts if you use out of range values in debug
if (tmb->tm_hour < 0 || 24 <= tmb->tm_hour)
@@ -281,11 +281,11 @@
const std::size_t n = std::strftime (buf, bufsize, patbuf, tmb);
-#else // if !defined (_MSC_VER)
+#else // !_MSC_VER && !__MINGW32__
const std::size_t n = std::strftime (buf, bufsize, pat, tmb);
-#endif // _MSC_VER
+#endif // _MSC_VER || __MINGW32__
RW_ASSERT (n < bufsize);
@@ -298,11 +298,12 @@
{
static const std::tm tmp = std::tm ();
-#if !defined (_RWSTD_NO_WCSFTIME_WCHAR_T_FMAT) && !defined (_MSC_VER)
+#if !defined (_RWSTD_NO_WCSFTIME_WCHAR_T_FMAT) \
+ && !defined (_MSC_VER) && !defined (__MINGW32__)
std::size_t n = std::wcsftime (wbuf, bufsize, wpat, tmb ? tmb : &tmp);
-#else // if defined (_RWSTD_NO_WCSFTIME) || defined (_MSC_VER)
+#else // _RWSTD_NO_WCSFTIME || _MSC_VER || __MINGW32__
char pat [1024];
char buf [1024];
@@ -311,7 +312,7 @@
std::size_t n = rw_strftime (buf, bufsize, pat, tmb ? tmb : &tmp);
widen (wbuf, buf);
-#endif // _RWSTD_NO_WCSFTIME, _MSC_VER
+#endif // _RWSTD_NO_WCSFTIME, _MSC_VER, __MINGW32__
RW_ASSERT (n < bufsize);
Modified: stdcxx/branches/4.2.x/util/gencat.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/util/gencat.cpp?rev=674069&r1=674068&r2=674069&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/util/gencat.cpp (original)
+++ stdcxx/branches/4.2.x/util/gencat.cpp Fri Jul 4 07:36:23 2008
@@ -151,7 +151,7 @@
cmd += rc_name;
cmd += " -o ";
cmd += res_name;
- cmd += " && gcc -shared -o ";
+ cmd += " && gcc -shared -mno-cygwin -o ";
cmd += dll_name;
cmd += ' ';
cmd += res_name;