rustc_target/spec/targets/
armv7_unknown_trusty.rs

1use crate::spec::{
2    FloatAbi, LinkSelfContainedDefault, PanicStrategy, RelroLevel, Target, TargetOptions,
3};
4
5pub(crate) fn target() -> Target {
6    Target {
7        // It's important we use "gnueabi" and not "musleabi" here. LLVM uses it
8        // to determine the calling convention and float ABI, and it doesn't
9        // support the "musleabi" value.
10        llvm_target: "armv7-unknown-unknown-gnueabi".into(),
11        metadata: crate::spec::TargetMetadata {
12            description: Some("Armv7-A Trusty".into()),
13            tier: Some(3),
14            host_tools: Some(false),
15            std: Some(false),
16        },
17        pointer_width: 32,
18        data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
19        arch: "arm".into(),
20        options: TargetOptions {
21            abi: "eabi".into(),
22            llvm_floatabi: Some(FloatAbi::Soft),
23            features: "+v7,+thumb2,+soft-float,-neon".into(),
24            max_atomic_width: Some(64),
25            mcount: "\u{1}mcount".into(),
26            os: "trusty".into(),
27            link_self_contained: LinkSelfContainedDefault::InferredForMusl,
28            dynamic_linking: false,
29            executables: true,
30            crt_static_default: true,
31            crt_static_respected: true,
32            relro_level: RelroLevel::Full,
33            panic_strategy: PanicStrategy::Abort,
34            position_independent_executables: true,
35            static_position_independent_executables: true,
36
37            ..Default::default()
38        },
39    }
40}