Add Sony PlayStation 1 tier 3 target

This commit is contained in:
Ayrton 2022-10-04 21:37:30 -04:00
parent c27948d255
commit d03185ed98
5 changed files with 89 additions and 0 deletions

View file

@ -29,6 +29,7 @@
- [\*-kmc-solid_\*](platform-support/kmc-solid.md)
- [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)
- [nvptx64-nvidia-cuda](platform-support/nvptx64-nvidia-cuda.md)
- [riscv32imac-unknown-xous-elf](platform-support/riscv32imac-unknown-xous-elf.md)
- [*-pc-windows-gnullvm](platform-support/pc-windows-gnullvm.md)

View file

@ -260,6 +260,7 @@ target | std | host | notes
`mips-unknown-linux-uclibc` | ✓ | | MIPS Linux with uClibc
[`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL
`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-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc
`mipsel-unknown-none` | * | | Bare MIPS (LE) softfloat
`mipsisa32r6-unknown-linux-gnu` | ? | |

View file

@ -0,0 +1,49 @@
# mipsel-sony-psx
**Tier: 3**
Sony PlayStation 1 (psx)
## Designated Developer
* [@ayrtonm](https://github.com/ayrtonm)
## Requirements
This target is cross-compiled.
It has no special requirements for the host.
## Building
The target can be built by enabling it for a `rustc` build:
```toml
[build]
build-stage = 1
target = ["mipsel-sony-psx"]
```
## Cross-compilation
This target can be cross-compiled from any host.
## Testing
Currently there is no support to run the rustc test suite for this target.
## Building Rust programs
Since it is Tier 3, rust doesn't ship pre-compiled artifacts for this target.
Just use the `build-std` nightly cargo feature to build the `core` and `alloc` libraries:
```shell
cargo build -Zbuild-std=core,alloc --target mipsel-sony-psx
```
The command above generates an ELF. To generate binaries in the PSEXE format that emulators run, you can use [cargo-psx](https://github.com/ayrtonm/psx-sdk-rs#readme):
```shell
cargo psx build
```
or use `-Clink-arg=--oformat=binary` to produce a flat binary.