Tier: 3
This tier supports the ARM Cortex A9 processor running on a PlayStation Vita console.
Rust support for this target is not affiliated with Sony, and is not derived from nor used with any official Sony SDK.
This target is cross-compiled, and requires installing VITASDK toolchain on your system. Dynamic linking is not supported.
#![no_std]
crates can be built using build-std
to build core
, and optionally alloc
, and panic_abort
.
std
is partially supported, but mostly works. Some APIs are unimplemented and will simply return an error, such as std::process
.
This target generates binaries in the ELF format with thumb ISA by default.
Binaries are linked with arm-vita-eabi-gcc
provided by VITASDK toolchain.
Rust does not ship pre-compiled artifacts for this target. You can use build-std
flag to build ELF binaries with std
:
cargo build -Z build-std=std,panic_abort --target=armv7-sony-vita-newlibeabihf --release
The recommended way to build artifacts that can be installed and run on PlayStation Vita is by using the cargo-vita tool. This tool uses build-std
and VITASDK toolchain to build artifacts runnable on Vita.
To install the tool run:
cargo install cargo-vita
VITASDK toolchain must be installed, and the VITASDK
environment variable must be set to its location, e.g.:
export VITASDK=/opt/vitasdk
Add the following section to your project's Cargo.toml
:
[package.metadata.vita] # A unique 9 character alphanumeric identifier of the app. title_id = "RUSTAPP01" # A title that will be used for the app. Optional, name will be used if not defined title_name = "My application"
To build a VPK with ELF in the release profile, run:
cargo vita build vpk --release
After building a *.vpk file it can be uploaded to a PlayStation Vita and installed, or used with a Vita3K emulator.
The default Rust test runner is supported, and tests can be compiled to an elf and packed to a *.vpk file using cargo-vita
tool. Filtering tests is not currently supported since passing command-line arguments to the executable is not supported on Vita, so the runner will always execute all tests.
The Rust test suite for library/std
is not yet supported.
This target can be cross-compiled from x86_64
on Windows, MacOS or Linux systems. Other hosts are not supported for cross-compilation.