Farid, I'm afraid your patch got stripped -- can you try again, maybe inline? Martin Farid Zaripov wrote: >> From: Martin Sebor [mailto:sebor@roguewave.com] >> Sent: Пт, 19.10.2007 0:35 >> To: stdcxx-dev@incubator.apache.org >> Subject: Re: binary compatibility question >> > > [...] > >> So what would we do in the archive? Keep the incompatible extern "C" symbol? > > Yes. Actually in shared library will be present both extern C" and extern "C++" constants. > I've tried to export the extern "C" _xxxBits constants, but the alias names were stripped up > to th first '@' character, i.e. the following directive > > #pragma comment (linker, "/EXPORT:?__rw_flt_qNaN@__rw@@3MB=__rw_flt_qNaN,DATA") > > exported "?__rw_flt_qNaN" symbol instead of "?__rw_flt_qNaN@__rw@@3MB" > > So I've created another xxx_vc constants with C++ linkage and exported them. > >> It would be great if you could put together a patch. > > The patch is attached. > > ChangeLog: > STDCXX-509 > * limits_bits.cpp [_RWSTD_VER_MAJOR < 5 && _MSC_VER && _DLL]: > The _xxxBits constants defined with C++ linkage and exported as the floating > constants with the mangled names for the binary compatibility with the stdcxx 4.1.x > > I see that the proper symbols are exported, but I can't check the 4.1.3 examples on MSVC 7.1 > at the moment (I'm writing from the home right now and no MSVC 7.1 here). Maybe some of You > would test this patch (Martin, Travis)? Otherwise I'll test the patch tomorrow. > > Farid. >