[Libreoffice] map files: how to update? [was: cppu::OPropertySetHelper ABI backwards compatibility]

Lionel Elie Mamane lionel at mamane.lu
Wed Sep 7 03:14:33 PDT 2011


On Mon, Sep 05, 2011 at 09:57:30AM +0200, Stephan Bergmann wrote:
> On Sep 2, 2011, at 5:13 PM, Lionel Elie Mamane wrote:

>> I assume the vtable "obviously" has to be exported.

> No, need not be exported (if none of the ctors and dtors are inline).

Ah, I had not declared the copy constructor and assignment operator
well, which led to the vtable being necessary to export. That is fixed
now.

>> Revised patch attached; if it is good to go (especially with respect
>> to questions above), I'll commit (with a better commit message).

> gcc3.map in the latest patch (sent this morning):

> - Do not export the thunks (_ZThn), not needed externally.

Well, the build fails if they are not exported. So for now, I export
them. If the fact that they are needed comes from an error in the
class design, please let me know what to do to fix that.


Here's the failing build log:

=============
(1/1) Building module comphelper
=============
Entering /home/master/src/libreoffice/core/comphelper/prj

cd .. && make -s -r -j4  && make -s -r deliverlog
[ build CXX ] comphelper/source/property/opropertybag
[ build CXX ] comphelper/source/property/propagg
[ build CXX ] comphelper/source/property/propertybag
[ build CXX ] comphelper/source/property/propertycontainer
[ build CXX ] comphelper/source/property/propertycontainerhelper
[ build CXX ] comphelper/source/property/propertystatecontainer
[ build CXX ] comphelper/source/property/propmultiplex
[ build CXX ] comphelper/source/property/propstate
[ build DEP ] LNK:Library/libcomphelpgcc3.so
[ build LNK ] Library/libcomphelpgcc3.so
/home/master/src/libreoffice/core/workdir/unxlngx6/CxxObject/comphelper/source/property/opropertybag.o:(.data.rel.ro._ZTVN10comphelper12OPropertyBagE[vtable for comphelper::OPropertyBag]+0x270): undefined reference to `non-virtual thunk to cppu::OPropertySetHelper2::enableChangeListenerNotification(unsigned char)'
/home/master/src/libreoffice/core/workdir/unxlngx6/CxxObject/comphelper/source/property/propagg.o:(.data.rel.ro._ZTVN10comphelper29OPropertySetAggregationHelperE[vtable for comphelper::OPropertySetAggregationHelper]+0x200): undefined reference to `non-virtual thunk to cppu::OPropertySetHelper2::enableChangeListenerNotification(unsigned char)'
/home/master/src/libreoffice/core/workdir/unxlngx6/CxxObject/comphelper/source/property/propstate.o:(.data.rel.ro._ZTVN10comphelper20OStatefulPropertySetE[vtable for comphelper::OStatefulPropertySet]+0x258): undefined reference to `non-virtual thunk to cppu::OPropertySetHelper2::enableChangeListenerNotification(unsigned char)'
/home/master/src/libreoffice/core/workdir/unxlngx6/CxxObject/comphelper/source/property/propstate.o:(.data.rel.ro._ZTVN10comphelper20OPropertyStateHelperE[vtable for comphelper::OPropertyStateHelper]+0x1d0): undefined reference to `non-virtual thunk to cppu::OPropertySetHelper2::enableChangeListenerNotification(unsigned char)'
collect2: ld returned 1 exit status
make: *** [/home/master/src/libreoffice/core/workdir/unxlngx6/LinkTarget/Library/libcomphelpgcc3.so] Error 1
dmake:  Error code 2, while making 'all'


-- 
Lionel


More information about the LibreOffice mailing list