[3.13] gh-124609: Fix _Py_ThreadId for Windows builds using MinGW (GH-124663) (#124698)

gh-124609: Fix _Py_ThreadId for Windows builds using MinGW (GH-124663)
(cherry picked from commit 0881e2d3b1)

Co-authored-by: Tony Roberts <tony@pyxll.com>
This commit is contained in:
Miss Islington (bot) 2024-09-27 21:58:36 +02:00 committed by GitHub
parent cf98f39103
commit 4618c0e5e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 12 additions and 0 deletions

View File

@ -55,6 +55,10 @@
# include <intrin.h> // __readgsqword()
#endif
#if defined(Py_GIL_DISABLED) && defined(__MINGW32__)
# include <intrin.h> // __readgsqword()
#endif
// Include Python header files
#include "pyport.h"
#include "pymacro.h"

View File

@ -247,6 +247,12 @@ _Py_ThreadId(void)
tid = __readfsdword(24);
#elif defined(_MSC_VER) && defined(_M_ARM64)
tid = __getReg(18);
#elif defined(__MINGW32__) && defined(_M_X64)
tid = __readgsqword(48);
#elif defined(__MINGW32__) && defined(_M_IX86)
tid = __readfsdword(24);
#elif defined(__MINGW32__) && defined(_M_ARM64)
tid = __getReg(18);
#elif defined(__i386__)
__asm__("movl %%gs:0, %0" : "=r" (tid)); // 32-bit always uses GS
#elif defined(__MACH__) && defined(__x86_64__)

View File

@ -1550,6 +1550,7 @@ Lisa Roach
Carl Robben
Ben Roberts
Mark Roberts
Tony Roberts
Andy Robinson
Jim Robinson
Yolanda Robla

View File

@ -0,0 +1 @@
Fix ``_Py_ThreadId`` for Windows builds using MinGW. Patch by Tony Roberts.