]> git.proxmox.com Git - rustc.git/blame - src/librustc_target/spec/aarch64_linux_android.rs
New upstream version 1.42.0+dfsg0+pve1
[rustc.git] / src / librustc_target / spec / aarch64_linux_android.rs
CommitLineData
9fa01778 1use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
85aaf69f 2
476ff2be
SL
3// See https://developer.android.com/ndk/guides/abis.html#arm64-v8a
4// for target ABI requirements.
5
5bcae85e 6pub fn target() -> TargetResult {
a7813a04 7 let mut base = super::android_base::opts();
c30ab7b3 8 base.max_atomic_width = Some(128);
a7813a04
XL
9 // As documented in http://developer.android.com/ndk/guides/cpu-features.html
10 // the neon (ASIMD) and FP must exist on all android aarch64 targets.
11 base.features = "+neon,+fp-armv8".to_string();
5bcae85e 12 Ok(Target {
85aaf69f
SL
13 llvm_target: "aarch64-linux-android".to_string(),
14 target_endian: "little".to_string(),
15 target_pointer_width: "64".to_string(),
ea8adc8c 16 target_c_int_width: "32".to_string(),
5bcae85e 17 data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
85aaf69f
SL
18 arch: "aarch64".to_string(),
19 target_os: "android".to_string(),
b7449926 20 target_env: String::new(),
b039eaaf 21 target_vendor: "unknown".to_string(),
cc61c64b 22 linker_flavor: LinkerFlavor::Gcc,
46de9a89 23 options: TargetOptions { abi_blacklist: super::arm_base::abi_blacklist(), ..base },
5bcae85e 24 })
85aaf69f 25}