[Openmp-commits] [openmp] [OpenMP] Don't hardcode _WIN32_WINNT for MinGW targets (PR #115708)

Martin Storsjö via Openmp-commits openmp-commits at lists.llvm.org
Mon Nov 11 03:43:39 PST 2024


https://github.com/mstorsjo created https://github.com/llvm/llvm-project/pull/115708

Instead respect what the toolchain default is (or what the user sets via CMAKE_CXX_FLAGS).

This fixes builds with libcxx, with mingw toolchains targeting msvcrt.dll, after 5d8be4c036aa5ce4a94f1f37a9155d5c877e23db; after that commit, the libcxx public headers reference symbols such as iswspace_l, which are unavailable when targeting msvcrt.dll on older versions of Windows (it's only available in msvcrt.dll since Windows Vista).

>From 2fb730db929d0f74107138444c21cb5339d9d18f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
Date: Mon, 11 Nov 2024 13:32:50 +0200
Subject: [PATCH] [OpenMP] Don't hardcode _WIN32_WINNT for MinGW targets

Instead respect what the toolchain default is (or what the user
sets via CMAKE_CXX_FLAGS).

This fixes builds with libcxx, with mingw toolchains targeting
msvcrt.dll, after 5d8be4c036aa5ce4a94f1f37a9155d5c877e23db; after
that commit, the libcxx public headers reference symbols such as
iswspace_l, which are unavailable when targeting msvcrt.dll on
older versions of Windows (it's only available in msvcrt.dll
since Vista).
---
 openmp/runtime/cmake/LibompDefinitions.cmake | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/openmp/runtime/cmake/LibompDefinitions.cmake b/openmp/runtime/cmake/LibompDefinitions.cmake
index 1d8a88966d9393..c85e15323e0ee4 100644
--- a/openmp/runtime/cmake/LibompDefinitions.cmake
+++ b/openmp/runtime/cmake/LibompDefinitions.cmake
@@ -16,7 +16,12 @@ function(libomp_get_definitions_flags cppflags)
     libomp_append(cppflags_local "-D _CRT_SECURE_NO_DEPRECATE")
     libomp_append(cppflags_local "-D _WINDOWS")
     libomp_append(cppflags_local "-D _WINNT")
-    libomp_append(cppflags_local "-D _WIN32_WINNT=0x0501")
+    if (MSVC)
+      # Force a default target OS version with MSVC based toolchains.
+      # (For MinGW based ones, use the toolchain's default target or what
+      # the user set in CMake flags.)
+      libomp_append(cppflags_local "-D _WIN32_WINNT=0x0501")
+    endif()
     libomp_append(cppflags_local "-D _USRDLL")
     libomp_append(cppflags_local "-D _ITERATOR_DEBUG_LEVEL=0" IF_TRUE DEBUG_BUILD)
     libomp_append(cppflags_local "-D _DEBUG" IF_TRUE DEBUG_BUILD)



More information about the Openmp-commits mailing list