Fix crash loading Swift symbol (I think associated with concurrency)

I add /usr/lib/swift as an rpath, which seems to fix the issue even though
there doesn't seem to be a relevant library at that location on my machine.

Based on my research, wondering if `-Wl,-weak-lswiftCompatibilityConcurrency`
is also required for this to work on older OSes, but holding back for now.
This commit is contained in:
Nathan Sobo 2022-10-20 13:18:53 -06:00
parent db8b8ef66b
commit 6bdb08ab9c
2 changed files with 3 additions and 1 deletions

View file

@ -81,7 +81,6 @@ fn build_bridge(swift_target: &SwiftTarget) {
}
fn link_swift_stdlib(swift_target: &SwiftTarget) {
panic!("{:?}", swift_target.paths.runtime_library_paths);
for path in &swift_target.paths.runtime_library_paths {
println!("cargo:rustc-link-search=native={}", path);
}

View file

@ -15,6 +15,9 @@ fn main() {
println!("cargo:rustc-link-arg=-Wl,-rpath,@executable_path");
}
// Seems to be required to enable Swift concurrency
println!("cargo:rustc-link-arg=-Wl,-rpath,/usr/lib/swift");
// Register exported Objective-C selectors, protocols, etc
println!("cargo:rustc-link-arg=-Wl,-ObjC");