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]