$OpenBSD: patch-gdb_python_python_c,v 1.1 2019/10/31 22:19:48 kn Exp $

"Fix build issue with Python 3.7"; git: aeab512851bf6ed623d1c6c4305b6ce05e51a10c

Index: gdb/python/python.c
--- gdb/python/python.c.orig
+++ gdb/python/python.c
@@ -1622,7 +1622,18 @@ 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
+#endif
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
 extern initialize_file_ftype _initialize_python;
@@ -1743,6 +1754,9 @@ message == an error message without a stack will be pr
      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);
 #endif
@@ -1752,9 +1766,7 @@ message == an error message without a stack will be pr
   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
