Date: Tue, 13 May 2008 17:52:11 +0200 From: Tijl Coosemans <tijl@ulyssis.org> To: glyn@millingtons.org Cc: freebsd-questions@freebsd.org Subject: Re: Linux compat library error: ELF file OS ABI invalid Message-ID: <200805131752.12767.tijl@ulyssis.org> In-Reply-To: <86fxsmgtng.fsf@nowhere.org> References: <86tzh2oc1t.fsf@nowhere.org> <200805131605.37330.tijl@ulyssis.org> <86fxsmgtng.fsf@nowhere.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 13 May 2008 16:34:11 Glyn Millington wrote: > Tijl Coosemans <tijl@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 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805131752.12767.tijl>