mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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 https://github.com/apple/swift/issues/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).
This commit is contained in:
@@ -89,8 +89,10 @@ void *swift::immediate::loadSwiftRuntime(ArrayRef<std::string>
|
||||
runtimeLibPaths) {
|
||||
#if defined(_WIN32)
|
||||
return loadRuntimeLib("swiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
||||
#else
|
||||
#elif (defined(__linux__) || defined(_WIN64) || defined(__FreeBSD__))
|
||||
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
||||
#else
|
||||
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, {"/usr/lib/swift"});
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user