Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 1 Jun 2015 14:58:28 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] Allow different paths for static and shared
 libraries

On Mon, Jun 01, 2015 at 03:41:28PM -0300, Ismael Luceno wrote:
> On Sun, 31 May 2015 21:27:25 -0400
> Rich Felker <dalias@...c.org> wrote:
> > On Sun, May 31, 2015 at 06:51:42PM -0300, Ismael Luceno wrote:
> > > On Sun, 31 May 2015 12:30:34 -0400
> > > Rich Felker <dalias@...c.org> wrote:
> > > > On Sun, May 31, 2015 at 06:10:54AM -0300, Ismael Luceno wrote:
> > > > > On Sun, 31 May 2015 03:31:57 -0400
> > > > > Rich Felker <dalias@...c.org> wrote:
> > > > > > On Sun, May 31, 2015 at 04:24:25AM -0300, Ismael Luceno wrote:
> > > > > > > Signed-off-by: Ismael Luceno <ismael@...ev.co.uk>
> > > > > > > ---
> > > > > > >  Makefile  | 5 ++++-
> > > > > > >  configure | 3 +++
> > > > > > >  2 files changed, 7 insertions(+), 1 deletion(-)
> > > > > > > [...]
> > > > > > 
> > > > > > Is there a motivation/intended-usage-case for this patch?
> > > > > 
> > > > > libc.so must be available at boot, while the static libraries
> > > > > don't need to, so installing to different paths comes useful.
> > > > 
> > > > In that case I think you're not looking for the semantics of
> > > > slibdir but rather using it as a mechanism to make ldso available
> > > > before libdir is mounted.
> > > > 
> > > > Note that having libc.so and libc.a in different dirs is very
> > > > problematic/dangerous at linking time. If the dir containing
> > > > libc.a is searched first, then it will get linked into
> > > > dynamic-linked binaries and very bad things will happen.
> > > > 
> > > > I think this is probably yet another case of wanting ldso to be
> > > > the canonical file and libc.so to be a symlink to it (reversing
> > > > symlink direction). This issue has come up many times before but
> > > > I always forget how it was resolved (or not) and why nothing
> > > > changed...
> > > 
> > > A ld script in place of libc.so, containing "GROUP ( /lib/libc.so
> > > )", would workaround that.
> > 
> > Are you sure? I think that would result in a dependency for
> > "/lib/libc.so" getting put in the binary rather than one for
> > "libc.so", and that's also a serious bug.
> 
> That's what glibc does. Hmm...

Indeed. I suppose the path part of the pathname there is ignored when
producing DT_NEEDED records, then, or else something else weird is
going on with glibc -- perhaps the SONAME in glibc forces the path to
be removed and the whole pathname replaced with the SONAME?

In any case I don't think this is the right solution for the problem
at hand.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.