Quoting Alexander Leidinger (Sun, 2 Dec 2007 10:07:55 +0100):

> Quoting Robert Watson (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?

I forgot something: We also have the linux_dist ports, they install
install into /usr/local/.... They are full distributions and not a
stripped down linux emulation environment. You use them by chroot()ing
into them (or a jail). And when we use the linux ldconfig
in /comapt/linux to update the cached list of libs for linux, we also
chroot into /compat/linux. Naturally there's no /compat/linux after the
chroot. So in the chroot case special handling of the libs is forbidden.


Nothing is faster than the speed of light.

To prove this to yourself, try opening the
refrigerator door before the light comes on.
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
freebsd-emulation@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-emulation-unsubscribe@freebsd.org"