Skip to content

Commit 06384be

Browse files
committed
For scripts, use DYLD_FRAMEWORK/LIBRARY_PATH to find frameworks / runtimes.
Add DYLD_FRAMEWORK_PATH=/System/Library/Frameworks to the environment when constructing swift-frontend invocations for the interpreter so that dlopen can find autolinked frameworks. This is intended to fix #68785. As a follow-up: don't expand runtime paths to find the path to the runtime in libImmediate, but instead hard-code "/usr/lib/swift/libswiftCore.dylib" and allow any overrides to be found via DYLD_LIBRARY_PATH (this ensures that dyld treats whichever libswiftCore.dylib is found as override for the one in the shared cache, which doesn't happen if dlopen is passed a non-standard path).
1 parent a48dc87 commit 06384be

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

lib/Immediate/Immediate.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,10 @@ void *swift::immediate::loadSwiftRuntime(ArrayRef<std::string>
8989
runtimeLibPaths) {
9090
#if defined(_WIN32)
9191
return loadRuntimeLib("swiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
92-
#else
92+
#elif (defined(__linux__) || defined(_WIN64) || defined(__FreeBSD__))
9393
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
94+
#else
95+
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, {"/usr/lib/swift"});
9496
#endif
9597
}
9698

0 commit comments

Comments
 (0)