62 lines
2.3 KiB
Diff
62 lines
2.3 KiB
Diff
Additions for build.rs by q66, necessary for our musl setup.
|
|
|
|
From 1eb558f246269606c6d8d73824ef6b44fa10764e Mon Sep 17 00:00:00 2001
|
|
From: Samuel Holland <samuel@sholland.org>
|
|
Date: Sat, 9 Sep 2017 00:14:16 -0500
|
|
Subject: [PATCH 06/16] Prefer libgcc_eh over libunwind for musl
|
|
|
|
---
|
|
src/libunwind/lib.rs | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
|
|
index 9182e349b19..0377fbb58fc 100644
|
|
--- a/src/libunwind/lib.rs
|
|
+++ b/src/libunwind/lib.rs
|
|
@@ -23,6 +23,6 @@ cfg_if::cfg_if! {
|
|
}
|
|
|
|
#[cfg(target_env = "musl")]
|
|
-#[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))]
|
|
+#[link(name = "gcc_eh", cfg(target_feature = "crt-static"))]
|
|
#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
|
|
extern {}
|
|
diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs
|
|
index f24d957..28828e5 100644
|
|
--- a/src/libunwind/build.rs
|
|
+++ b/src/libunwind/build.rs
|
|
@@ -5,15 +5,11 @@ fn main() {
|
|
let target = env::var("TARGET").expect("TARGET was not set");
|
|
|
|
if cfg!(feature = "llvm-libunwind") &&
|
|
- ((target.contains("linux") && !target.contains("musl")) ||
|
|
- target.contains("fuchsia")) {
|
|
+ (target.contains("linux") || target.contains("fuchsia")) {
|
|
// Build the unwinding from libunwind C/C++ source code.
|
|
llvm_libunwind::compile();
|
|
} else if target.contains("linux") {
|
|
- if target.contains("musl") {
|
|
- // linking for musl is handled in lib.rs
|
|
- llvm_libunwind::compile();
|
|
- } else if !target.contains("android") {
|
|
+ if !target.contains("android") {
|
|
println!("cargo:rustc-link-lib=gcc_s");
|
|
}
|
|
} else if target.contains("freebsd") {
|
|
@@ -99,15 +95,6 @@ mod llvm_libunwind {
|
|
cfg.file(root.join("src").join(src));
|
|
}
|
|
|
|
- if target_env == "musl" {
|
|
- // use the same C compiler command to compile C++ code so we do not need to setup the
|
|
- // C++ compiler env variables on the builders
|
|
- cfg.cpp(false);
|
|
- // linking for musl is handled in lib.rs
|
|
- cfg.cargo_metadata(false);
|
|
- println!("cargo:rustc-link-search=native={}", env::var("OUT_DIR").unwrap());
|
|
- }
|
|
-
|
|
cfg.compile("unwind");
|
|
}
|
|
}
|