From: "writeonce@midipix.org" <writeonce@midipix.org>
To: musl@lists.openwall.com
Subject: Re: static musl-based gdb and -fPIC
Date: Tue, 29 Apr 2014 23:26:56 -0400 [thread overview]
Message-ID: <53606D80.4070803@midipix.org> (raw)
In-Reply-To: <20140430025752.GE26358@brightrain.aerifal.cx>
On 04/29/2014 10:57 PM, Rich Felker wrote:
> On Tue, Apr 29, 2014 at 05:40:06PM -0400, writeonce@midipix.org wrote:
>> I built a static gdb (v7.7, passing --disable-gdbserver to
>> configure) and _thought_ that everything was fine. Then I checked
>> the build logs and saw that gdb refused to use the present libexpat,
>> libncurses/tinfo, and libpython. In the case of expat, at least,
>> the "solution" was easy, albeit unacceptable: temporarily break my
>> local system by renaming libexpat.so (so that gdb cannot find it).
>> But for ncurses and python that didn't work.
>>
>> It appears that expat is passed to the linker as a full path
>> (/full/path/to/libexpat.so) rather than normally (-lexpat), which
>> makes the whole thing break since there is no way to request a
>> static expat instead. Note, however, that this problem is not
>> musl-specific
>> (https://sourceware.org/ml/crossgcc/2013-06/msg00003.html).
> It's not clear at all to me from your email or from the linked thread
> who the passer in "is passed" might be. Is this something broken in
> gdb's build script, or expat's pkg-config or similar, or ct-ng, or
> something else?
Pardon. The expat pkg-config file (expat.pc) is fine. It is the gdb
script that passes /full/path/to/libexpat.so to the linker, which then
complains about an attempt to statically link a dynamic library. As far
as I can tell the problem is somewhere in the configure script under the
gdb sub-directory.
>
>> At this point I am no longer seeking a solution (unless you have one
>> ready), but thought I should share this for the record. As an
>> aside, it looks like the static python interpreter is missing some
>> modules as well (see, for instance,
>> https://trac.torproject.org/projects/tor/ticket/7557).
> Static python is not very useful since most important python
> extensions are partly implemented as C code, which necessarily must be
> dynamically loaded.
>
> Rich
>
>
The purpose of building a static python was to make a static libpython.a
available for gdb. Given the loss of functionality on both the python
and gdb ends, it might be better to leave the two dynamically linked as
they were meant to be...
zg
next prev parent reply other threads:[~2014-04-30 3:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-20 17:03 writeonce
2014-04-20 20:29 ` writeonce
2014-04-20 20:31 ` Rich Felker
2014-04-20 21:39 ` writeonce
2014-04-21 7:33 ` Szabolcs Nagy
2014-04-21 8:21 ` Szabolcs Nagy
2014-04-21 11:16 ` writeonce
2014-04-21 11:16 ` writeonce
2014-04-29 21:40 ` writeonce
2014-04-30 2:57 ` Rich Felker
2014-04-30 3:26 ` writeonce [this message]
2014-04-30 4:07 ` Rich Felker
2014-04-30 4:29 ` Zvi Gilboa
2014-05-22 20:14 ` John Spencer
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=53606D80.4070803@midipix.org \
--to=writeonce@midipix.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).