Skip to content

Commit e1bd8cb

Browse files
committed
rustc_target: add musl targets for MIPS64 arches
Hard-float (unlike mips32 musl targets but consistent with any other musl target), MIPS64r2, n64 ABI.
1 parent d8f8be4 commit e1bd8cb

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
2+
3+
pub fn target() -> TargetResult {
4+
let mut base = super::linux_musl_base::opts();
5+
base.cpu = "mips64r2".to_string();
6+
base.features = "+mips64r2".to_string();
7+
base.max_atomic_width = Some(64);
8+
base.crt_static_default = false;
9+
Ok(Target {
10+
llvm_target: "mips64-unknown-linux-musl".to_string(),
11+
target_endian: "big".to_string(),
12+
target_pointer_width: "64".to_string(),
13+
target_c_int_width: "32".to_string(),
14+
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
15+
arch: "mips64".to_string(),
16+
target_os: "linux".to_string(),
17+
target_env: "musl".to_string(),
18+
target_vendor: "unknown".to_string(),
19+
linker_flavor: LinkerFlavor::Gcc,
20+
options: TargetOptions {
21+
target_mcount: "_mcount".to_string(),
22+
.. base
23+
},
24+
})
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
2+
3+
pub fn target() -> TargetResult {
4+
let mut base = super::linux_musl_base::opts();
5+
base.cpu = "mips64r2".to_string();
6+
base.features = "+mips64r2".to_string();
7+
base.max_atomic_width = Some(64);
8+
base.crt_static_default = false;
9+
Ok(Target {
10+
llvm_target: "mips64el-unknown-linux-musl".to_string(),
11+
target_endian: "little".to_string(),
12+
target_pointer_width: "64".to_string(),
13+
target_c_int_width: "32".to_string(),
14+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
15+
arch: "mips64".to_string(),
16+
target_os: "linux".to_string(),
17+
target_env: "musl".to_string(),
18+
target_vendor: "unknown".to_string(),
19+
linker_flavor: LinkerFlavor::Gcc,
20+
options: TargetOptions {
21+
target_mcount: "_mcount".to_string(),
22+
.. base
23+
},
24+
})
25+
}

src/librustc_target/spec/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,8 @@ supported_targets! {
371371
("i586-unknown-linux-musl", i586_unknown_linux_musl),
372372
("mips-unknown-linux-musl", mips_unknown_linux_musl),
373373
("mipsel-unknown-linux-musl", mipsel_unknown_linux_musl),
374+
("mips64-unknown-linux-musl", mips64_unknown_linux_musl),
375+
("mips64el-unknown-linux-musl", mips64el_unknown_linux_musl),
374376
("hexagon-unknown-linux-musl", hexagon_unknown_linux_musl),
375377

376378
("mips-unknown-linux-uclibc", mips_unknown_linux_uclibc),

0 commit comments

Comments
 (0)