From c903d4c2975509299fd3d2600a0c4c2102f445d0 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Fri, 4 Dec 2020 15:26:12 +0200 Subject: Fix compilation on aarch64 target Adds configuration attributes to use u8 byte pointers in aarch64. Closes #22 build fails on aarch64-linux --- src/main.rs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 21796b8..08683f3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -57,8 +57,16 @@ pub mod username { /* taken from whoami-0.1.1 */ fn getpwuid( pw_uid: u32, - #[cfg(not(all(target_arch = "arm", target_pointer_width = "32")))] buffer: &mut [i8; 16384], - #[cfg(all(target_arch = "arm", target_pointer_width = "32"))] buffer: &mut [u8; 16384], + #[cfg(not(any( + all(target_arch = "arm", target_pointer_width = "32"), + target_arch = "aarch64" + )))] + buffer: &mut [i8; 16384], + #[cfg(any( + all(target_arch = "arm", target_pointer_width = "32"), + target_arch = "aarch64" + ))] + buffer: &mut [u8; 16384], ) -> Option { let mut pwentp = null_mut(); #[cfg(any( @@ -116,9 +124,15 @@ pub mod username { } pub fn username(uid: u32) -> String { - #[cfg(not(all(target_arch = "arm", target_pointer_width = "32")))] + #[cfg(not(any( + all(target_arch = "arm", target_pointer_width = "32"), + target_arch = "aarch64" + )))] let mut buffer = [0i8; 16384]; // from the man page - #[cfg(all(target_arch = "arm", target_pointer_width = "32"))] + #[cfg(any( + all(target_arch = "arm", target_pointer_width = "32"), + target_arch = "aarch64" + ))] let mut buffer = [0u8; 16384]; // from the man page let pwent = getpwuid(uid, &mut buffer); -- cgit v1.2.3