Difference between revisions of "BuildingMSVCStandard"
(→Code changes) |
|||
Line 1: | Line 1: | ||
== Code changes == | == Code changes == | ||
− | What hides these issues when using Professional is more agressive inlining. Even if they all manifest with standard, they are actually separate and distinct issues. I've summarized the changes here and I'll add a patch once I've verified the impact of these changes. '''You have to do these changes before compiling''' | + | What hides these issues when using Professional is more agressive inlining. Even if they all manifest with standard, they are actually separate and distinct issues. I've summarized the changes here and I'll add a patch once I've verified the impact of these changes. '''You have to do these changes before compiling'''. |
− | + | Update: These are all the changes required to compile OO.o. I'm now working on a patch. --[[User:KaiB|KaiB]] 22:30, 13 January 2006 (CET) | |
+ | |||
+ | === '''sj2/util/makefile.mk''': add the SVTOOLLIB library === | ||
SHL1STDLIBS= \ | SHL1STDLIBS= \ | ||
− | + | $(VCLLIB) \ | |
− | + | $(UNOTOOLSLIB) \ | |
− | + | $(TOOLSLIB) \ | |
− | + | $(CPPULIB) \ | |
− | + | $(SALLIB) \ | |
− | $(SVTOOLLIB) | + | +$(SVTOOLLIB) |
− | + | The required library was just missing from the makefile. | |
+ | |||
+ | === '''basic/source/apps/dialogs.cxx''' === | ||
1. Comment out the lines shown here starting from line 43: | 1. Comment out the lines shown here starting from line 43: | ||
Line 30: | Line 34: | ||
FreeResource(); | FreeResource(); | ||
− | + | Redefining the reserved keyword in spot 1 results in the linker trying to find a public FreeResource method while the actual one compiled into the library is protected. The error pops up in a totally unrelated module and halts the build. Spot 2 is the place that requires this workaround. | |
− | In [http://www.openoffice.org/issues/show_bug.cgi?id=58352 Issue 58352] there is a commit log of the changes needed to solve the problem and not workaround it. The fix is on CWS warnings01. | + | In [http://www.openoffice.org/issues/show_bug.cgi?id=58352 Issue 58352] there is a commit log of the changes needed to solve the problem and not workaround it. The fix is on CWS warnings01. (Gregor Hartmann is the basic/source/app maintainer) |
− | + | === '''tools/source/stream/stream.cxx''' (line 66): Define ENABLE_STRING_STREAM_OPERATORS to compile the stream operators into the library: === | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
#define ENABLE_BYTESTRING_STREAM_OPERATORS | #define ENABLE_BYTESTRING_STREAM_OPERATORS | ||
Line 44: | Line 44: | ||
#include <stream.hxx> | #include <stream.hxx> | ||
− | + | Simple change to ensure that the deprecated stream functions are still compiled into the library. The proper long term fix is to change the call sites and remove the requirement altogether. | |
− | + | ||
− | + |
Revision as of 21:30, 13 January 2006
Contents
Code changes
What hides these issues when using Professional is more agressive inlining. Even if they all manifest with standard, they are actually separate and distinct issues. I've summarized the changes here and I'll add a patch once I've verified the impact of these changes. You have to do these changes before compiling.
Update: These are all the changes required to compile OO.o. I'm now working on a patch. --KaiB 22:30, 13 January 2006 (CET)
sj2/util/makefile.mk: add the SVTOOLLIB library
SHL1STDLIBS= \ $(VCLLIB) \ $(UNOTOOLSLIB) \ $(TOOLSLIB) \ $(CPPULIB) \ $(SALLIB) \ +$(SVTOOLLIB)
The required library was just missing from the makefile.
basic/source/apps/dialogs.cxx
1. Comment out the lines shown here starting from line 43:
//HACK( #define protected public ) //#define protected public // Kleine Schweinerei um an FreeResource ranzukommen #ifndef _TOOLS_RC_HXX //autogen #include <tools/rc.hxx> #endif //#undef protected
2. Comment out the line shown here (line 238):
aConfig.EnablePersistence( FALSE ); // aTabCtrl.FreeResource(); FreeResource();
Redefining the reserved keyword in spot 1 results in the linker trying to find a public FreeResource method while the actual one compiled into the library is protected. The error pops up in a totally unrelated module and halts the build. Spot 2 is the place that requires this workaround.
In Issue 58352 there is a commit log of the changes needed to solve the problem and not workaround it. The fix is on CWS warnings01. (Gregor Hartmann is the basic/source/app maintainer)
tools/source/stream/stream.cxx (line 66): Define ENABLE_STRING_STREAM_OPERATORS to compile the stream operators into the library:
#define ENABLE_BYTESTRING_STREAM_OPERATORS +#define ENABLE_STRING_STREAM_OPERATORS #include <stream.hxx>
Simple change to ensure that the deprecated stream functions are still compiled into the library. The proper long term fix is to change the call sites and remove the requirement altogether.