armv7-sony-vita-newlibeabihf
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.
Target maintainers
Requirements
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.
Building the target
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
Building Rust programs
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.
Testing
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.
Cross-compilation
This target can be cross-compiled from x86_64
on Windows, MacOS or Linux systems. Other hosts are not supported for cross-compilation.