Re: DEV300_m96: rtld difference on FreeBSD

Stephan Bergmann <[email protected]> Mon, 31 Jan 2011 09:21:26 +0100
Newsgroups gmane.comp.openoffice.devel.porting
Message-ID <[email protected]>
On 01/30/11 07:16, Maho NAKATA wrote:
> I encountered another build brekage of DEV300_m96 on FreeBSD.
> it seems small difference rtld between Linux and FreeBSD.

(FreeBSD uses ELF, including features like RPATH, right?)

> On FreeBSD 8,
>
> # cd basegfx/unxfbsdi.pro/lib ; ldd ./libbasegfxfi.so
> ./libbasegfxfi.so:
> /libexec/ld-elf.so.1: ./libbasegfxfi.so: Unexpected inconsistency: dependency libuno_sal.so.3 not found
> ./libbasegfxfi.so: exit status 1
>
> On FreeBSD ldd erroneously exit on libbasegfxfi.so when it
> didn't find some libraries.
>
> On Linux
> maho@:~/DEV300_m96/basegfx/unxlngi6.pro/lib$ ldd ./libbasegfxli.so
>    linux-gate.so.1 =>   (0x0040d000)
>    libuno_sal.so.3 =>  not found
>    libuno_cppuhelpergcc3.so.3 =>  not found
>    libuno_cppu.so.3 =>  not found
>    libstlport_gcc.so =>  not found
>    libstdc++.so.6 =>  /usr/lib/libstdc++.so.6 (0x00542000)
>    libm.so.6 =>  /lib/tls/i686/cmov/libm.so.6 (0x00b77000)
>    libgcc_s.so.1 =>  /lib/libgcc_s.so.1 (0x00d8b000)
>    libc.so.6 =>  /lib/tls/i686/cmov/libc.so.6 (0x008d5000)
>    /lib/ld-linux.so.2 (0x00e4b000)
>
> problem here on FreeBSD is that ldd fails after it didn't find some libraries,
> whereas on Linux, it just says it doesn't found.

But in both cases there is an error (basegfx/$INPATH/lib/libbasegfx*.so 
does not find the libraries it depends on; which is OK as the basegfx 
library's location does not match its RPATH settings).  It is just 
reported slightly differently.

> It prevents packaging process, so FreeBSD build is broken at instsetoo_native
> like following:
> **************************************************
> ERROR: ERROR: unopkg sync --verbose -env:BUNDLED_EXTENSIONS_USER="file:///work/OOO/debussy8i386/DEV300_m96/ports/editors/openoffice.org-3-devel/work/DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/install/en-US_inprogress/OOo_3.4.0_FreeBSD_install-arc_en-US/openoffice.org3/share/prereg/bundled" -env:UserInstallation=file:///work/tmp/ooopackaging/i_485471296326978/unxfbsdi.pro/OpenOffice/archive/uno/en-US -env:UNO_JAVA_JFW_ENV_JREHOME=true 2>&1 | failed!
> in function: register_extensions
> **************************************************
>
> **************************************************
> ERROR: Saved logfile: /work/OOO/debussy8i386/DEV300_m96/ports/editors/openoffice.org-3-devel/work/DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/logging/en-US/log_DEV300_en-US.log
> **************************************************
> ... cleaning the output tree ...
> ... removing directory /work/tmp/ooopackaging/i_485471296326978 ...
> Sun Jan 30 03:54:19 2011 (04:41 min.)
> dmake:  Error code 255, while making 'openoffice_en-US.archive'
>
> .
>
> The relevant part of output of "DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/logging/en-US/log_DEV300_en-US.log" is
>
>> /libexec/ld-elf.so.1: Shared object "libbasegfxfi.so" not found, required by "libtlfi.so"
>
> Systemcall: unopkg sync --verbose -env:BUNDLED_EXTENSIONS_USER="file:///work/OOO/debussy8i386/DEV300_m96/ports/editors/openoffice.org-3-devel/work/DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/install/en-US_inprogress/OOo_3.4.0_FreeBSD_install-arc_en-US/openoffice.org3/share/prereg/bundled" -env:UserInstallation=file:///work/tmp/ooopackaging/i_671801296343016/unxfbsdi.pro/OpenOffice/archive/uno/en-US -env:UNO_JAVA_JFW_ENV_JREHOME=true 2>&1 |
> /libexec/ld-elf.so.1: Shared object "libbasegfxfi.so" not found, required by "libtlfi.so"
> ERROR: Could not execute "unopkg sync --verbose -env:BUNDLED_EXTENSIONS_USER="file:///work/OOO/debussy8i386/DEV300_m96/ports/editors/openoffice.org-3-devel/work/DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/install/en-US_inprogress/OOo_3.4.0_FreeBSD_install-arc_en-US/openoffice.org3/share/prereg/bundled" -env:UserInstallation=file:///work/tmp/ooopackaging/i_671801296343016/unxfbsdi.pro/OpenOffice/archive/uno/en-US -env:UNO_JAVA_JFW_ENV_JREHOME=true 2>&1 |"!Exitcode: '256'
>
> It seems we need LD_LIBRARY_PATH at packaging process(?)

What would be interesting is the output of ldd 
/work/OOO/debussy8i386/DEV300_m96/ports/editors/openoffice.org-3-devel/work/DEV300_m96/instsetoo_native/unxfbsdi.pro/OpenOffice/archive/install/en-US_inprogress/OOo_3.4.0_FreeBSD_install-arc_en-US/openoffice.org/basis3.4/program/libtlfi.so

-Stephan