Skip to content

Commit 0881e2d

Browse files
authored
gh-124609: Fix _Py_ThreadId for Windows builds using MinGW (#124663)
1 parent 2e15553 commit 0881e2d

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

Include/Python.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
# include <intrin.h> // __readgsqword()
5656
#endif
5757

58+
#if defined(Py_GIL_DISABLED) && defined(__MINGW32__)
59+
# include <intrin.h> // __readgsqword()
60+
#endif
61+
5862
// Include Python header files
5963
#include "pyport.h"
6064
#include "pymacro.h"

Include/object.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,12 @@ _Py_ThreadId(void)
180180
tid = __readfsdword(24);
181181
#elif defined(_MSC_VER) && defined(_M_ARM64)
182182
tid = __getReg(18);
183+
#elif defined(__MINGW32__) && defined(_M_X64)
184+
tid = __readgsqword(48);
185+
#elif defined(__MINGW32__) && defined(_M_IX86)
186+
tid = __readfsdword(24);
187+
#elif defined(__MINGW32__) && defined(_M_ARM64)
188+
tid = __getReg(18);
183189
#elif defined(__i386__)
184190
__asm__("movl %%gs:0, %0" : "=r" (tid)); // 32-bit always uses GS
185191
#elif defined(__MACH__) && defined(__x86_64__)

Misc/ACKS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,6 +1552,7 @@ Lisa Roach
15521552
Carl Robben
15531553
Ben Roberts
15541554
Mark Roberts
1555+
Tony Roberts
15551556
Andy Robinson
15561557
Izan "TizzySaurus" Robinson
15571558
Jim Robinson
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix ``_Py_ThreadId`` for Windows builds using MinGW. Patch by Tony Roberts.

0 commit comments

Comments
 (0)