Hi all, Please review a trivial change that defines which threading model is used on Windows, so applications can check it. This is also useful for system headers, since some headers should be switched off if pthread is the threading model (Currently they are included unconditionally on Windows). In effect this merely reworks some existing code that defines __USING_MCFGTHREAD__ and adds some new logic to it to define __USING_PTHREAD__ whenever appropriate. Do note that I don't have any write access, so whoever reviews this for me has to help me push it as well. There is a superfluous space that seems to break alignment of backslashes in EXTRA_OS_CPP_BUILTINS added by this change, which seems to be added by git format-patch and is not added by me. Unfortunately I couldn't remove it, so feel free to edit my patch to remove the space before pushing it.
gcc/config/mingw/ChangeLog: * mingw32.h: Add new define for pthread. >From 76eb8f46d815a633dc91f3c6b91c8bd9bbe3b108 Mon Sep 17 00:00:00 2001 From: TheShermanTanker <tanksherma...@gmail.com> Date: Sun, 26 May 2024 16:33:09 +0800 Subject: [PATCH] Define which threading model is in use on Windows Signed-off-by: TheShermanTanker <tanksherma...@gmail.com> --- gcc/config/mingw/mingw32.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/config/mingw/mingw32.h b/gcc/config/mingw/mingw32.h index 08f1b5f0696..6da57aa1b89 100644 --- a/gcc/config/mingw/mingw32.h +++ b/gcc/config/mingw/mingw32.h @@ -34,8 +34,12 @@ along with GCC; see the file COPYING3. If not see | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \ | MASK_MS_BITFIELD_LAYOUT) -#ifndef TARGET_USING_MCFGTHREAD -#define TARGET_USING_MCFGTHREAD 0 +#ifdef TARGET_USING_MCFGTHREAD +#define DEFINE_THREAD_MODEL builtin_define ("__USING_MCFGTHREAD__") +#elif defined(TARGET_USE_PTHREAD_BY_DEFAULT) +#define DEFINE_THREAD_MODEL builtin_define ("__USING_PTHREAD__") +#else +#define DEFINE_THREAD_MODEL ((void) 0) #endif /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS @@ -56,8 +60,7 @@ along with GCC; see the file COPYING3. If not see builtin_define_std ("WIN64"); \ builtin_define ("_WIN64"); \ } \ - if (TARGET_USING_MCFGTHREAD) \ - builtin_define ("__USING_MCFGTHREAD__"); \ + DEFINE_THREAD_MODEL; \ } \ while (0) @@ -190,7 +193,7 @@ along with GCC; see the file COPYING3. If not see #else #define SHARED_LIBGCC_SPEC " -lgcc " #endif -#if TARGET_USING_MCFGTHREAD +#ifdef TARGET_USING_MCFGTHREAD #define MCFGTHREAD_SPEC " -lmcfgthread -lkernel32 -lntdll " #else #define MCFGTHREAD_SPEC "" -- 2.41.0