Linux compat library error: ELF file OS ABI invalid
tijl at ulyssis.org
Tue May 13 15:52:39 UTC 2008
On Tuesday 13 May 2008 16:34:11 Glyn Millington wrote:
> Tijl Coosemans <tijl at ulyssis.org> 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
>>> | /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
>>> 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.
More information about the freebsd-questions