summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--patches/gdb-8.1/0001-Fix-build-issue-with-Python-3.7.patch64
-rw-r--r--patches/gdb-8.1/series4
2 files changed, 68 insertions, 0 deletions
diff --git a/patches/gdb-8.1/0001-Fix-build-issue-with-Python-3.7.patch b/patches/gdb-8.1/0001-Fix-build-issue-with-Python-3.7.patch
new file mode 100644
index 0000000..00aae72
--- /dev/null
+++ b/patches/gdb-8.1/0001-Fix-build-issue-with-Python-3.7.patch
@@ -0,0 +1,64 @@
+From: Paul Koning <paul_koning@dell.com>
+Date: Sat, 9 Jun 2018 13:24:34 -0400
+Subject: [PATCH] Fix build issue with Python 3.7
+
+Originally reported in
+https://bugzilla.redhat.com/show_bug.cgi?id=1577396 -- gdb build fails
+with Python 3.7 due to references to a Python internal function whose
+declaration changed in 3.7.
+
+gdb/ChangeLog
+2018-06-09 Paul Koning <paul_koning@dell.com>
+
+ PR gdb/23252
+
+ * python/python.c (do_start_initialization):
+ Avoid call to internal Python API.
+ (init__gdb_module): New function.
+---
+ gdb/python/python.c | 18 +++++++++++++++---
+ 1 file changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/gdb/python/python.c b/gdb/python/python.c
+index 4844c86c5433..bb0a46d8580a 100644
+--- a/gdb/python/python.c
++++ b/gdb/python/python.c
+@@ -1656,6 +1656,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 ()
+ {
+@@ -1696,6 +1707,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
+@@ -1705,9 +1719,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
diff --git a/patches/gdb-8.1/series b/patches/gdb-8.1/series
new file mode 100644
index 0000000..308a4fc
--- /dev/null
+++ b/patches/gdb-8.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Fix-build-issue-with-Python-3.7.patch
+# fce236c2f6a3766d3296426b4b3223b7 - git-ptx-patches magic