On 19.02.2015 19:13, Gabriele Bulfon wrote:
*Da:* Gabriele Bulfon <gabriele.bulfon@sonicle.com>
*A:* libreoffice@lists.freedesktop.org
*Data:* 19 febbraio 2015 13.04.57 CET
*Oggetto:* error during build of mork_helper, on illumos/xstreamos
S=/sources/sonicle/xstream-desktop-gate/components/libreoffice/libreoffice/libreoffice-4.4.0.3
&& I=$S/instdir && W=$S/workdir && /usr/gcc/4.7/bin/g++
-Wl,-z,origin '-Wl,-rpath,$ORIGIN/../Library' -L$I/ure/lib
-L$I/program -L/usr/gcc/4.7/lib -L/lib -L/usr/lib -Wl,-z,combreloc
-L$W/LinkTarget/StaticLibrary -L$I/sdk/lib -L$I/ure/lib -L$I/program
-L$W/LinkTarget/Library
$W/CxxObject/connectivity/source/drivers/mork/mork_helper.o
-Wl,--start-group -lm -lnsl -lsocket -lstdc++ -Wl,--end-group
-Wl,-zrecord -luno_cppu -luno_cppuhelpergcc3 -lmorklo -luno_sal -o
$W/LinkTarget/Executable/mork_helper
Undefined first referenced
symbol in file
X11OpenGLDeviceInfo::isDeviceBlocked()
/sources/sonicle/xstream-desktop-gate/components/libreoffice/libreoffice/libreoffice-4.4.0.3/instdir/program/libvcllo.so
X11OpenGLDeviceInfo::~X11OpenGLDeviceInfo()
/sources/sonicle/xstream-desktop-gate/components/libreoffice/libreoffice/libreoffice-4.4.0.3/instdir/program/libvcllo.so
X11OpenGLDeviceInfo::X11OpenGLDeviceInfo()
/sources/sonicle/xstream-desktop-gate/components/libreoffice/libreoffice/libreoffice-4.4.0.3/instdir/program/libvcllo.so
Looks like some LO code is not built for some reason, leaving out
those X11OpenGLDeviceInfo functions?
this *should* have failed when linking libvcllo.so already, not when
linking an executable.
the reason why it did not is that solaris.mk is missing "-z defs" linker
flag, which fails the link in case of missing symbols.
see also: commit 5e9ffbb85ee548a2f31ed99834c13d6c4ec4d714 "solaris11:
#i117606#: solaris.mk: add -Bdirect -z defs to LDFLAGS"
i'm not sure if "-z defs" will work with gcc, maybe you need "-Wl,-z,defs".
i also don't remember what "-Bdirect" does, it's probably some
performance improvement, you could try to add it too.
perhaps there is some #ifdef or condition in vcl/Library_vcl.mk that
disables the OpenGL stuff on Solaris.
Doing an ldd on the first so file, reveals something strange.
At the beginning it looks like libstdc++.so.6 is looked under
/usr/sfw/lib: wrong, should be under /usr/gcc/4.7/lib, as stated during
link via -L/usr/gcc/4.7/lib.
this could happen because:
1) there is a RPATH in one of the libraries above the libstdc++ line
(i.e. libvcllo.so) that points to /usr/sfw/lib
2) you have LD_LIBRARY_PATH set containing /usr/sfw/lib
3) you have LD_PRELOAD set set containing /usr/sfw/lib/libstdc++,so.6
4) most likely: /usr/sfw/lib precedes /usr/gcc/4.7/lib in the runtime
linker's search path (or /usr/gcc/4.7/lib is not on the search path at
all)... i forgot where that is configured on Solaris
Then some version not found: sure, that one is not gcc4.7....
Later in the deps list, libstdc++.so.6 appears again, this time
correctly under /usr/gcc/4..7/lib...
Solaris runtime linker will load 2 different libraries with the same
SONAME, if some other library requires a symbol version that is not
supplied by the already loaded library with the required SONAME, and
another library with the same SONAME can be found that supplies the
required symbol version. corner case: un-versioned symbols will satisfy
any requested symbol version.
How can this be? Maybe this is the problem around X11OpenGLDeviceInfo
undefined and referenced in this so?
it could be a problem, but unrelated to X11OpenGLDeviceInfo.
sonicle@xstreamdev:/sources/sonicle/xstream-desktop-gate/components/pidgin$
ldd
/sources/sonicle/xstream-desktop-gate/components/libreoffice/libreoffice/libreoffice-4.4.0.3/instdir/program/libvcllo.so
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => (version not found)
libstdc++.so.6 (CXXABI_1.3) => (version not found)
libjpeg.so.8 => /usr/lib/libjpeg.so.8
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.