From 003c04d95281582aa8cf7b69554448cc9380c112 Mon Sep 17 00:00:00 2001
From: gnzlbg <gonzalobg88@gmail.com>
Date: Wed, 22 May 2019 18:11:21 +0200
Subject: [PATCH] [breaking change] fix types of stat/stat64 structs,
 atime/mtime/ctime fields on Android

---
 libc-test/build.rs                     |  1 +
 src/unix/notbsd/android/b32/mod.rs     | 24 ++++++++++++------------
 src/unix/notbsd/android/b64/aarch64.rs | 12 ++++++------
 src/unix/notbsd/android/b64/x86_64.rs  | 24 ++++++++++++------------
 4 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/libc-test/build.rs b/libc-test/build.rs
index 5d915e13..4fd21721 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1351,6 +1351,7 @@ fn test_android(target: &str) {
             s if s.ends_with("_nsec") && struct_.starts_with("stat") => {
                 s.to_string()
             }
+            "u64" if struct_ == "epoll_event" => "data.u64".to_string(),
             s => s.to_string(),
         }
     });
diff --git a/src/unix/notbsd/android/b32/mod.rs b/src/unix/notbsd/android/b32/mod.rs
index f2ff9492..e0a0d7e6 100644
--- a/src/unix/notbsd/android/b32/mod.rs
+++ b/src/unix/notbsd/android/b32/mod.rs
@@ -35,12 +35,12 @@ s! {
         pub st_size: ::c_longlong,
         pub st_blksize: ::blksize_t,
         pub st_blocks: ::c_ulonglong,
-        pub st_atime: ::c_ulong,
-        pub st_atime_nsec: ::c_ulong,
-        pub st_mtime: ::c_ulong,
-        pub st_mtime_nsec: ::c_ulong,
-        pub st_ctime: ::c_ulong,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_atime: ::c_long,
+        pub st_atime_nsec: ::c_long,
+        pub st_mtime: ::c_long,
+        pub st_mtime_nsec: ::c_long,
+        pub st_ctime: ::c_long,
+        pub st_ctime_nsec: ::c_long,
         pub st_ino: ::c_ulonglong,
     }
 
@@ -57,12 +57,12 @@ s! {
         pub st_size: ::c_longlong,
         pub st_blksize: ::blksize_t,
         pub st_blocks: ::c_ulonglong,
-        pub st_atime: ::c_ulong,
-        pub st_atime_nsec: ::c_ulong,
-        pub st_mtime: ::c_ulong,
-        pub st_mtime_nsec: ::c_ulong,
-        pub st_ctime: ::c_ulong,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_atime: ::c_long,
+        pub st_atime_nsec: ::c_long,
+        pub st_mtime: ::c_long,
+        pub st_mtime_nsec: ::c_long,
+        pub st_ctime: ::c_long,
+        pub st_ctime_nsec: ::c_long,
         pub st_ino: ::c_ulonglong,
     }
 
diff --git a/src/unix/notbsd/android/b64/aarch64.rs b/src/unix/notbsd/android/b64/aarch64.rs
index 94b7959b..cb1c81b2 100644
--- a/src/unix/notbsd/android/b64/aarch64.rs
+++ b/src/unix/notbsd/android/b64/aarch64.rs
@@ -16,11 +16,11 @@ s! {
         __pad2: ::c_int,
         pub st_blocks: ::c_long,
         pub st_atime: ::time_t,
-        pub st_atime_nsec: ::c_ulong,
+        pub st_atime_nsec: ::c_long,
         pub st_mtime: ::time_t,
-        pub st_mtime_nsec: ::c_ulong,
+        pub st_mtime_nsec: ::c_long,
         pub st_ctime: ::time_t,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_ctime_nsec: ::c_long,
         __unused4: ::c_uint,
         __unused5: ::c_uint,
     }
@@ -39,11 +39,11 @@ s! {
         __pad2: ::c_int,
         pub st_blocks: ::c_long,
         pub st_atime: ::time_t,
-        pub st_atime_nsec: ::c_ulong,
+        pub st_atime_nsec: ::c_long,
         pub st_mtime: ::time_t,
-        pub st_mtime_nsec: ::c_ulong,
+        pub st_mtime_nsec: ::c_long,
         pub st_ctime: ::time_t,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_ctime_nsec: ::c_long,
         __unused4: ::c_uint,
         __unused5: ::c_uint,
     }
diff --git a/src/unix/notbsd/android/b64/x86_64.rs b/src/unix/notbsd/android/b64/x86_64.rs
index c813e7da..2ab6080a 100644
--- a/src/unix/notbsd/android/b64/x86_64.rs
+++ b/src/unix/notbsd/android/b64/x86_64.rs
@@ -13,12 +13,12 @@ s! {
         pub st_size: ::off64_t,
         pub st_blksize: ::c_long,
         pub st_blocks: ::c_long,
-        pub st_atime: ::c_ulong,
-        pub st_atime_nsec: ::c_ulong,
-        pub st_mtime: ::c_ulong,
-        pub st_mtime_nsec: ::c_ulong,
-        pub st_ctime: ::c_ulong,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_atime: ::c_long,
+        pub st_atime_nsec: ::c_long,
+        pub st_mtime: ::c_long,
+        pub st_mtime_nsec: ::c_long,
+        pub st_ctime: ::c_long,
+        pub st_ctime_nsec: ::c_long,
         __unused: [::c_long; 3],
     }
 
@@ -33,12 +33,12 @@ s! {
         pub st_size: ::off64_t,
         pub st_blksize: ::c_long,
         pub st_blocks: ::c_long,
-        pub st_atime: ::c_ulong,
-        pub st_atime_nsec: ::c_ulong,
-        pub st_mtime: ::c_ulong,
-        pub st_mtime_nsec: ::c_ulong,
-        pub st_ctime: ::c_ulong,
-        pub st_ctime_nsec: ::c_ulong,
+        pub st_atime: ::c_long,
+        pub st_atime_nsec: ::c_long,
+        pub st_mtime: ::c_long,
+        pub st_mtime_nsec: ::c_long,
+        pub st_ctime: ::c_long,
+        pub st_ctime_nsec: ::c_long,
         __unused: [::c_long; 3],
     }
 }
-- 
GitLab