Auto merge of #135074 - wzssyqa:mips-mti, r=oli-obk
Target: Add mips mti baremetal support Do the same thing as gcc, which use the vendor `mti` to mark the toolchain as MIPS32r2 default. We support both big endian and little endian flavor: mips-mti-none-elf mipsel-mti-none-elf
This commit is contained in:
commit
7270e73b62
12 changed files with 120 additions and 4 deletions
|
|
@ -62,6 +62,7 @@
|
|||
- [m68k-unknown-linux-gnu](platform-support/m68k-unknown-linux-gnu.md)
|
||||
- [mips64-openwrt-linux-musl](platform-support/mips64-openwrt-linux-musl.md)
|
||||
- [mipsel-sony-psx](platform-support/mipsel-sony-psx.md)
|
||||
- [mips\*-mti-none-elf](platform-support/mips-mti-none-elf.md)
|
||||
- [mipsisa\*r6\*-unknown-linux-gnu\*](platform-support/mips-release-6.md)
|
||||
- [nvptx64-nvidia-cuda](platform-support/nvptx64-nvidia-cuda.md)
|
||||
- [powerpc-unknown-openbsd](platform-support/powerpc-unknown-openbsd.md)
|
||||
|
|
|
|||
|
|
@ -332,6 +332,8 @@ target | std | host | notes
|
|||
`mipsel-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc
|
||||
[`mipsel-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | 32-bit MIPS (LE), requires mips32 cpu support
|
||||
`mipsel-unknown-none` | * | | Bare MIPS (LE) softfloat
|
||||
[`mips-mti-none-elf`](platform-support/mips-mti-none-elf.md) | * | | Bare MIPS32r2 (BE) softfloat
|
||||
[`mipsel-mti-none-elf`](platform-support/mips-mti-none-elf.md) | * | | Bare MIPS32r2 (LE) softfloat
|
||||
[`mipsisa32r6-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Big Endian
|
||||
[`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Little Endian
|
||||
[`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ? | | 64-bit MIPS Release 6 Big Endian
|
||||
|
|
|
|||
31
src/doc/rustc/src/platform-support/mips-mti-none-elf.md
Normal file
31
src/doc/rustc/src/platform-support/mips-mti-none-elf.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# `mips*-mti-none-elf`
|
||||
|
||||
**Tier: 3**
|
||||
|
||||
MIPS32r2 baremetal softfloat, Big Endian or Little Endian.
|
||||
|
||||
- mips-mti-none-elf
|
||||
- mipsel-mti-none-elf
|
||||
|
||||
## Target maintainers
|
||||
|
||||
- YunQiang Su, `syq@debian.org`, https://github.com/wzssyqa
|
||||
|
||||
## Background
|
||||
|
||||
These 2 targets, aka mips-mti-none-elf and mipsel-mti-none-elf, are for
|
||||
baremetal development of MIPS32r2. The lld is used instead of Gnu-ld.
|
||||
|
||||
## Requirements
|
||||
|
||||
The target only supports cross compilation and no host tools. The target
|
||||
supports `alloc` with a default allocator while only support `no-std` development.
|
||||
|
||||
The vendor name `mti` follows the naming of gcc to indicate MIPS32r2.
|
||||
|
||||
## Cross-compilation toolchains and C code
|
||||
|
||||
Compatible C code can be built for this target on any compiler that has a MIPS32r2
|
||||
target. On clang and ld.lld linker, it can be generated using the
|
||||
`-march=mips`/`-march=mipsel`, `-mabi=32` with llvm features flag
|
||||
`features=+mips32r2,+soft-float,+noabicalls`.
|
||||
|
|
@ -128,6 +128,8 @@ static TARGETS: &[&str] = &[
|
|||
"mipsisa64r6el-unknown-linux-gnuabi64",
|
||||
"mipsel-unknown-linux-gnu",
|
||||
"mipsel-unknown-linux-musl",
|
||||
"mips-mti-none-elf",
|
||||
"mipsel-mti-none-elf",
|
||||
"nvptx64-nvidia-cuda",
|
||||
"powerpc-unknown-linux-gnu",
|
||||
"powerpc64-unknown-linux-gnu",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue