From: Sergio Durigan Junior <sergiodj@redhat.com>
To: <Paul.Koning@dell.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] fix build failure with Python 3.7
Date: Thu, 31 May 2018 20:45:00 -0000 [thread overview]
Message-ID: <87fu27fux2.fsf@redhat.com> (raw)
In-Reply-To: <96198491-96D8-42F0-9956-1C2BC9277050@dell.com> (Paul Koning's message of "Thu, 31 May 2018 17:12:14 +0000")
On Thursday, May 31 2018, Paul Koning wrote:
> This cures PR gdb/33470, build failure due to calling an internal
> API in Python that changed in V3.7. The code now uses the
> "inittab" mechanism in Python, which is the approved way to
> make compiled-in modules known to Python.
>
> Gdb starts properly and I can see the _gdb module. On my test
> system (a Mac) it's hard to get gdb to run at all, so the
> test suite is a bit problematic. What other tests are needed?
Thanks for the patch, Paul. I'll run this on BuildBot and see what
comes out of it. Meanwhile...
> paul
>
> gdb/ChangeLog:
>
> 2018-05-31 Paul Koning <paul_koning@dell.com>
>
> PR gdb/33470
This bug number is actually from Python's bugzilla, not GDB's. So it's
not correct to mention it here in the ChangeLog/commit message. AFAIK,
there's no correspondent GDB bug filed for this issue.
> * python/python.c (do_start_initialization):
> Avoid call to internal Python API.
> (PyInit__gdb): New function.
>
> diff --git a/gdb/python/python.c b/gdb/python/python.c
> index c29e7d7a6b..89443aee25 100644
> --- a/gdb/python/python.c
> +++ b/gdb/python/python.c
> @@ -1667,6 +1667,14 @@ finalize_python (void *ignore)
> restore_active_ext_lang (previous_active);
> }
>
> +#ifdef IS_PY3K
> +PyMODINIT_FUNC
> +PyInit__gdb (void)
> +{
> + return PyModule_Create (&python_GdbModuleDef);
> +}
> +#endif
I think it's a good idea to add a comment to this function.
> +
> static bool
> do_start_initialization ()
> {
> @@ -1707,6 +1715,9 @@ do_start_initialization ()
> remain alive for the duration of the program's execution, so
> it is not freed after this call. */
> Py_SetProgramName (progname_copy);
> +
> + /* Define _gdb as a built-in module. */
> + PyImport_AppendInittab ("_gdb", PyInit__gdb);
> #else
> Py_SetProgramName (progname.release ());
> #endif
> @@ -1716,9 +1727,7 @@ do_start_initialization ()
> PyEval_InitThreads ();
>
> #ifdef IS_PY3K
> - gdb_module = PyModule_Create (&python_GdbModuleDef);
> - /* Add _gdb module to the list of known built-in modules. */
> - _PyImport_FixupBuiltin (gdb_module, "_gdb");
> + gdb_module = PyImport_ImportModule ("_gdb");
> #else
> gdb_module = Py_InitModule ("_gdb", python_GdbMethods);
> #endif
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
next prev parent reply other threads:[~2018-05-31 20:10 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-31 18:20 Paul.Koning
2018-05-31 20:45 ` Sergio Durigan Junior [this message]
2018-05-31 21:25 ` Paul.Koning
2018-06-01 1:27 ` Tom Tromey
2018-06-01 11:58 ` Phil Muldoon
[not found] ` <87d0xb34jw.fsf@redhat.com>
2018-06-01 11:56 ` Phil Muldoon
2018-06-01 12:16 ` Pedro Alves
2018-06-01 12:54 ` Paul.Koning
2018-06-01 13:10 ` Pedro Alves
2018-06-01 13:22 ` Paul.Koning
2018-06-01 13:36 ` Pedro Alves
2018-06-01 13:37 ` Pedro Alves
2018-06-01 13:47 ` Paul.Koning
2018-06-08 14:35 ` Pedro Alves
2018-06-08 14:37 ` Paul.Koning
2018-06-08 14:55 ` Pedro Alves
2018-06-08 17:36 ` Paul.Koning
2018-06-09 0:26 ` Sergio Durigan Junior
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=87fu27fux2.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=Paul.Koning@dell.com \
--cc=gdb-patches@sourceware.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).