Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: <Paul.Koning@dell.com>
To: <palves@redhat.com>
Cc: <sergiodj@redhat.com>, <gdb-patches@sourceware.org>
Subject: Re: [PATCH] fix build failure with Python 3.7
Date: Fri, 01 Jun 2018 13:22:00 -0000	[thread overview]
Message-ID: <44D6B060-1CF8-4285-9723-4EB503618855@dell.com> (raw)
In-Reply-To: <1e718869-7d3d-11f3-1748-d7f34032c8d8@redhat.com>

Ok, here is the patch in its current state.  Ok to commit?

	paul

gdb/ChangeLog:

2018-06-01  Paul Koning  <paul_koning@dell.com>

	* python/python.c (do_start_initialization):
	Avoid call to internal Python API.
	(init__gdb_module): New function.

diff --git a/gdb/python/python.c b/gdb/python/python.c
index c29e7d7a6b..dbd2f1ab2d 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1667,6 +1667,17 @@ finalize_python (void *ignore)
   restore_active_ext_lang (previous_active);
 }
 
+#ifdef IS_PY3K
+/* This is called via the PyImport_AppendInittab mechanism called
+   during initialization, to make the built-in _gdb module known to
+   Python.  */
+PyMODINIT_FUNC
+init__gdb_module (void)
+{
+  return PyModule_Create (&python_GdbModuleDef);
+}
+#endif
+
 static bool
 do_start_initialization ()
 {
@@ -1707,6 +1718,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", init__gdb_module);
 #else
   Py_SetProgramName (progname.release ());
 #endif
@@ -1716,9 +1730,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


  reply	other threads:[~2018-06-01 13:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <96198491-96D8-42F0-9956-1C2BC9277050@dell.com>
2018-05-31 20:45 ` Sergio Durigan Junior
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 [this message]
2018-06-01 13:36             ` Pedro Alves
2018-06-01 13:37               ` Pedro Alves
2018-06-01 13:47                 ` Paul.Koning
     [not found]                   ` <b1db3ded-7053-3d2b-773e-31ecd20efd90@redhat.com>
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=44D6B060-1CF8-4285-9723-4EB503618855@dell.com \
    --to=paul.koning@dell.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --cc=sergiodj@redhat.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox