]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-142163: Only define `HAVE_THREAD_LOCAL` when `Py_BUILD_CORE` is set (#142164)
authorPeter Bierma <zintensitydev@gmail.com>
Tue, 2 Dec 2025 04:13:11 +0000 (23:13 -0500)
committerGitHub <noreply@github.com>
Tue, 2 Dec 2025 04:13:11 +0000 (09:43 +0530)
Include/pyport.h
Misc/NEWS.d/next/C_API/2025-12-01-18-17-16.gh-issue-142163.2HiX5A.rst [new file with mode: 0644]

index 97c0e195d198084be6605423f57e8f50dfe1f2ab..61e2317976eed1db97373e4b7ff1a318ffb8612c 100644 (file)
@@ -509,9 +509,15 @@ extern "C" {
 #  define Py_CAN_START_THREADS 1
 #endif
 
-#ifdef WITH_THREAD
-// HAVE_THREAD_LOCAL is just defined here for compatibility's sake
+
+/* gh-142163: Some libraries rely on HAVE_THREAD_LOCAL being undefined, so
+ * we can only define it only when Py_BUILD_CORE is set.*/
+#ifdef Py_BUILD_CORE
+// This is no longer coupled to _Py_thread_local.
 #  define HAVE_THREAD_LOCAL 1
+#endif
+
+#ifdef WITH_THREAD
 #  ifdef thread_local
 #    define _Py_thread_local thread_local
 #  elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__)
diff --git a/Misc/NEWS.d/next/C_API/2025-12-01-18-17-16.gh-issue-142163.2HiX5A.rst b/Misc/NEWS.d/next/C_API/2025-12-01-18-17-16.gh-issue-142163.2HiX5A.rst
new file mode 100644 (file)
index 0000000..5edcfd8
--- /dev/null
@@ -0,0 +1,2 @@
+Fix the ``HAVE_THREAD_LOCAL`` macro being defined without the
+``Py_BUILD_CORE`` macro set after including :file:`Python.h`.