Linux executable picks up FreeBSD library over linux one and breaks

Alexander Leidinger Alexander at Leidinger.net
Sat Dec 1 07:29:58 PST 2007


Quoting Yuri <yuri at rawbw.com> (Fri, 30 Nov 2007 16:49:03 -0800):

This is better suited in emulation@

> I am trying to run Linux version of Skype and am getting the following error:
> /usr/home/yuri/skype/current/skype: error while loading shared libraries:
> /usr/lib/librt.so.1: ELF file OS ABI 
> 
> File /usr/lib/librt.so.1 is FreeBSD library and
> /usr/compat/linux/lib/librt.so.1 is Linux library with the same name
> installed by linux_base-fc-4_10.
> 
> My LD_LIBRARY_PATH is set to /usr/compat/linux/lib:/usr/compat/linux/usr/lib.

The recommendation is to _not_ set the LD_LIBRARY_PATH.

> Why FreeBSD version is being picked up even though it's not
> in LD_LIBRARY_PATH?

Have a look at the search order of libs in linux. Correlate this with
the fact that when in linux an access is done to e.g. /lib/libX.so.y
which means that the linuxulator first looks
if /compat/linux/lib/libX.so.y is there, and if it isn't it looks
if /lib/libX.so.y is available.

AFAIR a work around is to add a link
in /compat/linux/usr/lib/librt.so.1 -> /lib/librt.so.1

I want to do something like this in the FC4 port, but hadn't time to do
it and test it so far.

Bye,
Alexander.

-- 
The TV show you've been looking forward to all week
will be preempted.
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-hackers mailing list