Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Dear all,

As described in the mailing-list-thread
Issues building LibreOffice 4.0.0.1
http://lists.freedesktop.org/archives/libreoffice/2013-January/044838.html
I am trying to build and package LibreOffice 4.0.0.* for KaarPux
http://kaarpux.kaarposoft.dk/

I am starting a new mailing-list thread here to try to address
one issue at a time.

With LibreOffice 4.0.0.2, Stephans patch
http://cgit.freedesktop.org/libreoffice/core/commit/?id=d71e8fb17bd008751909ef2fabc6ff4f1e2db187
no other pathes and the configuration attached as "config.txt"
building is now stuck at
[build LNK] Library/libmysqllo.so
with
undefined reference to 'typeinfo for salhelper::SimpleReferenceObject'

See attached "libmysqllo_lnk_error.txt"

googel'ing the error message tends to indicate a problem with virtual
functions.

salhelper/inc/salhelper/simplereferenceobject.hxx has

class SALHELPER_DLLPUBLIC SimpleReferenceObject
{
[...]
protected:
    virtual ~SimpleReferenceObject() SAL_THROW(());
[...]
};

I am no C++ expert, but as far as I can tell, this makes
SimpleReferenceObject an abstract class, and subclasses
should declare and implement ~SimpleReferenceObject.

A simple grep shows that we have ORowSetValueDecorator defined in
places like
connectivity/inc/connectivity/inc/FValue.hxx

And as far as I can see, ORowSetValueDecorator does NOT
declare ~ORowSetValueDecorator

Grepping for other uses of SimpleReferenceObject turns up many
references, and I picked one at random:
xmloff/inc/xmloff/formlayerimport.hxx

Here we have

    class XMLOFF_DLLPUBLIC OFormLayerXMLImport
                :public ::salhelper::SimpleReferenceObject
    {
        OFormLayerXMLImport_Impl*   m_pImpl;

    public:
        OFormLayerXMLImport(SvXMLImport& _rImporter);
        ~OFormLayerXMLImport();

So, the subclass here DOES implement
~SimpleReferenceObject
as
~OFormLayerXMLImport()

As I am certainly no C++ expert, please allow me to ask this
question to the list:

Are we using SimpleReferenceObject correctly?
In particular, maybe we should define
~SimpleReferenceObject
in all subclasses ?

Thanks in advance for any input on this.

/Henrik
    - echo: "autogen"

    - sh: >
        ./autogen.sh

        # TRY TO KEEP THE OPTIONS IN THE SAME SEQUENCE AS ./configure --help

        --prefix="${KX_PREFIX}"

        # For debuging: build packages in sequential order
        --with-parallelism=1

        # When (re-)building sequential build can be achived with:
        # make PARALLELISM=1

        # Disable LibreOffice includes self-packaging code
        --disable-epm

        # This option disables installing the office development kit
        --disable-odk

        # TODO:  Consider --enable-mathmldtd      Enable bundling of (modified) MathML 1.01 DTD.

        #  Allows the built-in evolution 2 addressbook connectivity build to be enabled.
        --enable-evolution2

        # Include debugging symbols in output.
        # WARNING - a complete build needs 8 Gb of space and takes much longer (enables -g compiler 
flag).
        # --enable-symbols

        # Enable link-time optimization. Suitable for product builds. Building takes longer but 
libraries are optimized for speed
        --enable-lto

        #  the crashdump feature.
        --enable-crashdump

        # Determines whether to use Gtk+ 3.0 vclplug on platforms where Gtk+ 3.0 is available.
        --enable-gtk3

        # Determines whether to build the OpenGL 3D slide transitions component.
        --enable-opengl

        # Determines whether to enable presentation mode screensaver control under GNOME via DBUS.
        --enable-dbus

        # Do not use the deprecated gnome-vfs, but use gvfs from gio instead
        --disable-gnome-vfs
        --enable-gio

        # Determines whether to enable Telepathy for collaboration
        --enable-telepathy

        # TODO: --enable-gstreamer      Enable building with the new gstreamer 1.0 avmedia backend
        # TODO: –disable-gstreamer-0-10 Disable building the gstreamer avmedia backend

        # Increase build verbosity
        --enable-verbose

        # TODO: --enable-extra-gallery  Add extra gallery content.
        # TODO: --enable-extra-template Add extra template content.
        # TODO: --enable-extra-sample   Add extra sample content.
        # TODO: --enable-extra-font     Add extra font content.

        # Disable the build of the PostgreSQL-SDBC driver.
        --disable-postgresql-sdbc

        # Specify path to tarfiles manually.
        --with-external-tar="${KX_BASE}/../downloads/${KX_LIBREOFFICE}"

        # TODO: --without-fonts
        # LibreOffice includes some third-party fonts to provide a reliable basis for help content, 
