rustc_target/spec/targets/
aarch64_unknown_linux_musl.rs

1use crate::spec::{SanitizerSet, StackProbeType, Target, TargetOptions, base};
2
3pub(crate) fn target() -> Target {
4    let mut base = base::linux_musl::opts();
5    base.max_atomic_width = Some(128);
6    base.supports_xray = true;
7    base.features = "+v8a".into();
8    base.stack_probes = StackProbeType::Inline;
9    base.supported_sanitizers = SanitizerSet::ADDRESS
10        | SanitizerSet::CFI
11        | SanitizerSet::LEAK
12        | SanitizerSet::MEMORY
13        | SanitizerSet::THREAD;
14
15    // FIXME(compiler-team#422): musl targets should be dynamically linked by default.
16    base.crt_static_default = true;
17
18    Target {
19        llvm_target: "aarch64-unknown-linux-musl".into(),
20        metadata: crate::spec::TargetMetadata {
21            description: Some("ARM64 Linux with musl 1.2.3".into()),
22            tier: Some(2),
23            host_tools: Some(true),
24            std: Some(true),
25        },
26        pointer_width: 64,
27        data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
28        arch: "aarch64".into(),
29        options: TargetOptions { mcount: "\u{1}_mcount".into(), ..base },
30    }
31}