Add support for mipsel-unknown-netbsd, 32-bit LE mips.
This commit is contained in:
parent
bbcc1691a4
commit
82b447a0cc
21
compiler/rustc_target/src/spec/mipsel_unknown_netbsd.rs
Normal file
21
compiler/rustc_target/src/spec/mipsel_unknown_netbsd.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
use crate::abi::Endian;
|
||||||
|
use crate::spec::{Target, TargetOptions};
|
||||||
|
|
||||||
|
pub fn target() -> Target {
|
||||||
|
let mut base = super::netbsd_base::opts();
|
||||||
|
base.max_atomic_width = Some(32);
|
||||||
|
base.cpu = "mips32".into();
|
||||||
|
|
||||||
|
Target {
|
||||||
|
llvm_target: "mipsel-unknown-netbsd".into(),
|
||||||
|
pointer_width: 32,
|
||||||
|
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".into(),
|
||||||
|
arch: "mips".into(),
|
||||||
|
options: TargetOptions {
|
||||||
|
features: "+soft-float".into(),
|
||||||
|
mcount: "__mcount".into(),
|
||||||
|
endian: Endian::Little,
|
||||||
|
..base
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
@ -1566,6 +1566,7 @@ fn $module() {
|
|||||||
("armv7-unknown-netbsd-eabihf", armv7_unknown_netbsd_eabihf),
|
("armv7-unknown-netbsd-eabihf", armv7_unknown_netbsd_eabihf),
|
||||||
("i586-unknown-netbsd", i586_unknown_netbsd),
|
("i586-unknown-netbsd", i586_unknown_netbsd),
|
||||||
("i686-unknown-netbsd", i686_unknown_netbsd),
|
("i686-unknown-netbsd", i686_unknown_netbsd),
|
||||||
|
("mipsel-unknown-netbsd", mipsel_unknown_netbsd),
|
||||||
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
|
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
|
||||||
("riscv64gc-unknown-netbsd", riscv64gc_unknown_netbsd),
|
("riscv64gc-unknown-netbsd", riscv64gc_unknown_netbsd),
|
||||||
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
|
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
|
||||||
|
@ -396,6 +396,12 @@ fn run(self, builder: &Builder<'_>) -> LlvmResult {
|
|||||||
ldflags.shared.push(" -latomic");
|
ldflags.shared.push(" -latomic");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if target.starts_with("mips") && target.contains("netbsd") {
|
||||||
|
// LLVM wants 64-bit atomics, while mipsel is 32-bit only, so needs -latomic
|
||||||
|
ldflags.exe.push(" -latomic");
|
||||||
|
ldflags.shared.push(" -latomic");
|
||||||
|
}
|
||||||
|
|
||||||
if target.contains("msvc") {
|
if target.contains("msvc") {
|
||||||
cfg.define("LLVM_USE_CRT_DEBUG", "MT");
|
cfg.define("LLVM_USE_CRT_DEBUG", "MT");
|
||||||
cfg.define("LLVM_USE_CRT_RELEASE", "MT");
|
cfg.define("LLVM_USE_CRT_RELEASE", "MT");
|
||||||
|
@ -287,6 +287,7 @@ target | std | host | notes
|
|||||||
`mips64el-unknown-linux-muslabi64` | ✓ | | MIPS64 (little endian) Linux, N64 ABI, musl libc
|
`mips64el-unknown-linux-muslabi64` | ✓ | | MIPS64 (little endian) Linux, N64 ABI, musl libc
|
||||||
`mipsel-unknown-linux-gnu` | ✓ | ✓ | MIPS (little endian) Linux (kernel 4.4, glibc 2.23)
|
`mipsel-unknown-linux-gnu` | ✓ | ✓ | MIPS (little endian) Linux (kernel 4.4, glibc 2.23)
|
||||||
`mipsel-unknown-linux-musl` | ✓ | | MIPS (little endian) Linux with musl libc
|
`mipsel-unknown-linux-musl` | ✓ | | MIPS (little endian) Linux with musl libc
|
||||||
|
[`mipsel-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | 32-bit MIPS (LE), requires mips32 cpu support
|
||||||
`mipsel-sony-psp` | * | | MIPS (LE) Sony PlayStation Portable (PSP)
|
`mipsel-sony-psp` | * | | MIPS (LE) Sony PlayStation Portable (PSP)
|
||||||
[`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX)
|
[`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX)
|
||||||
`mipsel-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc
|
`mipsel-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc
|
||||||
|
Loading…
Reference in New Issue
Block a user