Skip to content

Commit 84a1c12

Browse files
committed
CMake: Set SWIFT_STDLIB_HAS_DLADDR/DLSYM
Parts of the runtime depend on DLADDR/DLSYM. Use CMake to determine if these functions are available and then define the `SWIFT_STDLIB_HAS_DLADDR`/`SWIFT_STDLIB_HAS_DLSYM` when the function is available. `SWIFT_STDLIB_HAS_DLADDR` is used in several source files in the runtime library. `SWIFT_STDLIB_HAS_DLSYM` only appears to be used in `ThreadSanitizer.cpp`.
1 parent 31b6aee commit 84a1c12

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ set(SwiftCore_VENDOR_MODULE_DIR "${SwiftCore_CMAKE_MODULES_DIR}/vendor"
6262
CACHE FILEPATH "Location for private build system extension")
6363

6464
include(GNUInstallDirs)
65+
include(CheckSymbolExists)
6566
include(AvailabilityMacros)
6667
include(CompilerSettings)
6768
include(DefaultSettings)
@@ -70,6 +71,9 @@ include(PlatformInfo)
7071
include(gyb)
7172
include(Plist)
7273

74+
check_symbol_exists("dladdr" "dlfcn.h" SwiftCore_HAS_DLADDR)
75+
check_symbol_exists("dlsym" "dlfcn.h" SwiftCore_HAS_DLSYM)
76+
7377
include("${SwiftCore_VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL)
7478

7579
defaulted_option(SwiftCore_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime libraries")

Runtimes/Core/runtime/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ target_compile_definitions(swiftRuntime
8484
$<$<BOOL:${SwiftCore_ENABLE_MALLOC_TYPE}>:-DSWIFT_STDLIB_HAS_MALLOC_TYPE>
8585
$<$<BOOL:${SwiftCore_BACKTRACER_PATH}>:-DSWIFT_RUNTIME_FIXED_BACKTRACER_PATH="${SwiftCore_BACKTRACER_PATH}">
8686
$<$<BOOL:${SwiftCore_ENABLE_STDLIB_TRACING}>:-DSWIFT_STDLIB_TRACING>
87-
$<$<BOOL:${SwiftCore_ENABLE_SHORT_MANGLING_LOOKUPS}>:-DSWIFT_STDLIB_SHORT_MANGLING_LOOKUPS>)
87+
$<$<BOOL:${SwiftCore_ENABLE_SHORT_MANGLING_LOOKUPS}>:-DSWIFT_STDLIB_SHORT_MANGLING_LOOKUPS>
88+
$<$<BOOL:${SwiftCore_HAS_DLADDR}>:-DSWIFT_STDLIB_HAS_DLADDR>
89+
$<$<BOOL:${SwiftCore_HAS_DLSYM}>:-DSWIFT_STDLIB_HAS_DLSYM>)
8890

8991
target_include_directories(swiftRuntime PRIVATE
9092
"${PROJECT_BINARY_DIR}/include"

0 commit comments

Comments
 (0)