Difference between revisions of "BuildingMSVCStandard"

From Apache OpenOffice Wiki
Jump to: navigation, search
(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''' --[[User:KaiB|KaiB]] 22:13, 11 January 2006 (CET)
+
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'''.
  
* '''sj2/util/makefile.mk''': add the SVTOOLLIB library  
+
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) \  
+
  $(VCLLIB) \  
$(UNOTOOLSLIB) \  
+
  $(UNOTOOLSLIB) \  
$(TOOLSLIB) \  
+
  $(TOOLSLIB) \  
$(CPPULIB) \  
+
  $(CPPULIB) \  
$(SALLIB) \  
+
  $(SALLIB) \  
  $(SVTOOLLIB)  
+
  +$(SVTOOLLIB)  
  
* '''basic/source/apps/dialogs.cxx'''
+
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();
  
This change leads to some confusion of the ressource manager which produces some assertions in a nonpro build. But it seems to work otherwise.
+
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)
  
BTW: For basic/source/app Gregor Hartmann is responsible.
+
=== '''tools/source/stream/stream.cxx''' (line 66): Define ENABLE_STRING_STREAM_OPERATORS to compile the stream operators into the library: ===
 
+
BTW: whats the meaning of 'reprecussions' several online dictionaries didn't know it
+
 
+
* '''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.
 
+
Work area:
+

Revision as of 21:30, 13 January 2006

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.

Personal tools