Do not assume dynamic linking for musl/mips[el] targets
All musl targets except mips[el] assume static linking by default. This can be confusing https://users.rust-lang.org/t/static-cross-compiled-binaries-arent-really-static/6084 When the musl/mips[el] targets was [added](https://github.com/rust-lang/rust/pull/31298), dynamic linking was chosen because of binary size concerns, and probably also because libunwind [didn't](https://users.rust-lang.org/t/static-cross-compiled-binaries-arent-really-static/6084/8) supported mips. Now that we have `crt-static` target-feature (the user can choose dynamic link for musl targets), and libunwind [6.0](https://github.com/llvm-mirror/libunwind/commits/release_60) add support to mips, we do not need to assume dynamic linking.
This commit is contained in:
parent
fdc18b3067
commit
68db72d8cd
9 changed files with 56 additions and 38 deletions
|
|
@ -9,9 +9,15 @@
|
|||
// except according to those terms.
|
||||
|
||||
use LinkerFlavor;
|
||||
use target::{Target, TargetOptions, TargetResult};
|
||||
use target::{Target, TargetResult};
|
||||
|
||||
pub fn target() -> TargetResult {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
base.cpu = "mips32r2".to_string();
|
||||
base.features = "+mips32r2,+soft-float".to_string();
|
||||
base.max_atomic_width = Some(32);
|
||||
// see #36994
|
||||
base.exe_allocation_crate = None;
|
||||
Ok(Target {
|
||||
llvm_target: "mips-unknown-linux-musl".to_string(),
|
||||
target_endian: "big".to_string(),
|
||||
|
|
@ -23,15 +29,6 @@ pub fn target() -> TargetResult {
|
|||
target_env: "musl".to_string(),
|
||||
target_vendor: "unknown".to_string(),
|
||||
linker_flavor: LinkerFlavor::Gcc,
|
||||
options: TargetOptions {
|
||||
cpu: "mips32r2".to_string(),
|
||||
features: "+mips32r2,+soft-float".to_string(),
|
||||
max_atomic_width: Some(32),
|
||||
|
||||
// see #36994
|
||||
exe_allocation_crate: None,
|
||||
|
||||
..super::linux_base::opts()
|
||||
}
|
||||
options: base,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,9 +9,15 @@
|
|||
// except according to those terms.
|
||||
|
||||
use LinkerFlavor;
|
||||
use target::{Target, TargetOptions, TargetResult};
|
||||
use target::{Target, TargetResult};
|
||||
|
||||
pub fn target() -> TargetResult {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
base.cpu = "mips32".to_string();
|
||||
base.features = "+mips32,+soft-float".to_string();
|
||||
base.max_atomic_width = Some(32);
|
||||
// see #36994
|
||||
base.exe_allocation_crate = None;
|
||||
Ok(Target {
|
||||
llvm_target: "mipsel-unknown-linux-musl".to_string(),
|
||||
target_endian: "little".to_string(),
|
||||
|
|
@ -23,15 +29,6 @@ pub fn target() -> TargetResult {
|
|||
target_env: "musl".to_string(),
|
||||
target_vendor: "unknown".to_string(),
|
||||
linker_flavor: LinkerFlavor::Gcc,
|
||||
options: TargetOptions {
|
||||
cpu: "mips32".to_string(),
|
||||
features: "+mips32,+soft-float".to_string(),
|
||||
max_atomic_width: Some(32),
|
||||
|
||||
// see #36994
|
||||
exe_allocation_crate: None,
|
||||
|
||||
..super::linux_base::opts()
|
||||
}
|
||||
options: base,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue