public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Kevin Buettner <kevinb@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gdb] gdb-17.2-rebase-f44: Fix build breakage of gdb/python/python.c due to use of deprecated
Date: Sat, 27 Jun 2026 23:59:58 GMT	[thread overview]
Message-ID: <178260479834.1.156047123278525886.rpms-gdb-c54196c27ba9@fedoraproject.org> (raw)

          A new commit has been pushed.

          Repo   : rpms/gdb
          Branch : gdb-17.2-rebase-f44
          Commit : c54196c27ba96d868b8c9314df12a089f2d31fa6
          Author : Kevin Buettner <kevinb@redhat.com>
          Date   : 2020-04-16T05:49:13-07:00
          Stats  : +80/-1 in 5 file(s)
          URL    : https://src.fedoraproject.org/rpms/gdb/c/c54196c27ba96d868b8c9314df12a089f2d31fa6?branch=gdb-17.2-rebase-f44

          Log:
          Fix build breakage of gdb/python/python.c due to use of deprecated
Python function (RHBZ 1822715, Kevin Buettner)

---
diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include
index 8f81947..1d8ffd9 100644
--- a/_gdb.spec.Patch.include
+++ b/_gdb.spec.Patch.include
@@ -397,3 +397,6 @@ Patch097: gdb-rhbz1553104-s390x-arch12-test.patch
 # Fix int conversion error from bfd/elf.c when compiling with gcc 10
 Patch098: gdb-rhbz1818011-bfd-gcc10-error.patch
 
+# Backport fix for deprecation of PyEval_InitThreads in Python 3.9.
+Patch099: gdb-rhbz1822715-fix-python-deprecation.patch
+

diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include
index b089bb1..dddd45a 100644
--- a/_gdb.spec.patch.include
+++ b/_gdb.spec.patch.include
@@ -96,3 +96,4 @@
 %patch096 -p1
 %patch097 -p1
 %patch098 -p1
+%patch099 -p1

diff --git a/_patch_order b/_patch_order
index 16cee99..a4377d5 100644
--- a/_patch_order
+++ b/_patch_order
@@ -96,3 +96,4 @@ gdb-archer.patch
 gdb-vla-intel-fix-print-char-array.patch
 gdb-rhbz1553104-s390x-arch12-test.patch
 gdb-rhbz1818011-bfd-gcc10-error.patch
+gdb-rhbz1822715-fix-python-deprecation.patch

diff --git a/gdb-rhbz1822715-fix-python-deprecation.patch b/gdb-rhbz1822715-fix-python-deprecation.patch
new file mode 100644
index 0000000..6d7c10b
--- /dev/null
+++ b/gdb-rhbz1822715-fix-python-deprecation.patch
@@ -0,0 +1,70 @@
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Kevin Buettner <kevinb@redhat.com>
+Date: Thu, 16 Apr 2020 05:27:26 -0700
+Subject: gdb-rhbz1822715-fix-python-deprecation.patch
+
+;; Backport fix for deprecation of PyEval_InitThreads in Python 3.9.
+
+Fix compilation of python/python.c for Python 3.9
+
+This commit fixes a compilation warning/error when building GDB
+with Python 3.9:
+
+g++ -x c++  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -DDNF_DEBUGINFO_INSTALL   -I. -I../../gdb -I../../gdb/config -DLOCALEDIR="\"/usr/share/locale\"" -DHAVE_CONFIG_H -I../../gdb/../include/opcode   -I../bfd -I../../gdb/../bfd -I../../gdb/../include -I../libdecnumber -I../../gdb/../libdecnumber  -I../../gdb/../gnulib/import -I../gnulib/import  -DTUI=1    -I/usr/include/guile/2.0 -pthread  -I/usr/include/python3.9 -I/usr/include/python3.9  -I../../gdb/.. -pthread -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3 -Wduplicated-cond -Wshadow=local -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wformat -Wformat-nonliteral -Wno-unused -Werror -c -o ser-tcp.o -MT ser-tcp.o -MMD -MP -MF ./.deps/ser-tcp.Tpo ../../gdb/ser-tcp.c
+../../gdb/python/python.c: In function 'bool do_start_initialization()':
+../../gdb/python/python.c:1621:23: error: 'void PyEval_InitThreads()' is deprecated [-Werror=deprecated-declarations]
+ 1621 |   PyEval_InitThreads ();
+      |                       ^
+In file included from /usr/include/python3.9/Python.h:141,
+                 from ../../gdb/python/python-internal.h:86,
+                 from ../../gdb/python/python.c:92:
+/usr/include/python3.9/ceval.h:132:37: note: declared here
+  132 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
+      |                                     ^~~~~~~~~~~~~~~~~~
+
+Information about the deprecated function can be found here:
+
+https://docs.python.org/3.9/whatsnew/3.9.html#deprecated
+
+Specifically, with regard to PyEval_InitThreads(), it says:
+
+    The PyEval_InitThreads() and PyEval_ThreadsInitialized() functions
+    are now deprecated and will be removed in Python 3.11.  Calling
+    PyEval_InitThreads() now does nothing.  The GIL is initialized by
+    Py_Initialize() since Python 3.7.  (Contributed by Victor Stinner
+    in bpo-39877.)
+
+I chose to disable the call with a #if test using PY_VERSION_HEX.
+There is precedent for use of PY_VERSION_HEX; it's used in two places
+in python-internal.h.  I noticed that under certain circumstances
+python-internal.h defines PyEval_InitThreads to be nothing, which
+accomplishes the same thing.  I considered doing something similar for
+this case, but decided against it because, at some point in the future,
+the presence of PyEval_InitThreads() without some explanation will be
+confusing to a reader who won't be able to find PyEval_InitThreads in
+the current (future for us) Python API.  IMO, use of the #if along
+with an accompanying comment seemed more straightforward.
+
+gdb/ChangeLog:
+
+	* python/python.c (do_start_initialization): Don't call
+	PyEval_InitThreads for Python 3.9 and beyond.
+
+Change-Id: I0679fc10b6b76761a99538568f13188c6d8014e0
+
+diff --git a/gdb/python/python.c b/gdb/python/python.c
+--- a/gdb/python/python.c
++++ b/gdb/python/python.c
+@@ -1618,7 +1618,12 @@ do_start_initialization ()
+ #endif
+ 
+   Py_Initialize ();
++#if PY_VERSION_HEX < 0x03090000
++  /* PyEval_InitThreads became deprecated in Python 3.9 and will
++     be removed in Python 3.11.  Prior to Python 3.7, this call was
++     required to initialize the GIL.  */
+   PyEval_InitThreads ();
++#endif
+ 
+ #ifdef IS_PY3K
+   gdb_module = PyImport_ImportModule ("_gdb");

diff --git a/gdb.spec b/gdb.spec
index 8afe97c..847c19f 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -35,7 +35,7 @@ Version: 9.1
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 5%{?dist}
+Release: 6%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
 # Do not provide URL for snapshots as the file lasts there only for 2 days.
@@ -1155,6 +1155,10 @@ fi
 %endif
 
 %changelog
+* Thu Apr 16 2020 Kevin Buettner <kevinb@redhat.com> - 9.1-6
+- Fix build breakage of gdb/python/python.c due to use of deprecated
+  Python function (RHBZ 1822715, Kevin Buettner)
+
 * Wed Apr 08 2020 Kevin Buettner <kevinb@redhat.com> - 9.1-5
 - Fix build breakage when compiling bfd/elf.c with gcc 10. (RHBZ 1818011,
   H.J. Lu)

                 reply	other threads:[~2026-06-27 23:59 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=178260479834.1.156047123278525886.rpms-gdb-c54196c27ba9@fedoraproject.org \
    --to=kevinb@redhat.com \
    --cc=git-commits@fedoraproject.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