@@ -134,6 +134,11 @@ function(_add_target_variant_c_compile_link_flags)
134
134
"-fcoverage-mapping" )
135
135
endif ()
136
136
137
+ # Use frame pointers on Linux
138
+ if ("${CFLAGS_SDK} " STREQUAL "LINUX" )
139
+ list (APPEND result "-fno-omit-frame-pointer" )
140
+ endif ()
141
+
137
142
_compute_lto_flag("${CFLAGS_ENABLE_LTO} " _lto_flag_out)
138
143
if (_lto_flag_out)
139
144
list (APPEND result "${_lto_flag_out} " )
@@ -310,6 +315,11 @@ function(_add_target_variant_c_compile_flags)
310
315
"-fcoverage-mapping" )
311
316
endif ()
312
317
318
+ # Use frame pointers on Linux
319
+ if ("${CFLAGS_SDK} " STREQUAL "LINUX" )
320
+ list (APPEND result "-fno-omit-frame-pointer" )
321
+ endif ()
322
+
313
323
if ((CFLAGS_ARCH STREQUAL "armv7" OR CFLAGS_ARCH STREQUAL "aarch64" ) AND
314
324
(CFLAGS_SDK STREQUAL "LINUX" OR CFLAGS_SDK STREQUAL "ANDROID" ))
315
325
list (APPEND result -funwind-tables)
@@ -935,6 +945,11 @@ function(add_swift_target_library_single target name)
935
945
set (install_in_component "${SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT} " )
936
946
endif ()
937
947
948
+ # Use frame pointers on Linux
949
+ if ("${SWIFTLIB_SINGLE_SDK} " STREQUAL "LINUX" )
950
+ list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS "-Xcc" "-fno-omit-frame-pointer" )
951
+ endif ()
952
+
938
953
# FIXME: don't actually depend on the libraries in SWIFTLIB_SINGLE_LINK_LIBRARIES,
939
954
# just any swiftmodule files that are associated with them.
940
955
handle_swift_sources(
@@ -2614,6 +2629,10 @@ function(_add_swift_target_executable_single name)
2614
2629
-vfsoverlay;"${SWIFT_WINDOWS_VFS_OVERLAY} " )
2615
2630
endif ()
2616
2631
2632
+ if ("${SWIFTEXE_SINGLE_SDK} " STREQUAL "LINUX" )
2633
+ list (APPEND SWIFTEXE_SINGLE_COMPILE_FLAGS "-Xcc" "-fno-omit-frame-pointer" )
2634
+ endif ()
2635
+
2617
2636
handle_swift_sources(
2618
2637
dependency_target
2619
2638
unused_module_dependency_target
0 commit comments