Skip to content

Commit 5aadace

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 f2ddef7 commit 5aadace

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ option(SwiftCore_ENABLE_OS_TRACE_LAZY_INIT "Use os_trace call to check if lazy i
105105

106106
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
107107
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")
108+
defaulted_option(SwiftCore_ENABLE_FATALERROR_BACKTRACE "Build stdlib fatalError with backtrace output")
108109

109110
option(SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS "" OFF)
110111
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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ target_compile_definitions(swiftRuntime
101101
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_STDLIB_HAS_FILESYSTEM>
102102
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_ARCH="${SwiftCore_ARCH_SUBDIR}">
103103
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_LIB_SUBDIR="${SwiftCore_PLATFORM_SUBDIR}">
104+
$<$<BOOL:${SwiftCore_ENABLE_FATALERROR_BACKTRACE}>:-DSWIFT_STDLIB_SUPPORTS_BACKTRACE_REPORTING>
104105
PUBLIC
105106
$<$<BOOL:${SwiftCore_ENABLE_OS_TRACE_LAZY_INIT}>:-DSWIFT_USE_OS_TRACE_LAZY_INIT>)
106107

0 commit comments

Comments
 (0)