Include Linux atomic emulation on androideabi

The old androideabi uses armv5 and thus also needs the atomic emulation
and because Android is basically Linux it can use the same
implementation.
This commit is contained in:
Tilmann Meyer 2021-05-31 16:32:46 +02:00
parent 00d23b27a0
commit 31e3ae708c
No known key found for this signature in database
GPG key ID: A95E199988004B62
2 changed files with 10 additions and 3 deletions

View file

@ -69,8 +69,11 @@ fn main() {
println!("cargo:rustc-cfg=thumb_1")
}
// Only emit the ARM Linux atomic emulation on pre-ARMv6 architectures.
if llvm_target[0] == "armv4t" || llvm_target[0] == "armv5te" {
// Only emit the ARM Linux atomic emulation on pre-ARMv6 architectures. This
// includes the old androideabi. It is deprecated but it is available as a
// rustc target (arm-linux-androideabi).
if llvm_target[0] == "armv4t" || llvm_target[0] == "armv5te" || llvm_target[2] == "androideabi"
{
println!("cargo:rustc-cfg=kernel_user_helpers")
}
}

View file

@ -49,7 +49,11 @@ pub mod mem;
#[cfg(target_arch = "arm")]
pub mod arm;
#[cfg(all(kernel_user_helpers, target_os = "linux", target_arch = "arm"))]
#[cfg(all(
kernel_user_helpers,
any(target_os = "linux", target_os = "android"),
target_arch = "arm"
))]
pub mod arm_linux;
#[cfg(any(target_arch = "riscv32"))]