From: Terry Guo <flameroc@gmail.com>
To: Paul_Koning@dell.com
Cc: tim@krieglstein.org, gdb@sourceware.org,
Antonio Cavallo <a.cavallo@cavallinux.eu>
Subject: Re: Is it possible to statically link python into gdb?
Date: Wed, 25 Jun 2014 01:47:00 -0000 [thread overview]
Message-ID: <CAGbRaL5VBbF448=wmQ7mZdFirY6jv7dZ3f34uhNt1X-JAa6LxA@mail.gmail.com> (raw)
In-Reply-To: <214EDCB8-BEE1-4E6D-801E-D57B46AD7424@dell.com>
On Mon, Jun 23, 2014 at 11:48 PM, <Paul_Koning@dell.com> wrote:
>
> On Jun 23, 2014, at 9:49 AM, Tim Sander <tim@krieglstein.org> wrote:
>
>> Hi Terry
>>> I am trying to build a gdb with python support which doesn't depend on
>>> system python at all. I can manage to build python into static library
>>> like libpython2.7.a, then I can see that this static library is linked
>>> into gdb. With command ldd, there is no libpython dependence in final
>>> gdb. So far all good. But when run this gdb on another machine, I ran
>>> into below errors and gdb can't be initiated:
>>>
>>> Could not find platform independent libraries <prefix>
>>> Could not find platform dependent libraries <exec_prefix>
>>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
>>>
>>> I am working on Ubuntu x86 machines with gdb from master branch and
>>> Python 2.7. Could some one please help me? Thanks in advance.
>> I don't know much about python but might it be that you need the *.py files
>> of PYTHONHOME/lib nevertheless to get a running python interpreter?
>
> I assume you’d need at least a couple, for the standard Python startup machinery to work. Some of that can be suppressed when Python is involved by a command; I assume this can also be done when Python is embedded.
>
> Note also that a lot of Python modules are not just .py files but also .so files or equivalent.
>
> paul
Hi folks,
Very appreciate your help. Indeed the python that is statically linked
into gdb needs other modules to run correctly. I now worked around
this issue by following steps:
1). build and install python 2.7 in dynamic way (produced the
libpython2.7.so instead of libpython2.7.a). This python is installed
to my own path instead of system path.
2). unset the variable PYTHONHOME and then export
PYTHONHOME=MY-OWN-PATH:/usr, then configure, build and install gdb.
3). now copy the gdb to other machine, everything works fine. The only
requirement is user will need to install libpython2.7 in their
machine.
I admit that I have to make a compromise here. I am delivering gdb to
my customer and my expectation is that they can use my gdb with python
support no matter there is python in their system and no matter the
version of their installed python. After a lot of attempts, I think I
can't reach my expectation. I guess I have to live with my above
workaround.
BR,
Terry
next prev parent reply other threads:[~2014-06-25 1:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-21 3:01 Terry Guo
2014-06-23 13:49 ` Tim Sander
2014-06-23 15:48 ` Paul_Koning
2014-06-25 1:47 ` Terry Guo [this message]
2014-06-25 8:32 ` OT: " Tim Sander
2014-06-25 9:00 ` Terry Guo
2014-06-25 14:37 ` Joel Brobecker
2014-06-25 14:58 ` Hector Oron
2014-06-25 15:17 ` Joel Brobecker
2014-06-25 15:29 ` Hector Oron
2014-07-01 17:00 ` Tom Tromey
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='CAGbRaL5VBbF448=wmQ7mZdFirY6jv7dZ3f34uhNt1X-JAa6LxA@mail.gmail.com' \
--to=flameroc@gmail.com \
--cc=Paul_Koning@dell.com \
--cc=a.cavallo@cavallinux.eu \
--cc=gdb@sourceware.org \
--cc=tim@krieglstein.org \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox