From dfc4930fe80a6bb5fe625372d76958ef3f0ea335 Mon Sep 17 00:00:00 2001 From: Nerijus Arlauskas Date: Sun, 8 May 2016 21:29:49 +0300 Subject: [PATCH 1/4] Remove "gnu" from "target_env" because it does not matter for android. --- src/librustc_back/target/arm_linux_androideabi.rs | 2 +- src/librustc_back/target/armv7_linux_androideabi.rs | 2 +- src/librustc_back/target/i686_linux_android.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/librustc_back/target/arm_linux_androideabi.rs b/src/librustc_back/target/arm_linux_androideabi.rs index ab662a97dc23c..e1b170422c60d 100644 --- a/src/librustc_back/target/arm_linux_androideabi.rs +++ b/src/librustc_back/target/arm_linux_androideabi.rs @@ -22,7 +22,7 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), arch: "arm".to_string(), target_os: "android".to_string(), - target_env: "gnu".to_string(), + target_env: "".to_string(), target_vendor: "unknown".to_string(), options: base, } diff --git a/src/librustc_back/target/armv7_linux_androideabi.rs b/src/librustc_back/target/armv7_linux_androideabi.rs index 7096cd9c36d1c..cb78f4d28aefc 100644 --- a/src/librustc_back/target/armv7_linux_androideabi.rs +++ b/src/librustc_back/target/armv7_linux_androideabi.rs @@ -21,7 +21,7 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), arch: "arm".to_string(), target_os: "android".to_string(), - target_env: "gnu".to_string(), + target_env: "".to_string(), target_vendor: "unknown".to_string(), options: base, } diff --git a/src/librustc_back/target/i686_linux_android.rs b/src/librustc_back/target/i686_linux_android.rs index 426be63cf2193..df746965a92e7 100644 --- a/src/librustc_back/target/i686_linux_android.rs +++ b/src/librustc_back/target/i686_linux_android.rs @@ -22,7 +22,7 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128".to_string(), arch: "x86".to_string(), target_os: "android".to_string(), - target_env: "gnu".to_string(), + target_env: "".to_string(), target_vendor: "unknown".to_string(), options: base, } From 155faafb04edca61ea559f89818b77a356f98343 Mon Sep 17 00:00:00 2001 From: Nerijus Arlauskas Date: Sat, 14 May 2016 22:34:12 +0300 Subject: [PATCH 2/4] Add missing "max_atomic_width" to new armv7 android target. --- src/librustc_back/target/armv7_linux_androideabi.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/librustc_back/target/armv7_linux_androideabi.rs b/src/librustc_back/target/armv7_linux_androideabi.rs index cb78f4d28aefc..fd8f35da16f61 100644 --- a/src/librustc_back/target/armv7_linux_androideabi.rs +++ b/src/librustc_back/target/armv7_linux_androideabi.rs @@ -13,6 +13,7 @@ use target::Target; pub fn target() -> Target { let mut base = super::android_base::opts(); base.features = "+v7,+thumb2,+vfp3,+d16".to_string(); + base.max_atomic_width = 64; Target { llvm_target: "armv7-none-linux-android".to_string(), From 39b311ecd55e957f8594c6d4c7d7b321c7743406 Mon Sep 17 00:00:00 2001 From: Nerijus Arlauskas Date: Sat, 14 May 2016 22:39:44 +0300 Subject: [PATCH 3/4] Add all possible features (NEON, FP) to aarch64 android target. --- src/librustc_back/target/aarch64_linux_android.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/librustc_back/target/aarch64_linux_android.rs b/src/librustc_back/target/aarch64_linux_android.rs index ed17182246466..81be546e0c89d 100644 --- a/src/librustc_back/target/aarch64_linux_android.rs +++ b/src/librustc_back/target/aarch64_linux_android.rs @@ -13,6 +13,9 @@ use target::Target; pub fn target() -> Target { let mut base = super::android_base::opts(); base.max_atomic_width = 128; + // As documented in http://developer.android.com/ndk/guides/cpu-features.html + // the neon (ASIMD) and FP must exist on all android aarch64 targets. + base.features = "+neon,+fp-armv8".to_string(); Target { llvm_target: "aarch64-linux-android".to_string(), target_endian: "little".to_string(), From e512abd418cf6774a29c98b1643e08ae82b3a2b5 Mon Sep 17 00:00:00 2001 From: Nerijus Arlauskas Date: Sat, 14 May 2016 22:46:47 +0300 Subject: [PATCH 4/4] Update libc to bring in updates for android's aarch64. --- src/liblibc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/liblibc b/src/liblibc index 7265c17d18453..6598e2cbfd7e0 160000 --- a/src/liblibc +++ b/src/liblibc @@ -1 +1 @@ -Subproject commit 7265c17d1845354f979a39b4ceb3a6934025b2ab +Subproject commit 6598e2cbfd7e09bfca249cc3dcbf889735f73ce1