about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-05-16 12:15:10 -0700
committerbors <bors@rust-lang.org>2016-05-16 12:15:10 -0700
commit4fdf2c4f976ce52163841ba5b3117bb2bb06d97e (patch)
tree78e466dda8648c120d986b41e59e48c9cc358ebf /src
parent8310de856db8ba78ba3f4c58e3fe6d3d87f2cb4f (diff)
parente512abd418cf6774a29c98b1643e08ae82b3a2b5 (diff)
downloadrust-4fdf2c4f976ce52163841ba5b3117bb2bb06d97e.tar.gz
rust-4fdf2c4f976ce52163841ba5b3117bb2bb06d97e.zip
Auto merge of #33500 - Nercury:update-aarch64-android-target-to-match-abi, r=alexcrichton
Update aarch64-linux-android target to match android abi.

- Changed `target_env` to "gnu" to empty "" for all android targets because it does not matter for android.
- The PR #33048 added "max_atomic_width" for arm-android but missed recently added armv7-android. Add it there too.
- Added features `+neon,+fp-armv8` because they [must exist on `aarch64` android](http://developer.android.com/ndk/guides/cpu-features.html).
- Update libc to include https://github.com/rust-lang/libc/pull/282 so that rust's std lib works on android's aarch64 (the main issue there was incorrect structure alignment on 64-bit arm).

r? @alexcrichton
Diffstat (limited to 'src')
m---------src/liblibc0
-rw-r--r--src/librustc_back/target/aarch64_linux_android.rs3
-rw-r--r--src/librustc_back/target/arm_linux_androideabi.rs2
-rw-r--r--src/librustc_back/target/armv7_linux_androideabi.rs3
-rw-r--r--src/librustc_back/target/i686_linux_android.rs2
5 files changed, 7 insertions, 3 deletions
diff --git a/src/liblibc b/src/liblibc
-Subproject 7265c17d1845354f979a39b4ceb3a6934025b2a
+Subproject 6598e2cbfd7e09bfca249cc3dcbf889735f73ce
diff --git a/src/librustc_back/target/aarch64_linux_android.rs b/src/librustc_back/target/aarch64_linux_android.rs
index ed171822464..81be546e0c8 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(),
diff --git a/src/librustc_back/target/arm_linux_androideabi.rs b/src/librustc_back/target/arm_linux_androideabi.rs
index ab662a97dc2..e1b170422c6 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 7096cd9c36d..fd8f35da16f 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(),
@@ -21,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/i686_linux_android.rs b/src/librustc_back/target/i686_linux_android.rs
index 426be63cf21..df746965a92 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,
     }