Re: [Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-09-05 Thread Caolán McNamara
On Sun, 2011-09-04 at 15:15 -0400, Kevin Hunter wrote:
 I went ahead and did that with no love.  For reference:
 
 $ ldd sal/unxlngx6/lib/libuno_sal.so | grep stdc
   libstdc++.so.6 = /usr/local/lib64/libstdc++.so.6 (0x7f122c7cb000)

Sure sure, but when you actually end up with an install set you get a
copy of libstdc++.so.6 placed beside libuno_sal.so where the rpath
$ORIGIN stuff picks up the copy. And/or during the build LD_LIBRARY_PATH
is used to change the link path, so running ldd like above doesn't give
the same results as what would happen when you run something using
libuno_sal.so

e.g. 

[caolan@Nom core]$ ldd install/ure/lib/libuno_sal.so.3 
libstdc++.so.6 = /home/caolan/LibreOffice/core/install/ure/lib/libstdc
++.so.6 (0x7fc9fa177000)
libgcc_s.so.1
= /home/caolan/LibreOffice/core/install/ure/lib/libgcc_s.so.1 

i.e. my copy of libstdc++.so.6 is the one that will get used when I run
the final binaries. That's why I'm plinking around the issue of the
libstdc++.so.6 which gets copied/created by the external module to see
if the libstdc++.so.6 that's in there is the right one. 

You could play around with LD_DEBUG=man-page-options and see if that
gives anything useful.

 Have others had any issues compiling LO with GCC 4.6?  It's frustrating 
 and telling that I'm the only one noticing it.

Nope, I build with it all the time. However my gcc 4.6 and stdc++ are
the system ones, and not in /usr/local/somewhere

C.

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-09-04 Thread Kevin Hunter

At 5:23am -0400 Thu, 25 Aug 2011, Caolán McNamara wrote:

On Wed, 2011-08-24 at 18:06 +0100, Michael Meeks wrote:

But then again, it links to libstdc++

...

libstdc++.so.6 =  /usr/lib/libstdc++.so.6 (0xb7658000)

...

There was a mention of a /usr/local/bin/g++, which makes me wonder
about mismatching libstdc++.so.X. To humour me, what about...

rm -rf external/*/lib/*
rm -rf solver/*/*/lib/libstdc++*
rm -rf solver/*/*/lib/libgcc_s.so*


I went ahead and did that with no love.  For reference:

$ ldd sal/unxlngx6/lib/libuno_sal.so | grep stdc
libstdc++.so.6 = /usr/local/lib64/libstdc++.so.6 (0x7f122c7cb000)

At my novice gcc level, my research suggests it's to do with including 
libstdc++ in the build command.  I still don't know exactly why the 
compilation fails with GCC v4.6 (compiled three weeks ago) yet doesn't 
with GCC v4.4, but I can fix it one of two ways:


-
$ hash -r
$ which gcc g++; gcc --version | head -1; g++ --version | head -1
/usr/local/bin/gcc
/usr/local/bin/g++
gcc (GCC) 4.6.1
g++ (GCC) 4.6.1

# fails
$ gcc -o .../oosplash [...]

# works; rest of build can now finish successfully
$ gcc -o .../oosplash [...] -lstdc++
   or
$ g++ -o .../oosplash [...]
-

Have others had any issues compiling LO with GCC 4.6?  It's frustrating 
and telling that I'm the only one noticing it.  What voodoo have I 
overlooked?


Thanks,

Kevin

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-08-25 Thread Caolán McNamara
On Wed, 2011-08-24 at 18:06 +0100, Michael Meeks wrote:
   But then again, it links to libstdc++
...
   libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0xb7658000)
...

There was a mention of a /usr/local/bin/g++, which makes me wonder
about mismatching libstdc++.so.X. To humour me, what about...

rm -rf external/*/lib/*
rm -rf solver/*/*/lib/libstdc++*
rm -rf solver/*/*/lib/libgcc_s.so*


C.

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-08-24 Thread Michael Meeks
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):

  DF *UND*    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 =  (0xe000)
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 gDF .text  00d5  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.me...@novell.com  , Pseudo Engineer, itinerant idiot


___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-08-24 Thread Kevin Hunter

At 10:06am -0700 Wed, 24 Aug 2011, Michael Meeks wrote:

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.


Absolutely.  Alright ... given your message, I'm wondering if there is 
an interplay with the fact that my build is


...
--enable-dbgutil \
--enable-debug   \
--enable-symbols \
...

Message received; no one quite knows what the issue is.  I'll dive into it.

Cheers,

Kevin
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice] gcc/g++ compilation issue in desktop/splash

2011-08-22 Thread Kevin Hunter

Hi Folks,

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:


-
$ cd desktop
$ build

[...snip...]

Entering /home/kevin/devel/libreoffice/desktop/unx/source

Making:oosplash
ccache /usr/local/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 -g -g 
-Wl,-rpath,'$ORIGIN:$ORIGIN/../basis-link/program:$ORIGIN/../basis-link/ure-link/lib',--enable-new-dtags 
-Wl,-export-dynamic 
-Wl,-rpath-link,../../unxlngx6/lib:/home/kevin/devel/libreoffice/solver/350/unxlngx6/lib:/lib:/usr/lib 
-L../../unxlngx6/lib -L../lib 
-L/home/kevin/devel/libreoffice/solenv/unxlngx6/lib 
-L/home/kevin/devel/libreoffice/solver/350/unxlngx6/lib 
-L/home/kevin/devel/libreoffice/solenv/unxlngx6/lib 
../../unxlngx6/obj/splashx.o ../../unxlngx6/obj/start.o 
../../unxlngx6/obj/args.o ../../unxlngx6/obj/pagein.o 
../../unxlngx6/obj/file_image_unx.o \
-lpthread -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed -luno_sal 
-lpng12 -lXinerama -o ../../unxlngx6/bin/oosplash
/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'

-

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.


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?


Thanks,

Kevin
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice