rustc_target/spec/targets/
armv7_sony_vita_newlibeabihf.rs
1use rustc_abi::Endian;
2
3use crate::spec::{
4 Cc, FloatAbi, LinkerFlavor, Lld, RelocModel, Target, TargetMetadata, TargetOptions, cvs,
5};
6
7pub(crate) fn target() -> Target {
12 let pre_link_args = TargetOptions::link_args(
13 LinkerFlavor::Gnu(Cc::Yes, Lld::No),
14 &["-Wl,-q", "-Wl,--pic-veneer"],
15 );
16
17 Target {
18 llvm_target: "thumbv7a-vita-eabihf".into(),
19 metadata: TargetMetadata {
20 description: Some(
21 "Armv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain)".into(),
22 ),
23 tier: Some(3),
24 host_tools: Some(false),
25 std: Some(true),
26 },
27 pointer_width: 32,
28 data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
29 arch: "arm".into(),
30
31 options: TargetOptions {
32 os: "vita".into(),
33 endian: Endian::Little,
34 c_int_width: "32".into(),
35 env: "newlib".into(),
36 vendor: "sony".into(),
37 abi: "eabihf".into(),
38 llvm_floatabi: Some(FloatAbi::Hard),
39 linker_flavor: LinkerFlavor::Gnu(Cc::Yes, Lld::No),
40 no_default_libraries: false,
41 cpu: "cortex-a9".into(),
42 families: cvs!["unix"],
43 linker: Some("arm-vita-eabi-gcc".into()),
44 relocation_model: RelocModel::Static,
45 features: "+v7,+neon,+vfp3,+thumb2,+thumb-mode".into(),
46 pre_link_args,
47 exe_suffix: ".elf".into(),
48 has_thumb_interworking: true,
49 max_atomic_width: Some(64),
50 ..Default::default()
51 },
52 }
53}