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
- Are we using SimpleReferenceObject correctly? · Henrik /KaarPoSoft
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.