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