]>
Commit | Line | Data |
---|---|---|
9fa01778 | 1 | use 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 | 6 | pub 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 | } |