mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Mathias Krause <minipli@googlemail.com>
To: musl@lists.openwall.com
Subject: Re: [PATCH] musl-gcc.spec: honour $LIBRARY_PATH / $LPATH
Date: Wed, 22 Feb 2017 22:54:24 +0100	[thread overview]
Message-ID: <20170222215424.GA1153@jig.fritz.box> (raw)
In-Reply-To: <20170222211158.GU1520@brightrain.aerifal.cx>

On Wed, Feb 22, 2017 at 04:11:58PM -0500, Rich Felker wrote:
> On Wed, Feb 22, 2017 at 09:57:05PM +0100, Mathias Krause wrote:
> > To support additional library search paths via $LIBRARY_PATH / $LPATH
> > extend the link_libgcc variable instead of replacing it. The original
> > one will contain the required "%D" to support this.
> > 
> > musl's library path is still the first in the list, so its object files
> > will be found before other paths are taken into account.
> > 
> > Signed-off-by: Mathias Krause <minipli@googlemail.com>
> > ---
> >  tools/musl-gcc.specs.sh |    4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tools/musl-gcc.specs.sh b/tools/musl-gcc.specs.sh
> > index 294e24f75503..819799a6d5a7 100644
> > --- a/tools/musl-gcc.specs.sh
> > +++ b/tools/musl-gcc.specs.sh
> > @@ -10,8 +10,10 @@ cat <<EOF
> >  *cc1:
> >  %(cc1_cpu) -nostdinc -isystem $incdir -isystem include%s
> >  
> > +%rename link_libgcc old_link_libgcc
> > +
> >  *link_libgcc:
> > --L$libdir -L .%s
> > +-L$libdir %(old_link_libgcc)
> 
> I'm pretty sure this is wrong. What are you trying to achieve?

I'm trying to make musl-gcc not break gcc's ability to search for
additional library paths via the LIBRARY_PATH environment variable.

Let me past the relevant section of gcc's manpage:

   LIBRARY_PATH
       The value of LIBRARY_PATH is a colon-separated list of
       directories, much like PATH.  When configured as a native
       compiler, GCC tries the directories thus specified when
       searching for special linker files, if it can't find them
       using GCC_EXEC_PREFIX.  Linking using GCC also uses these
       directories when searching for ordinary libraries for the
       -l option (but directories specified with -L come first).

I'm trying to make use of the "…when searching for ordinary libraries
for the -l option" part.

> The whole point of musl-gcc is to _remove_ any existing library paths
> since, if present, they will cause configure scripts to detect and
> link to incompatible libraries (linked against glibc).

Can you elaborate on this? How would including $LIBRARY_PATH provided
paths break configure scripts? In fact, the way the specs file is now
breaks my use case but I don't want to break yours. :/

> The only library path we want to preserve is the one to libgcc.

Well, the current spec file doesn't achieve this when LIBRARY_PATH is
set in the environment:

$ LIBRARY_PATH=/tmp /tmp/musl/bin/musl-gcc -x c -o /dev/null - <<<'int main(void) { }' -lgcc
/usr/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
$ 

While with my patch applied it does:

$ LIBRARY_PATH=/tmp /tmp/musl/bin/musl-gcc -x c -o /dev/null - <<<'int main(void) { }' -lgcc
$ 


Cheers,
Mathias


  reply	other threads:[~2017-02-22 21:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-22 20:57 Mathias Krause
2017-02-22 21:11 ` Rich Felker
2017-02-22 21:54   ` Mathias Krause [this message]
2017-02-22 22:14     ` Rich Felker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170222215424.GA1153@jig.fritz.box \
    --to=minipli@googlemail.com \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).