Date: Sunday, July 8, 2018 @ 14:23:13 Author: foutrelis Revision: 354963
Pull python 3.7 fix from upstream Added: arm-none-eabi-gdb/trunk/fix_python37.patch Modified: arm-none-eabi-gdb/trunk/PKGBUILD --------------------+ PKGBUILD | 8 ++++-- fix_python37.patch | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-07-08 14:22:47 UTC (rev 354962) +++ PKGBUILD 2018-07-08 14:23:13 UTC (rev 354963) @@ -13,14 +13,18 @@ depends=(xz ncurses expat python guile2.0 gdb-common mpfr) optdepends=('stlink: for debugging over STLINK') options=(!emptydirs) -source=(ftp://ftp.gnu.org/gnu/gdb/gdb-$pkgver.tar.xz{,.sig}) +source=(ftp://ftp.gnu.org/gnu/gdb/gdb-$pkgver.tar.xz{,.sig} + fix_python37.patch) sha256sums=('af61a0263858e69c5dce51eab26662ff3d2ad9aa68da9583e8143b5426be4b34' - 'SKIP') + 'SKIP' + '8978e8f926cc051ed8394f006c288fecbe067407ac8a4474cf28b71180a66599') validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') # Joel Brobecker <brobec...@adacore.com> prepare() { cd gdb-$pkgver sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + patch -p1 < ../fix_python37.patch } build() { Added: fix_python37.patch =================================================================== --- fix_python37.patch (rev 0) +++ fix_python37.patch 2018-07-08 14:23:13 UTC (rev 354963) @@ -0,0 +1,66 @@ +From aeab512851bf6ed623d1c6c4305b6ce05e51a10c Mon Sep 17 00:00:00 2001 +From: Paul Koning <paul_kon...@dell.com> +Date: Fri, 8 Jun 2018 13:26:36 -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-08 Paul Koning <paul_kon...@dell.com> + + PR gdb/23252 + + * python/python.c (do_start_initialization): + Avoid call to internal Python API. + (init__gdb_module): New function. +--- + gdb/ChangeLog | 8 ++++++++ + gdb/python/python.c | 18 +++++++++++++++--- + 2 files changed, 23 insertions(+), 3 deletions(-) + +diff --git a/gdb/python/python.c b/gdb/python/python.c +index 1805c906284..20fc674f20a 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