Skip to content

Commit 6d678ac

Browse files
committed
Core: specify the threading package that is in use
This is required for the non-Darwin targets as `SWIFT_THREADING_DARWIN` does not enable any additional code. However, that macro is used in other places that are not yet integrated. This was identified by building for Windows.
1 parent b748546 commit 6d678ac

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ option(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER "" OFF)
100100
option(SwiftCore_ENABLE_INTERNAL_CHECKS "" OFF)
101101

102102
defaulted_set(SwiftCore_OBJECT_FORMAT STRING "Object format: ELF COFF")
103+
defaulted_set(SwiftCore_THREADING_PACKAGE STRING "Threading Package: C11 Linux PThreads Win32")
103104

104105
# TODO: Most of these should be attached to specific targets rather than applied
105106
# globally. They can be applied as part of the library interface if they
@@ -118,6 +119,7 @@ add_compile_definitions(
118119
$<$<BOOL:${SwiftCore_ENABLE_UNICODE_DATA}>:-DSWIFT_STDLIB_ENABLE_UNICODE_DATA> # Stubs
119120
$<$<BOOL:${SwiftCore_ENABLE_ENVIRONMENT}>:-DSWIFT_STDLIB_HAS_ENVIRON> # Concurrency, runtime, shims, platform overlay
120121
$<$<BOOL:${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT}>:-DSWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT> # Concurrency, Compatibility override, magic symbols
122+
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_THREADING_${SwiftCore_THREADING_PACKAGE}>
121123
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_ENABLE_LEAK_CHECKER=$<BOOL:${SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER}>>
122124
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_CLOBBER_FREED_OBJECTS=$<BOOL:${SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS}>>)
123125

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,20 @@ if(APPLE)
3939
set(SwiftCore_ENABLE_REFLECTION_default ON)
4040
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING ON)
4141
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE ON)
42+
set(SwiftCore_THREADING_PACKAGE "DARWIN")
4243
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
4344
set(SwiftCore_OBJECT_FORMAT_default "elf")
45+
set(SwiftCore_THREADING_PACKAGE "NONE")
4446
elseif(LINUX OR ANDROID OR BSD)
4547
set(SwiftCore_OBJECT_FORMAT_default "elf")
48+
if(LINUX)
49+
set(SwiftCore_THREADING_PACKAGE "LINUX")
50+
else()
51+
set(SwiftCore_THREADING_PACKAGE "PTHREADS")
52+
endif()
4653
elseif(WIN32)
4754
set(SwiftCore_OBJECT_FORMAT_default "coff")
55+
set(SwiftCore_THREADING_PACKAGE "WIN32")
4856
endif()
4957

5058
include("${SwiftCore_VENDOR_MODULE_DIR}/DefaultSettings.cmake" OPTIONAL)

0 commit comments

Comments
 (0)