rustc_target/spec/targets/
aarch64_unknown_linux_musl.rs1use crate::spec::{
2 Arch, Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target,
3 TargetMetadata, TargetOptions, base,
4};
5
6pub(crate) fn target() -> Target {
7 let mut base = base::linux_musl::opts();
8 base.max_atomic_width = Some(128);
9 base.supports_xray = true;
10 base.features = "+v8a,+outline-atomics".into();
11 base.stack_probes = StackProbeType::Inline;
12 base.supported_sanitizers = SanitizerSet::ADDRESS
13 | SanitizerSet::CFI
14 | SanitizerSet::LEAK
15 | SanitizerSet::MEMORY
16 | SanitizerSet::THREAD;
17
18 base.crt_static_default = true;
20
21 Target {
22 llvm_target: "aarch64-unknown-linux-musl".into(),
23 metadata: TargetMetadata {
24 description: Some("ARM64 Linux with musl 1.2.5".into()),
25 tier: Some(2),
26 host_tools: Some(true),
27 std: Some(true),
28 },
29 pointer_width: 64,
30 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(),
31 arch: Arch::AArch64,
32 options: TargetOptions {
33 pre_link_args: TargetOptions::link_args(
35 LinkerFlavor::Gnu(Cc::Yes, Lld::No),
36 &["-Wl,--fix-cortex-a53-843419"],
37 ),
38 frame_pointer: FramePointer::NonLeaf,
42 mcount: "\u{1}_mcount".into(), ..base
43 },
44 }
45}