Linux compat library error: ELF file OS ABI invalid

Tijl Coosemans tijl at
Tue May 13 15:52:39 UTC 2008

On Tuesday 13 May 2008 16:34:11 Glyn Millington wrote:
> Tijl Coosemans <tijl at> 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/ ELF file OS ABI
>>> | invalid
>>> `----
>>> Now I *think*   that what it ought to load is 
>>> /usr/compat/linux/usr/X11R6/lib/
>>> 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/ 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., FreeBSD
first tries to find it under /compat/linux, then under /. So linker
tries to open /usr/local/lib/, but it didn't exist under
/compat/linux so it got the FreeBSD

More information about the freebsd-questions mailing list