Linux executable picks up FreeBSD library over linux one and breaks

Alexander Leidinger Alexander at Leidinger.net
Sun Dec 2 01:09:08 PST 2007


Quoting Robert Watson <rwatson at FreeBSD.org> (Sat, 1 Dec 2007 23:01:46 +0000 (GMT)):

> 
> On Sat, 1 Dec 2007, Alexander Leidinger wrote:
> 
> > 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.
> 
> It sounds like the real problem is that there are some cases where we don't 
> want the Linuxulator to merge the underlying and Linux views of the file 
> system -- we don't want the union of /compat/linux/lib and /lib, we just want 
> /compat/linux/lib?

Yes.

I already thought a little bit of special case /lib, /usr/lib
and /usr/local/lib in the kernel. This doesn't catch all cases (e.g.,
LD_LIBRARY_PATH), produces false positives (in case there's some kind
of config file in lib which we want to fall through to the FreeBSD one
(if the FreeBSD one is not moved to a different place by the
corresponding port; I don't remember such a file, but we have such
files in other places)) and looks like a hack to me.

Another idea is to special case libs (I didn't think much about this
yet), but how to detect libs? Do we look for ^lib.*\.so{,\.[0-9]?}$,
will this produce false positives, do we have to special case other
files too (lib.*\.la), are there other ways of detecting a lib?

Bye,
Alexander.

-- 
Very few things happen at the right time, and the rest do not happen
at all.  The conscientious historian will correct these defects.
		-- Herodotus
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