rustc_target/spec/targets/
armv7_sony_vita_newlibeabihf.rs1use rustc_abi::Endian;
2
3use crate::spec::{
4 Abi, Arch, Cc, Env, FloatAbi, LinkerFlavor, Lld, Os, RelocModel, Target, TargetMetadata,
5 TargetOptions, cvs,
6};
7
8pub(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-sony-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: Arch::Arm,
30
31 options: TargetOptions {
32 os: Os::Vita,
33 endian: Endian::Little,
34 c_int_width: 32,
35 env: Env::Newlib,
36 vendor: "sony".into(),
37 abi: Abi::EabiHf,
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}