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) {
|
runtimeLibPaths) {
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
return loadRuntimeLib("swiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
return loadRuntimeLib("swiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
||||||
#else
|
#elif (defined(__linux__) || defined(_WIN64) || defined(__FreeBSD__))
|
||||||
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, runtimeLibPaths);
|
||||||
|
#else
|
||||||
|
return loadRuntimeLib("libswiftCore" LTDL_SHLIB_EXT, {"/usr/lib/swift"});
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user