Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 27 Apr 2014 22:54:22 -0700
From: Isaac Dunham <ibid.ag@...il.com>
To: musl@...ts.openwall.com
Subject: Re: [PATCH 2/3] Add soname to dynamic section

On Sun, Apr 27, 2014 at 10:02:45PM -0700, Khem Raj wrote:
> On Sun, Apr 27, 2014 at 7:00 PM, Rich Felker <dalias@...c.org> wrote:
> > This is intentionally omitted. If it exists on a system where glibc is
> > also present, running ldconfig will create a symlink named libc.so in
> > /lib pointing to ld-musl-$ARCH.so.1.
> >
> > What exactly are you trying to achieve by adding it?
> 
> I am bootstrapping system using OpenEmbedded/musl and we use the
> content of SONAME
> to rename the library package as well as shlibs code then uses it to
> for dependencies as well. I kept it libc.so for simplicity but it
> could be a distinct name. Coexisting with glibc is not  my usecase.
> here. but if you have libc.so in /usr/lib then you are in conflict
> with glibc anyway, how do you handle that ?
Default configuration is to set libdir to /usr/local/musl/lib, and
syslibdir to /lib.
ld-musl-$ARCH.so.1 goes in syslibdir; the libc.so symlink is solely used
for dynamic linking and goes in libdir.
Putting libc.so in /usr/lib requires passing --prefix=/usr, as is 
specifically recommended against in INSTALL:
  DO NOT set the prefix to "/usr", "/usr/local", or "/" unless you're
  upgrading libc on an existing musl-based system. Doing so will break
  your system when you run "make install" and it may be difficult to
  recover.

The SONAME used to be in the makefile, but was removed due to people
encountering problems when they ran ldconfig.

For the record, here's the approach I used to fix a Debian system that I
hosed at least twice due to the SONAME causing trouble with ldconfig:
-boot to a busybox ash or other static shell (root=... rw init=/bin/...)
-manually correct the links if glibc is still installed;
otherwise use "busybox dpkg -i /var/cache/apt/archives/..." and check
that libc.so exists.
-sync twice, then reboot.

There are no problems with coxistence caused by the existing approach.

Hope this clarifies things,
Isaac Dunham

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.