Skip to content

Commit e900f6c

Browse files
committed
rustc: Disable NEON on armv7 android.
We thought Google's ABI for arvm7 required neon, but it is currently optional, perhaps because there is a significant population of Tegra 2 devices still in use. This turns off neon code generation outside #[target-feature] blocks just like we do on armv7-unknown-linux-gnu, but unlike most other armv7 targets. LLVM defaults to +neon for this target, so an explicit disable is necessary. See https://developer.android.com/ndk/guides/abis.html#v7a for instruction set extension requirements. Closes #38402.
1 parent d250169 commit e900f6c

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/librustc_back/target/armv7_linux_androideabi.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -12,7 +12,7 @@ use target::{Target, TargetOptions, TargetResult};
1212

1313
pub fn target() -> TargetResult {
1414
let mut base = super::android_base::opts();
15-
base.features = "+v7,+thumb2,+vfp3,+d16".to_string();
15+
base.features = "+v7,+thumb2,+vfp3,+d16,-neon".to_string();
1616
base.max_atomic_width = Some(64);
1717

1818
Ok(Target {

0 commit comments

Comments
 (0)