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