Skip to content

Commit 35681fb

Browse files
committed
Auto merge of #47026 - EdSchouten:cloudabi-unwind, r=kennytm
Link against -lunwind on CloudABI. CloudABI makes use of LLVM's libunwind to do stack unwinding. It is installed under the name libunwind.a.
2 parents 2dad872 + 146fe0a commit 35681fb

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Diff for: src/libstd/build.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ fn main() {
2020
let target = env::var("TARGET").expect("TARGET was not set");
2121
let host = env::var("HOST").expect("HOST was not set");
2222
if cfg!(feature = "backtrace") &&
23-
!target.contains("msvc") &&
23+
!target.contains("cloudabi") &&
2424
!target.contains("emscripten") &&
2525
!target.contains("fuchsia") &&
26+
!target.contains("msvc") &&
2627
!target.contains("wasm32")
2728
{
2829
let _ = build_libbacktrace(&host, &target);
@@ -74,6 +75,12 @@ fn main() {
7475
println!("cargo:rustc-link-lib=zircon");
7576
println!("cargo:rustc-link-lib=fdio");
7677
println!("cargo:rustc-link-lib=launchpad"); // for std::process
78+
} else if target.contains("cloudabi") {
79+
if cfg!(feature = "backtrace") {
80+
println!("cargo:rustc-link-lib=unwind");
81+
}
82+
println!("cargo:rustc-link-lib=c");
83+
println!("cargo:rustc-link-lib=compiler_rt");
7784
}
7885
}
7986

Diff for: src/libunwind/build.rs

+2
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,7 @@ fn main() {
4343
println!("cargo:rustc-link-lib=gcc_s");
4444
} else if target.contains("redox") {
4545
println!("cargo:rustc-link-lib=gcc");
46+
} else if target.contains("cloudabi") {
47+
println!("cargo:rustc-link-lib=unwind");
4648
}
4749
}

0 commit comments

Comments
 (0)