From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2901 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: musl vs. Debian policy Date: Sat, 9 Mar 2013 22:29:56 -0500 Message-ID: <20130310032956.GC20323@brightrain.aerifal.cx> References: <20130306152913.59b2e776.idunham@lavabit.com> <20130307130424.GW20323@brightrain.aerifal.cx> <87r4jr6pm3.fsf@gmail.com> <20130308004118.GX20323@brightrain.aerifal.cx> <8762117wlk.fsf@gmail.com> <20130309012712.GB20323@brightrain.aerifal.cx> <87mwuc5ob2.fsf@gmail.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1362886210 5014 80.91.229.3 (10 Mar 2013 03:30:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 10 Mar 2013 03:30:10 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2902-gllmg-musl=m.gmane.org@lists.openwall.com Sun Mar 10 04:30:34 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UEWy1-0007S6-Gx for gllmg-musl@plane.gmane.org; Sun, 10 Mar 2013 04:30:33 +0100 Original-Received: (qmail 3987 invoked by uid 550); 10 Mar 2013 03:30:09 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 3977 invoked from network); 10 Mar 2013 03:30:09 -0000 Content-Disposition: inline In-Reply-To: <87mwuc5ob2.fsf@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:2901 Archived-At: On Sat, Mar 09, 2013 at 09:08:17PM +0100, Christian Neukirchen wrote: > Rich Felker writes: > > > On Fri, Mar 08, 2013 at 04:13:59PM +0100, Christian Neukirchen wrote: > >> >> In this case, could we also change the SONAME of the library itself to > >> >> something not libc.so? It would avoid this "bogus" warning of glibc > >> >> ldconfig... > >> > > >> > No, this is a lot more problematic and I see no benefits. For each > >> > possible SONAME musl may have been linked by, musl must contain a > >> > special-case to refuse to load this SONAME when it appears in > >> > DT_NEEDED. "libc.so" is a name that should never appear elsewhere. I > >> > don't want to keep expanding this list of names, and of course > >> > programs linked using a new SONAME would be gratuitously incompatible > >> > with an older musl ld.so that didn't have the new name included in its > >> > refuse-to-load list. > >> > >> ld-musl-x86_64.so shouldn't appear elsewhere either. > > > > Yes and no. Formally, libc.so is in a sort of reserved namespace (or > > at least, -lc is), whereas there's nothing "reserved" about the name > > ld-musl-$(ARCH).so.1. I agree this is fairly irrelevant however as > > nobody else is going to use that library name unless they're trying to > > break things. > > > >> >> ldconfig: /usr/lib/libc.so is not a symbolic link > >> > > >> > IIRC this is happening due to some other misconfiguration. If nothing > >> > else, it means glibc and musl were both installed in /usr/lib, or > >> > ldconfig is configured for the wrong paths (since ldconfig has nothing > >> > to do with musl). > >> > >> This happens because /lib/ld-musl-x86_64.so.1 has a SONAME of libc.so > >> (which should be the correct place). The message is not harmful, but > >> annoying. > > > > Well the message should never happen unless ldconfig is processing the > > directory containing libc.so, right? It doesn't happen for me on > > Debian when I have musl's ld-musl-i386.so.1 in /lib and ldconfig > > processes the default library path. > > That is weird... > > stat("/usr/lib/libc.so", {st_mode=S_IFREG|0644, st_size=255, ...}) = 0 > stat("/usr/lib/ld-musl-x86_64.so.1", {st_mode=S_IFREG|0755, st_size=583007, ...}) = 0 > lstat("/usr/lib/libc.so", {st_mode=S_IFREG|0644, st_size=255, ...}) = 0 > .... glibc printf crap ... > write(2, "ldconfig: ", 10ldconfig: ) = 10 > write(2, "/usr/lib/libc.so is not a symbol"..., 40/usr/lib/libc.so is not a symbolic link > > Note that /usr/lib/libc.so is a glibc file containing an ld script here. > > If I remove /usr/lib/ld-musl-x86_64.so.1, the message goes away. > > But I think it also had something to do with > lrwxrwxrwx 1 root root 7 Jan 27 08:29 lib -> usr/lib/ > > I thought the issue was that it found ld-musl-x86_64.so.1 and tried to > ensure libc.so points to it, due to the SONAME. OK, I think we've found something nasty: on your system this warning is happening because /usr/lib and /lib are the same directory. On my system, /lib/libc.so is being silently created by ldconfig, pointing to ld-musl. The latter behavior is much worse; it could cause -lc to try to pull in musl, depending on the library path order. I'm working on a fix. Rich