Skip to content

Commit 3c01edd

Browse files
committed
CMake: SwiftCore: Add back SWIFT_STDLIB_SUPPORTS_BACKTRACE_REPORTING
Add an option to enable emitting a stacktrace on calls to `fatalError`. This is unrelated to the runtime backtracer for diagnosing normal Swift crashes. rdar://142440689
1 parent 11fbd94 commit 3c01edd

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ option(SwiftCore_ENABLE_FILESYSTEM_SUPPORT "Build for systems that have a filesy
103103

104104
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
105105
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")
106+
defaulted_option(SwiftCore_ENABLE_FATALERROR_BACKTRACE "Build stdlib fatalError with backtrace output")
106107

107108
option(SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS "" OFF)
108109
option(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER "" OFF)

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ if(APPLE)
3737
set(SwiftCore_ENABLE_CRASH_REPORTER_CLIENT_default ON)
3838
set(SwiftCore_ENABLE_OBJC_INTEROP_default ON)
3939
set(SwiftCore_ENABLE_REFLECTION_default ON)
40+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
4041
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING ON)
4142
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE ON)
4243
set(SwiftCore_THREADING_PACKAGE "DARWIN")
@@ -45,6 +46,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
4546
set(SwiftCore_THREADING_PACKAGE "NONE")
4647
elseif(LINUX OR ANDROID OR BSD)
4748
set(SwiftCore_OBJECT_FORMAT_default "elf")
49+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
4850
if(LINUX)
4951
set(SwiftCore_THREADING_PACKAGE "LINUX")
5052
else()
@@ -53,6 +55,7 @@ elseif(LINUX OR ANDROID OR BSD)
5355
elseif(WIN32)
5456
set(SwiftCore_OBJECT_FORMAT_default "coff")
5557
set(SwiftCore_THREADING_PACKAGE "WIN32")
58+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
5659
endif()
5760

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

Runtimes/Core/runtime/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ target_compile_definitions(swiftRuntime
100100
$<$<BOOL:${SwiftCore_HAS_DLSYM}>:-DSWIFT_STDLIB_HAS_DLSYM>
101101
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_STDLIB_HAS_FILESYSTEM>
102102
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_ARCH="${SwiftCore_ARCH_SUBDIR}">
103-
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_LIB_SUBDIR="${SwiftCore_PLATFORM_SUBDIR}">)
103+
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_LIB_SUBDIR="${SwiftCore_PLATFORM_SUBDIR}">
104+
$<$<BOOL:${SwiftCore_ENABLE_FATALERROR_BACKTRACE}>:-DSWIFT_STDLIB_SUPPORTS_BACKTRACE_REPORTING>)
104105

105106
target_include_directories(swiftRuntime PRIVATE
106107
"${PROJECT_BINARY_DIR}/include"

0 commit comments

Comments
 (0)