Skip to content

Commit a8d15a9

Browse files
committed
[libcxx] Don't autodetect pthreads on MinGW
e9ee517 added support for using winpthreads on Windows, enabled if `__WINPTHREADS_VERSION` was defined (i.e. if winpthreads headers have been included before including libcxx `__config`). This was fragile (libcxx changed behaviour depending on what headers had been included externally before), and was changed in a1bc823 to use pthreads on Windows whenever the pthread.h header was available. This is also fragile; pthread.h might be unavailable while building libcxx but installed later, and available when users include the libcxx headers. In practice, in every modern setup for building libcxx for Windows I've seen, users end up manually configuring it with `LIBCXX_HAS_WIN32_THREAD_API=ON`, as the users may have winpthreads installed (for other libraries/projects to use) while wanting to build libcxx with the default win32 threading. Don't automatically pick up pthreads on Windows even if the header is available. Instead require the user to configure the libcxx build with `LIBCXX_HAS_PTHREAD_API=ON` if that's desired. Differential Revision: https://reviews.llvm.org/D110975
1 parent a785e5c commit a8d15a9

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

libcxx/include/__config

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,8 +1072,7 @@ extern "C" _LIBCPP_FUNC_VIS void __sanitizer_annotate_contiguous_container(
10721072
defined(__APPLE__) || \
10731073
defined(__sun__) || \
10741074
defined(__MVS__) || \
1075-
defined(_AIX) || \
1076-
(defined(__MINGW32__) && __has_include(<pthread.h>))
1075+
defined(_AIX)
10771076
# define _LIBCPP_HAS_THREAD_API_PTHREAD
10781077
# elif defined(__Fuchsia__)
10791078
// TODO(44575): Switch to C11 thread API when possible.

0 commit comments

Comments
 (0)