From d8ad45fd8025a6639af882ce8898e6cb7e71e798 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 27 Jun 2022 14:29:02 -0700 Subject: [PATCH] HACK: use i64 for time_t on musl Musl has use a 64-bit time_t since 1.2.0, but rust still uses the old 32-bit time_t on 32-bit platforms. https://github.com/rust-lang/libc/pull/2088 will eventually fix this, but until then use i64 for time_t on musl in our tree. This will break binary compatibility with rust crates built against musl outside our tree, but those shouldn't get mixed with our tree. Bug: 216192129 Test: m USE_HOST_MUSL=true host-native -k Change-Id: Iaafd06e180514157015607be50f625cb0661e1b8 --- patches/musl_time_t.patch | 13 +++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 patches/musl_time_t.patch diff --git a/patches/musl_time_t.patch b/patches/musl_time_t.patch new file mode 100644 index 00000000..c238a17d --- /dev/null +++ b/patches/musl_time_t.patch @@ -0,0 +1,13 @@ +diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs +index 70710734..929108ce 100644 +--- a/src/unix/linux_like/linux/musl/mod.rs ++++ b/src/unix/linux_like/linux/musl/mod.rs +@@ -9,7 +9,7 @@ pub type clock_t = c_long; + See #1848 for more info." + ) + )] +-pub type time_t = c_long; ++pub type time_t = i64; + pub type suseconds_t = c_long; + pub type ino_t = u64; + pub type off_t = i64; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 70710734..929108ce 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -9,7 +9,7 @@ pub type clock_t = c_long; See #1848 for more info." ) )] -pub type time_t = c_long; +pub type time_t = i64; pub type suseconds_t = c_long; pub type ino_t = u64; pub type off_t = i64;