On Tuesday 13 May 2008 16:34:11 Glyn Millington wrote:
> Tijl Coosemans <[EMAIL PROTECTED]> writes:
>> On Tuesday 13 May 2008 10:14:54 Glyn Millington wrote:
>>> FreeBSD 7.0 release, ports currently up-to-date
>>> 
>>> 
>>> Trying to launch Linux Open Office 2.4 I get the following error
>>> message
>>> 
>>> 
>>> ,----
>>> | /usr/compat/linux/opt/openoffice.org2.4/program/soffice.bin: error while
>>> | loading shared libraries: /usr/local/lib/libXext.so.6: ELF file OS ABI
>>> | invalid
>>> `----
>>> 
>>> Now I *think*   that what it ought to load is 
>>> 
>>> /usr/compat/linux/usr/X11R6/lib/libXext.so.6
>>> 
>>> but it goes for the FreeBSD X extension lib instead.
>>> 
>>> Can anyone help me to fix this?
>>
>> If /compat/linux/usr/local doesn't exist, perhaps making it a
>> symlink to X11R6 does the trick.
> 
> Spot on!!    Many thanks :-)
> 
> What I don't understand is why that works, when
> /compat/linux/etc/ld.so.conf points at the right place in the very
> first line!

I suspect some OO executable or lib has some search paths hardcoded
which the linker checks before using the ldconfig cache. If you want
you could check this with: objdump -p <executable> | grep RPATH

RPATH could be /usr/lib:/usr/local/lib:/usr/X11R6/lib for instance.

Also, when a Linux program opens a file (i.e. libXext.so.6), FreeBSD
first tries to find it under /compat/linux, then under /. So linker
tries to open /usr/local/lib/libXext.so, but it didn't exist under
/compat/linux so it got the FreeBSD libXext.so.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to