Author: faridz
Date: Tue Jun 12 09:25:18 2007
New Revision: 546562
URL: http://svn.apache.org/viewvc?view=rev&rev=546562
Log:
2007-06-12 Farid Zaripov <[EMAIL PROTECTED]>
STDCXX-429
* _config.h: #include "_config-msvc.h" only on MSVC.
* _config-msvcrt.h: New file with configuration definitions of the MSVC
CRT.
* _config-icc.h [_WIN{32,64}]: #include "_config-msvcrt.h",
added #pragma's to silence bogus warnings.
* _config-msvc.h: #include "_config-msvcrt.h",
MSVC CRT specific definitions moved to _config-msvcrt.h.
Added:
incubator/stdcxx/trunk/include/rw/_config-msvcrt.h (with props)
Modified:
incubator/stdcxx/trunk/include/rw/_config-icc.h
incubator/stdcxx/trunk/include/rw/_config-msvc.h
incubator/stdcxx/trunk/include/rw/_config.h
Modified: incubator/stdcxx/trunk/include/rw/_config-icc.h
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/rw/_config-icc.h?view=diff&rev=546562&r1=546561&r2=546562
==============================================================================
--- incubator/stdcxx/trunk/include/rw/_config-icc.h (original)
+++ incubator/stdcxx/trunk/include/rw/_config-icc.h Tue Jun 12 09:25:18 2007
@@ -43,10 +43,20 @@
# undef _RWSTD_NO_NEW_HEADER
# undef _RWSTD_NO_LIBC_IN_STD
-#else // if defined (_WIN{32,64}
+#else // if defined (_WIN{32,64})
+
+# include "_config-msvcrt.h"
+
# if defined (_RWSHARED)
// only when using shared libstd and Intel C++/MSVC
// working around an Intel C++ 7.1 bug (PR #29178)
# define _RWSTD_NO_OUTLINED_USE_FACET_SPECIALIZATIONS
-# endif // _MSC_VER > 1200 && _RWSHARED
-#endif
+# endif // _RWSHARED
+
+// disable "function was declared "deprecated"
+# pragma warning (disable: 1478)
+
+// disable "dllexport/dllimport conflict with ... ; dllexport assumed"
+# pragma warning (disable: 1740)
+
+#endif // (_WIN{32,64})
Modified: incubator/stdcxx/trunk/include/rw/_config-msvc.h
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/rw/_config-msvc.h?view=diff&rev=546562&r1=546561&r2=546562
==============================================================================
--- incubator/stdcxx/trunk/include/rw/_config-msvc.h (original)
+++ incubator/stdcxx/trunk/include/rw/_config-msvc.h Tue Jun 12 09:25:18 2007
@@ -29,12 +29,9 @@
*
**************************************************************************/
-#if _MSC_VER <= 1310 // MSVC <= 7.1
-#endif // MSVC <= 7.1
+#include "_config-msvcrt.h"
#if _MSC_VER <= 1300 // MSVC <= 7.0
-# define _RWSTD_EXCEPTION_HANDLER_IN_STD
-# define _RWSTD_NO_STATIC_DEF3
# define _RWSTD_NO_PTR_VALUE_TEMPLATE_OVERLOAD
# define _RWSTD_NO_PRAGMA_INSTANTIATE
// disable explicit instantiation extensions if building
@@ -54,152 +51,13 @@
#if _MSC_VER <= 1200 // MSVC <= 6.0
# define _RWSTD_NO_TYPENAME
- // static data members of cass templates aren't properly collapsed
- // (compiler emits one copy per each translation unit that contains
- // the definition of the template member, and the linker fails to
- // multiple copies that reside in shared libraries)
-#ifndef _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
-# define _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
-#endif // _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
-
- // not declared/defined in libc
-#if !defined (_RWSTD_NO_STRTOLL_IN_LIBC)
-# define _RWSTD_NO_STRTOLL_IN_LIBC
-#endif // _RWSTD_NO_STRTOLL_IN_LIBC
-
-#if !defined (_RWSTD_NO_STRTOULL_IN_LIBC)
-# define _RWSTD_NO_STRTOULL_IN_LIBC
-#endif // _RWSTD_NO_STRTOULL_IN_LIBC
-
#ifndef _RWSTD_NO_EXPORT
// not implemented
# define _RWSTD_NO_EXPORT
#endif // _RWSTD_NO_EXPORT
-#define _RWSTD_NO_NL_LANGINFO
-
- // functions are defined in MSVC's msvcprt.lib and msvcprtd.lib
- // which include the compiler's implementation of the C++ Standard
- // library and with which we (obviously) cannot use
-#ifndef _RWSTD_NO_WCTOB
-# define _RWSTD_NO_WCTOB
-#endif // _RWSTD_NO_WCTOB
-
-#ifndef _RWSTD_NO_WCTOB_IN_LIBC
-# define _RWSTD_NO_WCTOB_IN_LIBC
-#endif // _RWSTD_NO_WCTOB_IN_LIBC
-
-#ifndef _RWSTD_NO_MBRTOWC
-# define _RWSTD_NO_MBRTOWC
-#endif // _RWSTD_NO_MBRTOWC
-
-#ifndef _RWSTD_NO_MBRTOWC_IN_LIBC
-# define _RWSTD_NO_MBRTOWC_IN_LIBC
-#endif // _RWSTD_NO_MBRTOWC_IN_LIBC
-
-#ifndef _RWSTD_NO_WCRTOMB
-# define _RWSTD_NO_WCRTOMB
-#endif // _RWSTD_NO_WCRTOMB
-
-#ifndef _RWSTD_NO_WCRTOMB_IN_LIBC
-# define _RWSTD_NO_WCRTOMB_IN_LIBC
-#endif // _RWSTD_NO_WCRTOMB_IN_LIBC
-
-#ifndef _RWSTD_NO_MBSTOWCS
-# define _RWSTD_NO_MBSTOWCS
-#endif // _RWSTD_NO_MBSTOWCS
-
-#ifndef _RWSTD_NO_MBSTOWCS_IN_LIBC
-# define _RWSTD_NO_MBSTOWCS_IN_LIBC
-#endif // _RWSTD_NO_MBSTOWCS_IN_LIBC
-
-#ifndef _RWSTD_NO_MBRLEN
-# define _RWSTD_NO_MBRLEN
-#endif // _RWSTD_NO_MBRLEN
-
-#ifndef _RWSTD_NO_MBRLEN_IN_LIBC
-# define _RWSTD_NO_MBRLEN_IN_LIBC
-#endif // _RWSTD_NO_MBRLEN_IN_LIBC
-
-#ifndef _RWSTD_NO_WCSRTOMBS
-# define _RWSTD_NO_WCSRTOMBS
-#endif // _RWSTD_NO_WCSRTOMBS
-
-#ifndef _RWSTD_NO_WCSRTOMBS_IN_LIBC
-# define _RWSTD_NO_WCSRTOMBS_IN_LIBC
-#endif // _RWSTD_NO_WCSRTOMBS_IN_LIBC
-
-#ifndef _RWSTD_NO_BTOWC
-# define _RWSTD_NO_BTOWC
-#endif // _RWSTD_NO_BTOWC
-
-#ifndef _RWSTD_NO_BTOWC_IN_LIBC
-# define _RWSTD_NO_BTOWC_IN_LIBC
-#endif // _RWSTD_NO_BTOWC_IN_LIBC
-
-#ifndef _RWSTD_NO_MBSRTOWCS
-# define _RWSTD_NO_MBSRTOWCS
-#endif // _RWSTD_NO_MBSRTOWCS
-
-#ifndef _RWSTD_NO_MBSRTOWCS_IN_LIBC
-# define _RWSTD_NO_MBSRTOWCS_IN_LIBC
-#endif // _RWSTD_NO_MBSRTOWCS_IN_LIBC
-
#endif // MSVC <= 6.0
- // enable the <cxxx> form of libc headers
- // we can only use the rw version in include/ansi
-#ifndef _RWSTD_NO_PURE_C_HEADERS
-# define _RWSTD_NO_PURE_C_HEADERS
-#endif // _RWSTD_NO_PURE_C_HEADERS
-
-#if defined _RWSTD_NO_NEW_HEADER
-# undef _RWSTD_NO_NEW_HEADER
-#endif // _RWSTD_NO_NEW_HEADER
-
- // our <cxxx> libc headers put the libc functions in namespace std
-#ifdef _RWSTD_NO_LIBC_IN_STD
-# undef _RWSTD_NO_LIBC_IN_STD
-#endif // _RWSTD_NO_LIBC_IN_STD
-
-#ifndef _RWSTD_NO_DEPRECATED_C_HEADERS
-# define _RWSTD_NO_DEPRECATED_C_HEADERS
-#endif // _RWSTD_NO_DEPRECATED_C_HEADERS
-
- // operator new and delete is not reliably replaceable across
- // shared library boundaries, which includes the shared library
- // version of the language support library
-#define _RWSTD_NO_REPLACEABLE_NEW_DELETE
-
- // names of (most) extern "C" libc symbols begin with an underscore
-#define _RWSTD_LIBC_SYM(name) _ ## name
-
-#ifdef _DLL
- // the _DLL macro is defined by the compiler when building a shared
- // library, i.e., in response to either of the /MD and /MDd options
- // _RWSTD_DLLIMPORT is used when declaring libc functions that need
- // to be "imported" into the shared library
-# define _RWSTD_DLLIMPORT __declspec (dllimport)
-#endif // _DLL
-
-#ifndef _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
- // both MSVC 7.x and Intel C++/Windows allow "inline" initializers
- // for static const integral data members but out-of-line definitions
- // cause multiply defined symbol errors (see PR #26562 and #30260)
- // disable their definitions in source files (the members are still
- // declared)
-# define _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
-#endif // _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
-
- // enable iostream and locale support for long long integers
-#define _RWSTD_LONG_LONG __int64
-
-#if defined (_WIN64)
- // FIXME: handle by forward declaring fuctions in <rw/_mutex.h>
-# define _RWSTD_NO_FWD_DECLARATIONS
-#endif // _WIN64
-
-#ifndef __INTEL_COMPILER
// disable "Same type qualifier used more than once"
# pragma warning (disable: 4114)
@@ -212,57 +70,5 @@
// disable "identifier was truncated to 255 characters"
# pragma warning (disable: 4786)
-#else // __INTEL_COMPILER
-
- // disable "function was declared "deprecated"
-# pragma warning (disable: 1478)
-
- // disable "dllexport/dllimport conflict with ... ; dllexport assumed"
-# pragma warning (disable: 1740)
-
-#endif // __INTEL_COMPILER
-
-#if defined (WIN32) && !defined(_WIN32)
-# define _WIN32
-#endif
-
-#ifdef _MT
-# ifndef _RWSTD_REENTRANT
-# define _RWSTD_REENTRANT 1
-# endif // _RWSTD_REENTRANT
-
-# ifndef _RWSTD_NO_TLS
- // thread-local stoprage declaration specifier
-# ifndef _RWSTD_THREAD
-# define _RWSTD_THREAD __declspec (thread)
-# endif // _RWSTD_THREAD
-# endif // _RWSTD_NO_TLS
-#else // if !defined (_MT)
-# ifndef _RWSTD_THREAD
-# define _RWSTD_THREAD /* empty */
-# endif // _RWSTD_THREAD
-#endif //_MT
-
- // clean C++ C headers (the <cxxx> kind) not provided
-#ifndef _RWSTD_NO_PURE_C_HEADERS
-# define _RWSTD_NO_PURE_C_HEADERS
-#endif // _RWSTD_NO_PURE_C_HEADERS
-
-#define _RWSTD_MUNMAP_ARG1_T void*
-
-#if defined (_CPPRTTI)
- // override in case library was configured with -GR-
- // (i.e., with RTTI disabled)
-# undef _RWSTD_NO_DYNAMIC_CAST
-#elif !defined (_RWSTD_NO_DYNAMIC_CAST)
- // override in case library was configured with -GR
- // (i.e., with RTTI enabled)
-# define _RWSTD_NO_DYNAMIC_CAST
-#endif // _CPPRTTI
-
-#ifndef _NATIVE_WCHAR_T_DEFINED
- // define wchar_t if it is not a keyword recognized by the compiler
- // (use the /Zc:wchar_t compiler option to enable wchar_t as a keyword)
-typedef unsigned short wchar_t;
-
-#endif // _NATIVE_WCHAR_T_DEFINED
+ // disable "'function': was declared deprecated"
+# pragma warning (disable: 4996)
Added: incubator/stdcxx/trunk/include/rw/_config-msvcrt.h
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/rw/_config-msvcrt.h?view=auto&rev=546562
==============================================================================
--- incubator/stdcxx/trunk/include/rw/_config-msvcrt.h (added)
+++ incubator/stdcxx/trunk/include/rw/_config-msvcrt.h Tue Jun 12 09:25:18 2007
@@ -0,0 +1,221 @@
+/***************************************************************************
+ *
+ * _config-msvcrt.h - Microsoft Visual C++ run-time library
+ * configuration definitions
+ *
+ * This is an internal header file used to implement the C++ Standard
+ * Library. It should never be #included directly by a program.
+ *
+ * $Id$
+ *
+ ***************************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ *
+ * Copyright 1994-2006 Rogue Wave Software.
+ *
+ **************************************************************************/
+
+#if _MSC_VER <= 1300 // MSVC <= 7.0
+# define _RWSTD_EXCEPTION_HANDLER_IN_STD
+# define _RWSTD_NO_STATIC_DEF3
+#endif // MSVC <= 7.0
+
+#if _MSC_VER <= 1200 // MSVC <= 6.0
+
+// static data members of class templates aren't properly collapsed
+// (compiler emits one copy per each translation unit that contains
+// the definition of the template member, and the linker fails to
+// multiple copies that reside in shared libraries)
+#ifndef _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
+# define _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
+#endif // _RWSTD_NO_COLLAPSE_TEMPLATE_STATICS
+
+#define _RWSTD_NO_NL_LANGINFO
+
+#if defined _RWSTD_NO_NEW_HEADER
+# undef _RWSTD_NO_NEW_HEADER
+#endif // _RWSTD_NO_NEW_HEADER
+
+// not declared/defined in libc
+#if !defined (_RWSTD_NO_STRTOLL_IN_LIBC)
+# define _RWSTD_NO_STRTOLL_IN_LIBC
+#endif // _RWSTD_NO_STRTOLL_IN_LIBC
+
+#if !defined (_RWSTD_NO_STRTOULL_IN_LIBC)
+# define _RWSTD_NO_STRTOULL_IN_LIBC
+#endif // _RWSTD_NO_STRTOULL_IN_LIBC
+
+ // functions are defined in MSVC's msvcprt.lib and msvcprtd.lib
+ // which include the compiler's implementation of the C++ Standard
+ // library and with which we (obviously) cannot use
+#ifndef _RWSTD_NO_WCTOB
+# define _RWSTD_NO_WCTOB
+#endif // _RWSTD_NO_WCTOB
+
+#ifndef _RWSTD_NO_WCTOB_IN_LIBC
+# define _RWSTD_NO_WCTOB_IN_LIBC
+#endif // _RWSTD_NO_WCTOB_IN_LIBC
+
+#ifndef _RWSTD_NO_MBRTOWC
+# define _RWSTD_NO_MBRTOWC
+#endif // _RWSTD_NO_MBRTOWC
+
+#ifndef _RWSTD_NO_MBRTOWC_IN_LIBC
+# define _RWSTD_NO_MBRTOWC_IN_LIBC
+#endif // _RWSTD_NO_MBRTOWC_IN_LIBC
+
+#ifndef _RWSTD_NO_WCRTOMB
+# define _RWSTD_NO_WCRTOMB
+#endif // _RWSTD_NO_WCRTOMB
+
+#ifndef _RWSTD_NO_WCRTOMB_IN_LIBC
+# define _RWSTD_NO_WCRTOMB_IN_LIBC
+#endif // _RWSTD_NO_WCRTOMB_IN_LIBC
+
+#ifndef _RWSTD_NO_MBSTOWCS
+# define _RWSTD_NO_MBSTOWCS
+#endif // _RWSTD_NO_MBSTOWCS
+
+#ifndef _RWSTD_NO_MBSTOWCS_IN_LIBC
+# define _RWSTD_NO_MBSTOWCS_IN_LIBC
+#endif // _RWSTD_NO_MBSTOWCS_IN_LIBC
+
+#ifndef _RWSTD_NO_MBRLEN
+# define _RWSTD_NO_MBRLEN
+#endif // _RWSTD_NO_MBRLEN
+
+#ifndef _RWSTD_NO_MBRLEN_IN_LIBC
+# define _RWSTD_NO_MBRLEN_IN_LIBC
+#endif // _RWSTD_NO_MBRLEN_IN_LIBC
+
+#ifndef _RWSTD_NO_WCSRTOMBS
+# define _RWSTD_NO_WCSRTOMBS
+#endif // _RWSTD_NO_WCSRTOMBS
+
+#ifndef _RWSTD_NO_WCSRTOMBS_IN_LIBC
+# define _RWSTD_NO_WCSRTOMBS_IN_LIBC
+#endif // _RWSTD_NO_WCSRTOMBS_IN_LIBC
+
+#ifndef _RWSTD_NO_BTOWC
+# define _RWSTD_NO_BTOWC
+#endif // _RWSTD_NO_BTOWC
+
+#ifndef _RWSTD_NO_BTOWC_IN_LIBC
+# define _RWSTD_NO_BTOWC_IN_LIBC
+#endif // _RWSTD_NO_BTOWC_IN_LIBC
+
+#ifndef _RWSTD_NO_MBSRTOWCS
+# define _RWSTD_NO_MBSRTOWCS
+#endif // _RWSTD_NO_MBSRTOWCS
+
+#ifndef _RWSTD_NO_MBSRTOWCS_IN_LIBC
+# define _RWSTD_NO_MBSRTOWCS_IN_LIBC
+#endif // _RWSTD_NO_MBSRTOWCS_IN_LIBC
+
+#endif // MSVC <= 6.0
+
+ // enable the <cxxx> form of libc headers
+ // we can only use the rw version in include/ansi
+#ifndef _RWSTD_NO_PURE_C_HEADERS
+# define _RWSTD_NO_PURE_C_HEADERS
+#endif // _RWSTD_NO_PURE_C_HEADERS
+
+#if defined _RWSTD_NO_NEW_HEADER
+# undef _RWSTD_NO_NEW_HEADER
+#endif // _RWSTD_NO_NEW_HEADER
+
+ // our <cxxx> libc headers put the libc functions in namespace std
+#ifdef _RWSTD_NO_LIBC_IN_STD
+# undef _RWSTD_NO_LIBC_IN_STD
+#endif // _RWSTD_NO_LIBC_IN_STD
+
+#ifndef _RWSTD_NO_DEPRECATED_C_HEADERS
+# define _RWSTD_NO_DEPRECATED_C_HEADERS
+#endif // _RWSTD_NO_DEPRECATED_C_HEADERS
+
+ // operator new and delete is not reliably replaceable across
+ // shared library boundaries, which includes the shared library
+ // version of the language support library
+#define _RWSTD_NO_REPLACEABLE_NEW_DELETE
+
+ // names of (most) extern "C" libc symbols begin with an underscore
+#define _RWSTD_LIBC_SYM(name) _ ## name
+
+#ifdef _DLL
+ // the _DLL macro is defined by the compiler when building a shared
+ // library, i.e., in response to either of the /MD and /MDd options
+ // _RWSTD_DLLIMPORT is used when declaring libc functions that need
+ // to be "imported" into the shared library
+# define _RWSTD_DLLIMPORT __declspec (dllimport)
+#endif // _DLL
+
+#ifndef _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
+ // both MSVC 7.x and Intel C++/Windows allow "inline" initializers
+ // for static const integral data members but out-of-line definitions
+ // cause multiply defined symbol errors (see PR #26562 and #30260)
+ // disable their definitions in source files (the members are still
+ // declared)
+# define _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
+#endif // _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
+
+ // enable iostream and locale support for long long integers
+#define _RWSTD_LONG_LONG __int64
+
+#if defined (_WIN64)
+ // FIXME: handle by forward declaring fuctions in <rw/_mutex.h>
+# define _RWSTD_NO_FWD_DECLARATIONS
+#endif // _WIN64
+
+#if defined (WIN32) && !defined(_WIN32)
+# define _WIN32
+#endif
+
+#ifdef _MT
+# ifndef _RWSTD_REENTRANT
+# define _RWSTD_REENTRANT 1
+# endif // _RWSTD_REENTRANT
+
+# ifndef _RWSTD_NO_TLS
+ // thread-local stoprage declaration specifier
+# ifndef _RWSTD_THREAD
+# define _RWSTD_THREAD __declspec (thread)
+# endif // _RWSTD_THREAD
+# endif // _RWSTD_NO_TLS
+#else // if !defined (_MT)
+# ifndef _RWSTD_THREAD
+# define _RWSTD_THREAD /* empty */
+# endif // _RWSTD_THREAD
+#endif //_MT
+
+#if defined (_CPPRTTI)
+ // override in case library was configured with -GR-
+ // (i.e., with RTTI disabled)
+# undef _RWSTD_NO_DYNAMIC_CAST
+#elif !defined (_RWSTD_NO_DYNAMIC_CAST)
+ // override in case library was configured with -GR
+ // (i.e., with RTTI enabled)
+# define _RWSTD_NO_DYNAMIC_CAST
+#endif // _CPPRTTI
+
+#pragma warning (error: 4541)
+#ifndef _NATIVE_WCHAR_T_DEFINED
+ // define wchar_t if it is not a keyword recognized by the compiler
+ // (use the /Zc:wchar_t compiler option to enable wchar_t as a keyword)
+typedef unsigned short wchar_t;
+
+#endif // _NATIVE_WCHAR_T_DEFINED
Propchange: incubator/stdcxx/trunk/include/rw/_config-msvcrt.h
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/stdcxx/trunk/include/rw/_config-msvcrt.h
------------------------------------------------------------------------------
svn:keywords = Id
Modified: incubator/stdcxx/trunk/include/rw/_config.h
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/rw/_config.h?view=diff&rev=546562&r1=546561&r2=546562
==============================================================================
--- incubator/stdcxx/trunk/include/rw/_config.h (original)
+++ incubator/stdcxx/trunk/include/rw/_config.h Tue Jun 12 09:25:18 2007
@@ -207,11 +207,11 @@
# endif // _SGI_COMPILER_VERSION || !__GNUG__
#endif // _RWSTD_OS_IRIX64
-/*** MSVC (and Intel C++/Win{32,64}) **************************************/
+/*** MSVC *****************************************************************/
-#ifdef _MSC_VER
+#if defined (_MSC_VER) && !defined (__INTEL_COMPILER)
# include "_config-msvc.h"
-#endif // _MSC_VER
+#endif // _MSC_VER && !__INTEL_COMPILER
/*** Siemens CDS++ ********************************************************/