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


Hi Kevin,

        Sorry for the delayed reply ...

On Mon, 2011-08-22 at 12:08 -0400, Kevin Hunter wrote:
I haven't seen a fix go by, and have seen nothing mentioned on the list 
regarding building the splash part of desktop, but I'm having an issue 
that appears to be solved by switching to g++ instead of gcc:

        Hmm - I don't really understand that I must confess.

Making:    oosplash
ccache /usr/local/bin/gcc -Wl,-z,noexecstack -Wl,-z,combreloc 
..
/home/kevin/devel/libreoffice/solver/350/unxlngx6/lib/libuno_sal.so: 
undefined reference to 
`std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
collect2: ld returned 1 exit status
dmake:  Error code 1, while making '../../unxlngx6/bin/oosplash'

        So - I have:

/opt/icecream/bin/gcc -Wl,-z,noexecstack -Wl,-z,combreloc -Wl,-z,defs
-Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new
-Wl,--dynamic-list-cpp-typeinfo -Wl,--hash-style=gnu
-Wl,-rpath,'$ORIGIN:$ORIGIN/../basis-link/program:
$ORIGIN/../basis-link/ure-link/lib',--enable-new-dtags
-Wl,-export-dynamic
-Wl,-rpath-link,../../unxlngi6.pro/lib:/data/opt/libreoffice/core/solver/350/unxlngi6.pro/lib:/lib:/usr/lib
 -L../../unxlngi6.pro/lib -L../lib -L/data/opt/libreoffice/core/solenv/unxlngi6/lib 
-L/data/opt/libreoffice/core/solver/350/unxlngi6.pro/lib 
-L/data/opt/libreoffice/core/solenv/unxlngi6/lib ../../unxlngi6.pro/obj/splashx.o
./../unxlngi6.pro/obj/start.o ../../unxlngi6.pro/obj/args.o
./../unxlngi6.pro/obj/pagein.o ../../unxlngi6.pro/obj/file_image_unx.o
-lpthread -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed -luno_sal
-lpng14 -lXinerama -o ../../unxlngi6.pro/bin/oosplash

        Which works fine here at least. And I have no list_node_base related
symbol at all exported from libuno_sal.so - odd.

By executing that line manually and switching to /usr/local/bin/g++ the 
compile is successful.  And that point I can restart the build and LO 
finishes with a successful build.

        Which is indeed odd.

It looks like the source of those files is C, but the libuno_sal is a 
.cpp file.  I'm not clear on the linking rules bewteen the C and CPP, 
but given that no one else is having this issue, is there something else 
that I'm missing?

        So - libuno_sal is a C++ library, certainly - but surely we should be
able to link it without any magic.

        I wonder what changed there ? libuno_sal.so - clearly does have a
number of C++ exports it requires (objdump -T shows):

00000000      DF *UND*  00000000  GLIBCXX_3.4 _ZSt20__throw_length_errorPKc

        But then again, it links to libstdc++

$ ldd ../sal/unxlngi6.pro/lib/libuno_sal.so
        linux-gate.so.1 =>  (0xffffe000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7762000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7747000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7658000)
        libm.so.6 => /lib/libm.so.6 (0xb762e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb760f000)
        libc.so.6 => /lib/libc.so.6 (0xb74a2000)
        /lib/ld-linux.so.2 (0xb77db000)
$ objdump -T /usr/lib/libstdc++.so.6 | grep _ZSt20__throw_length_errorPKc
00055890 g    DF .text  000000d5  GLIBCXX_3.4 _ZSt20__throw_length_errorPKc

        At least for me ...

        Can you do some more investigation of which symbol is missing from
where ? of course, failing that we can do some horror of a rename in
there, or perhaps poking at removing things like:

        desktop/unx/source/makefile.mk:

APP1CODETYPE = C

        might help - but ... ideally we want as little junk in the splash app
as humanly possible; it'd be most ideal not to link sal at all IMHO
but ... ;-) its more work to avoid it.

        Thanks,

                Michael.

-- 
 michael.meeks@novell.com  <><, Pseudo Engineer, itinerant idiot



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.