From stdcxx-commits-return-1951-apmail-incubator-stdcxx-commits-archive=incubator.apache.org@incubator.apache.org Tue Oct 16 14:42:13 2007 Return-Path: Delivered-To: apmail-incubator-stdcxx-commits-archive@www.apache.org Received: (qmail 40434 invoked from network); 16 Oct 2007 14:42:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Oct 2007 14:42:13 -0000 Received: (qmail 30376 invoked by uid 500); 16 Oct 2007 14:42:01 -0000 Delivered-To: apmail-incubator-stdcxx-commits-archive@incubator.apache.org Received: (qmail 30361 invoked by uid 500); 16 Oct 2007 14:42:01 -0000 Mailing-List: contact stdcxx-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-commits@incubator.apache.org Received: (qmail 30349 invoked by uid 99); 16 Oct 2007 14:42:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Oct 2007 07:42:01 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Oct 2007 14:42:12 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 88F2E1A9832; Tue, 16 Oct 2007 07:41:52 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r585157 - in /incubator/stdcxx/trunk: include/limits src/limits_bits.cpp src/num_get.cpp Date: Tue, 16 Oct 2007 14:41:50 -0000 To: stdcxx-commits@incubator.apache.org From: sebor@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071016144152.88F2E1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: sebor Date: Tue Oct 16 07:41:42 2007 New Revision: 585157 URL: http://svn.apache.org/viewvc?rev=585157&view=rev Log: 2007-10-16 Martin Sebor Merged a (mostly) binary compatible fix for STDCXX-509 from branches/4.2.0: * inlcude/limits [_RWSTD_NO_OBJECT_MANGLING] (__rw_flt_denorm_min, __rw_flt_infinity, __rw_flt_qNaN, __rw_flt_sNaN, __rw_dbl_denorm_min, __rw_dbl_infinity, __rw_dbl_qNaN, __rw_dbl_sNaN, __rw_ldbl_denorm_min, __rw_ldbl_infinity, __rw_ldbl_qNaN, __rw_ldbl_sNaN): Declared with C++ linkage when the config macro is #defined for binary compatibility with prior 4.x releases. * src/limits_bits.cpp: Same as above for definitions of constants. * src/num_get.cpp [_RWSTD_NO_OBJECT_MANGLING] (__rw_flt_infinity, __rw_dbl_infinity, __rw_ldbl_infinity): Same. Modified: incubator/stdcxx/trunk/include/limits incubator/stdcxx/trunk/src/limits_bits.cpp incubator/stdcxx/trunk/src/num_get.cpp Modified: incubator/stdcxx/trunk/include/limits URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/limits?rev=585157&r1=585156&r2=585157&view=diff ============================================================================== --- incubator/stdcxx/trunk/include/limits (original) +++ incubator/stdcxx/trunk/include/limits Tue Oct 16 07:41:42 2007 @@ -88,8 +88,17 @@ _RWSTD_NAMESPACE (__rw) { +#ifndef _RWSTD_NO_OBJECT_MANGLING + extern "C" { +#else // if defined (_RWSTD_NO_OBJECT_MANGLING) + +extern "C++" { + +#endif // _RWSTD_NO_OBJECT_MANGLING + + _RWSTD_EXPORT extern const float __rw_flt_infinity; _RWSTD_EXPORT extern const double __rw_dbl_infinity; @@ -111,7 +120,8 @@ #endif // _RWSTD_NO_LONG_DOUBLE -} // extern "C" + +} // extern "C"/"C++" } // namespace __rw Modified: incubator/stdcxx/trunk/src/limits_bits.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/src/limits_bits.cpp?rev=585157&r1=585156&r2=585157&view=diff ============================================================================== --- incubator/stdcxx/trunk/src/limits_bits.cpp (original) +++ incubator/stdcxx/trunk/src/limits_bits.cpp Tue Oct 16 07:41:42 2007 @@ -69,11 +69,19 @@ # endif // _RWSTD_NO_LONG_DOUBLE +# ifndef _RWSTD_NO_OBJECT_MANGLING + extern "C" { +# else // if defined (_RWSTD_NO_OBJECT_MANGLING) + +extern "C++" { + +# endif // _RWSTD_NO_OBJECT_MANGLING + // The constants below are declared in but with a different -// type. C linkage is used to defeat MSVC and other "clever" compilers -// that mangle the type of objects into their names. +// type. C linkage is (conditionally) used to defeat MSVC and other +// "clever" compilers that mangle the type of objects into their names. // infinity computed at config time _RWSTD_EXPORT extern const _DblBits @@ -146,12 +154,23 @@ # endif // _RWSTD_NO_LONG_DOUBLE -} // extern "C" +} // extern "C"/"C++" + #else // if defined (_RWSTD_NO_INFINITY) + +# ifndef _RWSTD_NO_OBJECT_MANGLING + extern "C" { +# else // if defined (_RWSTD_NO_OBJECT_MANGLING) + +extern "C++" { + +# endif // _RWSTD_NO_OBJECT_MANGLING + + // as the last resort compute values at dynamic initialization time _RWSTD_EXPORT extern const float __rw_flt_infinity = @@ -224,8 +243,7 @@ # endif // _RWSTD_NO_LONG_DOUBLE -} // extern "C" - +} // extern "C"/"C++" #endif // _RWSTD_NO_INFINITY Modified: incubator/stdcxx/trunk/src/num_get.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/src/num_get.cpp?rev=585157&r1=585156&r2=585157&view=diff ============================================================================== --- incubator/stdcxx/trunk/src/num_get.cpp (original) +++ incubator/stdcxx/trunk/src/num_get.cpp Tue Oct 16 07:41:42 2007 @@ -84,8 +84,17 @@ typedef unsigned char UChar; +#ifndef _RWSTD_NO_OBJECT_MANGLING + extern "C" { +#else // if defined (_RWSTD_NO_OBJECT_MANGLING) + +extern "C++" { + +#endif // _RWSTD_NO_OBJECT_MANGLING + + extern const float __rw_flt_infinity; extern const double __rw_dbl_infinity; @@ -95,7 +104,7 @@ #endif // _RWSTD_NO_LONG_DOUBLE -} // extern "C" +} // extern "C"/"C++" const char*