mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Rich Felker <dalias@libc.org>
To: musl@lists.openwall.com
Subject: Re: perl native musl, ldd
Date: Thu, 2 Apr 2015 17:26:38 -0400	[thread overview]
Message-ID: <20150402212638.GB6817@brightrain.aerifal.cx> (raw)
In-Reply-To: <551DA936.2070302@safe.ca>

On Thu, Apr 02, 2015 at 04:40:22PM -0400, Jean-Marc Pigeon wrote:
> On 04/02/2015 02:48 PM, u-wsnj@aetey.se wrote:
> > On Thu, Apr 02, 2015 at 02:17:36PM -0400, Jean-Marc Pigeon wrote:
> >>>> bash-4.3# ldd SysV.so
> >>>> 	ldd (0x7f5d60dd2000)
> >>>> 	libc.so => ldd (0x7f5d60dd2000)
> >>>> Error relocating SysV.so: Perl_croak: symbol not found
> >>>> Error relocating SysV.so: Perl_sv_setiv: symbol not found
> >>>> Error relocating SysV.so: Perl_sv_2pv_flags: symbol not found
> >>>> Error relocating SysV.so: Perl_av_store: symbol not found
> >>>> etc.
> > 
> >> I am using a packager using ldd to establish
> >> dependencies list.
> > 
> > I would not say reporting the symbols is a bug, rather that the packager
> > is kind of relying on UB. Is there a specification of how a program called
> > "ldd" shall format its output and which data shall be present?
> > 
> > Rune
> > 
> Packager Relying on ldd UB, sure!.

I think calling this "UB" is a misappropriation of an unrelated term
just to criticize what you're doing. You are relying on a complex
utility that might have OS/libc-specific behavior that doesn't match
your expectations, or that might not even exist on some systems, but
that's not automatically a horrible thing as long as you know your
system(s).

> Using ldd was the best way I found to list one package all
> dependencies (looking at ELF file type ans searching for
> required external components).
> If you have a better way (more standard) to propose not using
> ldd that will be a good thing. idea?

Using readelf (or your own ELF parsing) and looking for the DT_NEEDED
entries would perhaps be a cleaner approach. It would only list direct
dependencies rather than recursive ones and it would not depend on
running target code (i.e. it would work equally well with
cross-compiled packages).

Of course this does not cover all dependencies (non-library things)
but it at least automates a large part of the dependency tracking
process.

Rich


  parent reply	other threads:[~2015-04-02 21:26 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02 15:53 Jean-Marc Pigeon
2015-04-02 16:18 ` Rich Felker
2015-04-02 18:17   ` Jean-Marc Pigeon
2015-04-02 18:48     ` u-wsnj
2015-04-02 20:40       ` Jean-Marc Pigeon
2015-04-02 20:48         ` Laurent Bercot
2015-04-02 21:08         ` Nathan McSween
2015-04-02 21:09         ` u-wsnj
2015-04-02 21:26         ` Rich Felker [this message]
2015-04-02 21:34         ` Szabolcs Nagy
2015-04-03  0:57           ` Jean-Marc Pigeon
2015-04-03  1:18             ` bug? in musl libc failed to preserve ownership for Jean-Marc Pigeon
2015-04-03  2:15               ` 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=20150402212638.GB6817@brightrain.aerifal.cx \
    --to=dalias@libc.org \
    --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).