Linux compat library error: ELF file OS ABI invalid

Glyn Millington glyn at millingtons.org
Tue May 13 18:39:27 UTC 2008


Tijl Coosemans <tijl at ulyssis.org> writes:

> 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
>>>> 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

That gets me a 

objdump: soffice: File format not recognized

> 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.

OK - tghatnk you, that bit I *do* understand.

many thanks





Glyn


More information about the freebsd-questions mailing list