Date: Fri, 4 Dec 1998 08:50:13 -0800 (PST) From: John Polstra <jdp@polstra.com> To: aa8vb@pagesz.net Cc: current@FreeBSD.ORG Subject: Re: "ldconfig" strangeness on 3.0-RELEASE Message-ID: <199812041650.IAA02119@vashon.polstra.com> In-Reply-To: <19981129102800.A1657@pagesz.net>
index | next in thread | previous in thread | raw e-mail
In article <19981129102800.A1657@pagesz.net>,
Randall Hopper <aa8vb@pagesz.net> wrote:
> Two things I notice that are rather strange. Are these bugs?
> 1) You can completely re-initialize the LD path for ELF, but not for AOUT.
> An example to illustrate:
...
> It seems that ldconfig won't let you remove /usr/lib/aout. Why?
They dynamic linkers always search in the standard directory
(/usr/lib/aout for a.out, /usr/lib for ELF) as a last resort, no
matter what the ldconfig hints file says. I suppose the a.out
ldconfig adds /usr/lib/aout automatically to make that search go
faster. It also makes "ldconfig -r" tell the whole story about
where shared libraries will be found.
Probably the ELF ldconfig should do the same thing. It wouldn't help
efficiency-wise for ELF. But it would make the "ldconfig -r" listing
reflect reality better.
> 2) In /etc/rc.conf, we have:
>
> $ldconfig_paths & $ldconfig_paths_aout
>
> but we also have:
>
> /etc/ld.so.conf & /etc/ld-elf.so.conf
>
> (as documented in the ldconfig(8) man page) as places to store LD paths.
The man page is wrong. We don't have any such files as ld.so.conf,
as far as I know. Richard Kuhns has been revising the man page, so
hopefully it will become more accurate soon.
> 3) Why aren't these two directories in the default $ldconfig_paths_aout (AOUT)
> in /etc/rc.conf? AFAIK, they're all AOUT:
>
> /usr/lib/aout /usr/lib/compat
/usr/lib/aout is added automatically by /etc/rc. Regarding
/usr/lib/compat: it is _not_ a.out on an ELF system. On an ELF
system, a.out compat libraries are in /usr/lib/compat/aout.
Also, your rc.conf file may be out of date. The current version in
/usr/src/etc says:
ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib"
ldconfig_paths_aout="/usr/lib/compat/aout /usr/X11R6/lib/aout /usr/local/lib/aout"
>
> 4) Why is this directory in the default $ldconfig_paths (ELF)? It's all AOUT:
>
> /usr/lib/compat
No, it's all ELF on an ELF system. At least, it's supposed to be.
Didn't "make move-aout-libs" move the a.out libraries down into
/usr/lib/compat/aout when you ran it?
John
--
John Polstra jdp@polstra.com
John D. Polstra & Co., Inc. Seattle, Washington USA
"Nobody ever went broke underestimating the taste of the American public."
-- H. L. Mencken
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812041650.IAA02119>
