Skip to content

Commit

Permalink
Include Linux atomic emulation on androideabi
Browse files Browse the repository at this point in the history
The old androideabi uses armv5 and thus also needs the atomic emulation
and because Android is basically Linux it can use the same
implementation.
  • Loading branch information
Tilmann Meyer committed May 31, 2021
1 parent 612ddf8 commit 186517b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
7 changes: 5 additions & 2 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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"))]
Expand Down

0 comments on commit 186517b

Please sign in to comment.