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
next prev 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).