Dan,

Dan Kegel wrote:
Kay Ramme - Sun Germany - Hamburg wrote:

As suggested, names of libraries providing C++ interfaces already differ, depending on the used compiler. E.g. cppuhelper is called

  libuno_cppuhelpergcc3.so.3

where "gcc3" reflects the C++ ABI version. Unfortunately it is not necessarily true, that libraries compiled with different (in terms of ABI) C++ compilers can be used in the same process, because of symbol conflicts. At least this is, what happened some times in the last years.


That's a good point.  I guess I should amplify my
original comment, and suggest that all of OpenOffice
be rewritten in C (just kidding, I think :-)

So for any particular release of URE / OpenOffice,
all C++ apps that use URE will have to be compiled with
the same C++ compiler used to build the innards of URE,
regardless of whether they use the C API to URE or not?
If the C++ ABI has been versioned correctly, indeed not. As this is AFAIK not the case with g++, you are probably right in respect to incompatible versions of g++. What likely works is, to compile different parts with completely different C++ compilers, assuming that they do _not_ conflict in symbols.

It would have been worthwhile, to investigate somewhat into -Bgroup (-Bdirect), to reduce the symbols scope, if there were not identity comparisons for RTTI (e.g. for checking catch clauses for exceptions), but value comparisons.

Note: as UNO is remote transparent, you certainly can compile different C++ components/libraries and use them in different processes, to avoid symbol clashes.
- Dan


Kay

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to