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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812041650.IAA02119>