Hi David,
Hi Raymond,

On 20.12.2013 00:12, Steele, Raymond wrote:
Raymond and I are in the process of rebuilding OpenOffice with the debug flags, 
but have run into some errors that didn't occur the first time through in the 
build. The current error has caused me quite a bit of problems.

We are getting a link error, unrecognized symbol in /svx/source/engine3d/e3dundo.cxx. However the 
symbol that it is looking for is not present inside e3dundo.cxx. The symbol is 
"ParagraphData&ParagraphData::operator=(const ParagraphData&)" [sic] which we 
have located in /editeng/inc/editeng/paragraphdata.hxx and the implementation appears to in  
/editeng/source/outliner/paralist.cxx.

There are some very odd things going on here.

1)      paragraphdata.hxx is not included in paralist.cxx even though this is 
where the prototype is declared.
2)      e3dundo.cxx doesn't seem to use the ParagraphData class at all.
3)      e3dundo.cxx doesn't seem to include the libraries where these classes 
are used.

From what I can gather from the relevant parts of that code an OutlinerParaObject constructor has a ParagraphDataVector argument that is default initialized with an empty ParagraphDataVector. I guess the assignment in this default initialization needs ParagraphData's assignment operator.

Maybe removing the default argument for ParagraphDataVector in OutlinerParaObject's constructor helps? This can be done by creating another constructor that takes only one argument.

Most other compilers seem to optimize the assignment operator away even when compiling in debugging mode.

I want to note that we first started the debug build using multiple processors 
(-P8) and perhaps that has caused problems in the ordering in which the 
libraries were compiled and linked. It is conceivable that this problem may be 
resolved with a complete system clean and rebuild in linear mode, but before we 
committed to another day of building the product, we wanted to check with you 
to see if this problem has occurred before, is it recognized or if there is a 
solution that you could recommend?

I wouldn't vouch for our build systems ordering at such high parallelism levels... if you want to increase parallelism I'd recommend to change from e.g.
        build --all -P8
to e.g.
        build --all -P2 -- -P4
The first -P is for build's parallelism, the second -P is for dmake's parallelism. I'm too polite to tell what I really feel about these mechanisms...

We'd appreciate any help or insight you could provide.

I hope the above helps. If not just add the library that provides the missing symbol to the link list.

P.S. I will be on holiday for the next two weeks and I believe Raymond will be 
as well so we may be out of communication.

I'll be (mostly) offline for the rest of the year too :-)
Merry Christmas and a Happy New Year!

Herbert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to