Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 46141 invoked from network); 17 Oct 2007 18:30:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Oct 2007 18:30:19 -0000 Received: (qmail 49521 invoked by uid 500); 17 Oct 2007 18:30:06 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 49510 invoked by uid 500); 17 Oct 2007 18:30:06 -0000 Mailing-List: contact stdcxx-dev-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-dev@incubator.apache.org Received: (qmail 49499 invoked by uid 99); 17 Oct 2007 18:30:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Oct 2007 11:30:06 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [208.30.140.160] (HELO moroha.quovadx.com) (208.30.140.160) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Oct 2007 18:30:10 +0000 Received: from qxvcexch01.ad.quovadx.com ([192.168.170.59]) by moroha.quovadx.com (8.13.6/8.13.6) with ESMTP id l9HIR7U5026474 for ; Wed, 17 Oct 2007 18:27:07 GMT Received: from [10.70.3.143] ([10.70.3.143]) by qxvcexch01.ad.quovadx.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 17 Oct 2007 12:26:01 -0600 Message-ID: <47165410.4040006@roguewave.com> Date: Wed, 17 Oct 2007 12:27:28 -0600 From: Martin Sebor User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4 MIME-Version: 1.0 To: stdcxx-dev@incubator.apache.org Subject: Re: STDCXX-509 References: <47159353.1030509@roguewave.com> <471646AA.5080901@roguewave.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 17 Oct 2007 18:26:01.0426 (UTC) FILETIME=[2B8FC320:01C810EB] X-Virus-Checked: Checked by ClamAV on apache.org Travis Vitek wrote: >> Martin Sebor wrote: >> >> Travis Vitek wrote: >>> So I've been looking at the issue of the missing symbols for the >>> destructor, copy constructor and assignment operators for bad_cast, >>> bad_typeid and exceptions. Specifically, these symbols... >> So based on the config macros below, 4.1.3 shouldn't have had >> the definition of the exception copy assignment operator in it >> (i.e., it should have come from the runtime library), whereas >> 4.2.0 should have it in it. Yet the 4.1.3 examples aren't >> finding the symbol either in the MSVC runtime (which is the >> same), or in the 4.2.0 dll? >> > > Nope, you're backwards here. > > As an example, the config.h for 4.1.3 does _not_ define > _RWSTD_NO_BAD_CAST_ASSIGNMENT [the define is commented out], so the > 4.1.3 library will have bad_cast::operator=() defined. No, you've got it backwards. :) NO_BAD_CAST_ASSIGNMENT means the function is not found in the runtime and that we need to define it in the library. When the macro is not defined (notice the double negative, !NO_XXX), the function will not be defined. > The 4.2.0 library > does have the macro defined, so the symbol omitted from the library. The other way around. Martin > >> You are running the 4.1.3 examples with the 4.2.0 library, >> right? I.e., not 4.2.0 examples with the 4.1.3 library. Just >> checking. >> > > Yes. As outlined in my previous e-mail, I'm running the 4.1.3 > examples/tests with the 4.2.0 dll. > >> Martin >> >>> The 4.1.3 config.h header has the following defines >>> >>> // #define _RWSTD_NO_BAD_CAST_ASSIGNMENT >>> // #define _RWSTD_NO_BAD_CAST_COPY_CTOR >>> #define _RWSTD_NO_BAD_CAST_DEFAULT_CTOR >>> // #define _RWSTD_NO_BAD_CAST_DTOR >>> #define _RWSTD_NO_BAD_CAST_WHAT >>> >>> // #define _RWSTD_NO_BAD_TYPEID_ASSIGNMENT >>> // #define _RWSTD_NO_BAD_TYPEID_COPY_CTOR >>> #define _RWSTD_NO_BAD_TYPEID_DEFAULT_CTOR >>> // #define _RWSTD_NO_BAD_TYPEID_DTOR >>> #define _RWSTD_NO_BAD_TYPEID_WHAT >>> >>> // #define _RWSTD_NO_EXCEPTION_ASSIGNMENT >>> // #define _RWSTD_NO_EXCEPTION_COPY_CTOR >>> // #define _RWSTD_NO_EXCEPTION_DEFAULT_CTOR >>> // #define _RWSTD_NO_EXCEPTION_DTOR >>> // #define _RWSTD_NO_EXCEPTION_WHAT >>> >>> The 4.2.0 config.h header has the following defines >>> >>> #define _RWSTD_NO_BAD_CAST_ASSIGNMENT >>> #define _RWSTD_NO_BAD_CAST_COPY_CTOR >>> #define _RWSTD_NO_BAD_CAST_DEFAULT_CTOR >>> #define _RWSTD_NO_BAD_CAST_DTOR >>> #define _RWSTD_NO_BAD_CAST_WHAT >>> >>> #define _RWSTD_NO_BAD_TYPEID_ASSIGNMENT >>> #define _RWSTD_NO_BAD_TYPEID_COPY_CTOR >>> #define _RWSTD_NO_BAD_TYPEID_DEFAULT_CTOR >>> #define _RWSTD_NO_BAD_TYPEID_DTOR >>> #define _RWSTD_NO_BAD_TYPEID_WHAT >>> >>> #define _RWSTD_NO_EXCEPTION_ASSIGNMENT >>> #define _RWSTD_NO_EXCEPTION_COPY_CTOR >>> #define _RWSTD_NO_EXCEPTION_DEFAULT_CTOR >>> #define _RWSTD_NO_EXCEPTION_DTOR >>> #define _RWSTD_NO_EXCEPTION_WHAT >>> >>> This is pretty consistent with what I'm expecting. I'm >> looking into the >>> config tests now to see why we have a change in behavior >> with the same >>> configuration. >>> >>> Travis >>