rustc_target/spec/targets/
armv7_unknown_trusty.rs

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