David Bertrand
2008-06-04 22:08:12 UTC
Hi,
Background
MSVC7 libraries compiled with -Zc:wchar_t switch (Treat wchar_t as
Built-in Type) are incompatible with the ones compiled without. This
basically changes the compiler interpretation of wchar_t from unsigned
short to a native wchar_t. Everything go fine until you link to unicode
functions. Since it's a global compile setting, your application cannot
mix and match libraries compiled with different setting : it will give
you link errors.
Boost v1.35 library uses the -Zc:wchar_t switch, and OmniOrb do not use
it. Since MSVC8 activates the -Zc:wchar_t switch by default, I feel it
confirms Boost is right. For testing purposes, I added the switch to
current release.
Here are the changes required for omniorb-4.1.2 :
\mk\platforms\x86_win32_vs_7.mk line 31
Enables "Treat wchar_t as Built-in Type" (-Zc:wchar_t).
MSVC_DLL_CXXNODEBUGFLAGS = -MD -EHs -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CXXLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_DLL_CNODEBUGFLAGS = -MD -GS -GR -Zi -nologo -Zc:wchar_t
MSVC_DLL_CLINKNODEBUGOPTIONS = -nologo -DEBUG
#
MSVC_DLL_CXXDEBUGFLAGS = -MDd -EHs -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CXXLINKDEBUGOPTIONS = -nologo -DEBUG
MSVC_DLL_CDEBUGFLAGS = -MDd -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CLINKDEBUGOPTIONS = -nologo -DEBUG
#
# Or
#
# Use the following set of flags to build and use multithread static
libraries
#
MSVC_STATICLIB_CXXNODEBUGFLAGS = -MT -EHs -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CXXLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CNODEBUGFLAGS = -MT -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CXXDEBUGFLAGS = -MTd -EHs -RTC1 -GS -GR -Zi
-nologo -Zc:wchar_t
MSVC_STATICLIB_CXXLINKDEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CDEBUGFLAGS = -MTd -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CLINKDEBUGOPTIONS = -nologo -DEBUG
My version compiled with this change linked and ran fine.
Feel free to comment.
Thanks,
David
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20080604/85da6dd3/attachment.htm
Background
MSVC7 libraries compiled with -Zc:wchar_t switch (Treat wchar_t as
Built-in Type) are incompatible with the ones compiled without. This
basically changes the compiler interpretation of wchar_t from unsigned
short to a native wchar_t. Everything go fine until you link to unicode
functions. Since it's a global compile setting, your application cannot
mix and match libraries compiled with different setting : it will give
you link errors.
Boost v1.35 library uses the -Zc:wchar_t switch, and OmniOrb do not use
it. Since MSVC8 activates the -Zc:wchar_t switch by default, I feel it
confirms Boost is right. For testing purposes, I added the switch to
current release.
Here are the changes required for omniorb-4.1.2 :
\mk\platforms\x86_win32_vs_7.mk line 31
Enables "Treat wchar_t as Built-in Type" (-Zc:wchar_t).
MSVC_DLL_CXXNODEBUGFLAGS = -MD -EHs -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CXXLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_DLL_CNODEBUGFLAGS = -MD -GS -GR -Zi -nologo -Zc:wchar_t
MSVC_DLL_CLINKNODEBUGOPTIONS = -nologo -DEBUG
#
MSVC_DLL_CXXDEBUGFLAGS = -MDd -EHs -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CXXLINKDEBUGOPTIONS = -nologo -DEBUG
MSVC_DLL_CDEBUGFLAGS = -MDd -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_DLL_CLINKDEBUGOPTIONS = -nologo -DEBUG
#
# Or
#
# Use the following set of flags to build and use multithread static
libraries
#
MSVC_STATICLIB_CXXNODEBUGFLAGS = -MT -EHs -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CXXLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CNODEBUGFLAGS = -MT -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CLINKNODEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CXXDEBUGFLAGS = -MTd -EHs -RTC1 -GS -GR -Zi
-nologo -Zc:wchar_t
MSVC_STATICLIB_CXXLINKDEBUGOPTIONS = -nologo -DEBUG
MSVC_STATICLIB_CDEBUGFLAGS = -MTd -RTC1 -GS -GR -Zi -nologo
-Zc:wchar_t
MSVC_STATICLIB_CLINKDEBUGOPTIONS = -nologo -DEBUG
My version compiled with this change linked and ran fine.
Feel free to comment.
Thanks,
David
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20080604/85da6dd3/attachment.htm