templates, samples, etc.
        # When these fonts are already known to be available on the system then you should use this 
option.

        # Removes Postscript Printer definition files
        # Already included with CUPS
        --without-ppds 

        # TODO:  --without-afms
        # Removes bitmap font files from LibreOffice installation set,
        # for people building for specific distributions where AFM files or TrueType Fonts are 
known to be available.

        --with-system-cairo

        # Removes myspell dictionaries from LibreOffice
        --without-myspell-dicts

        # External directories
        --with-external-dict-dir=/opt/share/hunspell
        --with-external-hyph-dir=/opt/share/hyphen
        --with-external-thes-dir=/opt/share/thesaurus

        # Use installed system libraries and headers

        # TODO: use system rhino
        # However, LibreOffice uses an old rhino1_5R5
        # and patches heavily: libreoffice-4.0.0.1/rhino/rhino1_5R5*.patch
        # --with-system-rhino
        # --with-rhino-jar=/opt/share/java/js.jar

        --without-junit
        --without-java

[build LNK] Library/libmysqllo.so
S=/home/kaarpux/linux/build/opt/libreoffice-4.0.0.2 && O=$S/solver/unxlngx6.pro && 
W=$S/workdir/unxlngx6.pro &&  mkdir -p $W/LinkTarget/Library/ && g++ -shared -Wl,-z,noexecstack 
-flto   -Wl,-z,origin '-Wl,-rpath,$ORIGIN:$ORIGIN/../ure-link/lib' -Wl,-rpath-link,$O/lib 
-Wl,-z,defs  -fuse-linker-plugin -O2 -Wl,-rpath-link,/lib:/usr/lib -Wl,-z,combreloc  
-L$S/solenv/unxlngx6/lib -L$O/lib -L$S/solenv/unxlngx6/lib -L//lib  -Wl,--hash-style=gnu  
-Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo -Wl,-Bsymbolic-functions  -Wl,-O1 -Wl,-S 
 $W/CxxObject/connectivity/source/drivers/mysql/YDriver.o 
$W/CxxObject/connectivity/source/drivers/mysql/YTables.o 
$W/CxxObject/connectivity/source/drivers/mysql/YTable.o 
$W/CxxObject/connectivity/source/drivers/mysql/YViews.o 
$W/CxxObject/connectivity/source/drivers/mysql/YCatalog.o 
$W/CxxObject/connectivity/source/drivers/mysql/YColumns.o 
$W/CxxObject/connectivity/source/drivers/mysql/YUser.o 
$W/CxxObject/connectivity/source/drivers/mysql/YUsers.o 
$W/CxxObject/connectivity/source/drivers/mysql/Yservices.o     -Wl,--start-group  -Wl,--end-group 
-Wl,--no-as-needed   -luno_cppu -luno_cppuhelpergcc3 -luno_sal -ldbtoolslo -lcomphelpgcc3 -o 
$W/LinkTarget/Library/libmysqllo.so
/tmp/ccNHldod.ltrans2.ltrans.o:(.data.rel.ro._ZTIN12connectivity21ORowSetValueDecoratorE[_ZTIN12connectivity21ORowSetValueDecoratorE]+0x10):
 undefined reference to `typeinfo for salhelper::SimpleReferenceObject'
collect2: error: ld returned 1 exit status
make[2]: *** 
[/home/kaarpux/linux/build/opt/libreoffice-4.0.0.2/workdir/unxlngx6.pro/LinkTarget/Library/libmysqllo.so]
 Error 1

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.