stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek" <tvi...@roguewave.com>
Subject RE: STDCXX-509
Date Wed, 17 Oct 2007 19:11:47 GMT

>From: Martin Sebor [mailto:sebor@roguewave.com] 
>
>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.
>

Yes. Thank you. Apparently I screwed my head on sideways this morning.
 
>> The 4.2.0 library
>> does have the macro defined, so the symbol omitted from the library.
>
>The other way around.

Ah-ha. Nope. Being that my head was screwed on backward, I went back and
re-checked my previous e-mail on the config macro defines. I was
backward there also.


The 4.1.3 config header has...

   #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

So, the 4.1.3 library config figures that the mentioned symbols are not
in the runtime library, so they are built into the stdlib12d.dll for
4.1.3. The 4.2.0 config is 'smarter' and discovers that some of the
symbols are provided, and omits them. This is consistent with the dump
of the libraries using 'dumpbin /exports'.

Travis

>
>Martin
>

Mime
View raw message