From 869f55c73c2b0531902733942755a163315348b5 Mon Sep 17 00:00:00 2001 From: dybucc <149513579+dybucc@users.noreply.github.com> Date: Thu, 4 Jun 2026 10:35:02 +0200 Subject: [PATCH] emscripten: deprecate file offset types emscripten follows musl quite closely. The changes they make are not concerned with file offset types. The only exception to this is `blkcnt_t`. This type is defined as 32-bits wide no matter the target. All other file offset types are 64-bit wide no matter the target. --- libc-test/semver/emscripten.txt | 1 - src/unix/linux_like/emscripten/mod.rs | 32 ++++++++++++++++++++++++++- src/unix/linux_like/mod.rs | 1 + 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index dc9e6b4f3b52d..48559aa89bdc3 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -6,4 +6,3 @@ getgrnam getgrnam_r getpwnam_r getpwuid_r -posix_fallocate64 diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 243637437f914..2c1beb962cd60 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -28,19 +28,38 @@ pub type fsfilcnt_t = u32; pub type rlim_t = u64; pub type nlink_t = u32; -pub type ino64_t = crate::ino_t; +#[deprecated(since = "0.2.187", note = "Use `ino_t` instead. See #5142.")] +pub type ino64_t = ino_t; + +#[deprecated(since = "0.2.187", note = "Use `off_t` instead. See #5142.")] pub type off64_t = off_t; + +#[deprecated(since = "0.2.187", note = "Use `blkcnt_t` instead. See #5142.")] pub type blkcnt64_t = crate::blkcnt_t; + +#[deprecated(since = "0.2.187", note = "Use `rlim_t` instead. See #5142.")] pub type rlim64_t = crate::rlim_t; +#[deprecated(since = "0.2.187", note = "Use `rlimit` instead. See #5142.")] pub type rlimit64 = crate::rlimit; + +#[deprecated(since = "0.2.187", note = "Use `flock` instead. See #5142.")] pub type flock64 = crate::flock; + +#[deprecated(since = "0.2.187", note = "Use `stat` instead. See #5142.")] pub type stat64 = crate::stat; + +#[deprecated(since = "0.2.187", note = "Use `statfs` instead. See #5142.")] pub type statfs64 = crate::statfs; + +#[deprecated(since = "0.2.187", note = "Use `statvfs` instead. See #5142.")] pub type statvfs64 = crate::statvfs; + +#[deprecated(since = "0.2.187", note = "Use `dirent` instead. See #5142.")] pub type dirent64 = crate::dirent; extern_ty! { + #[deprecated(since = "0.2.187", note = "Use `fpos_t` instead. See #5142.")] pub type fpos64_t; // FIXME(emscripten): fill this out with a struct } @@ -1456,5 +1475,16 @@ extern "C" { } // Alias to 64 to mimic glibc's LFS64 support +#[deprecated( + since = "0.2.187", + note = "Use \"64\"-unsuffixed routines instead. See #5142." +)] +#[allow(deprecated)] mod lfs64; + +#[deprecated( + since = "0.2.187", + note = "Use \"64\"-unsuffixed routines instead. See #5142." +)] +#[allow(deprecated)] pub use self::lfs64::*; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index fd2bb96bc9283..ce0fcf4d8997c 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -533,6 +533,7 @@ cfg_if! { if #[cfg(target_os = "android")] { pub const RLIM64_INFINITY: c_ulonglong = !0; } else { + #[cfg_attr(target_os = "emscripten", allow(deprecated))] pub const RLIM64_INFINITY: crate::rlim64_t = !0; } }