From fc7a5f2ae49aa0a0c5e1f1dd1c5678ee3e49b1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 16 Oct 2025 23:38:18 +0200 Subject: [PATCH] std.os.linux: move some generic decls out of the arch bits --- lib/std/os/linux.zig | 15 ++++++++++++--- lib/std/os/linux/aarch64.zig | 12 ------------ lib/std/os/linux/arm.zig | 12 ------------ lib/std/os/linux/hexagon.zig | 7 ------- lib/std/os/linux/loongarch64.zig | 7 ------- lib/std/os/linux/m68k.zig | 7 ------- lib/std/os/linux/mips.zig | 12 ------------ lib/std/os/linux/mips64.zig | 12 ------------ lib/std/os/linux/powerpc.zig | 12 ------------ lib/std/os/linux/powerpc64.zig | 12 ------------ lib/std/os/linux/riscv32.zig | 7 ------- lib/std/os/linux/riscv64.zig | 7 ------- lib/std/os/linux/s390x.zig | 7 ------- lib/std/os/linux/sparc64.zig | 12 ------------ lib/std/os/linux/x86.zig | 12 ------------ lib/std/os/linux/x86_64.zig | 12 ------------ 16 files changed, 12 insertions(+), 153 deletions(-) diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 502b2defc2d813dfb55e2a681f6599e1f1565a8f..a3b675a37910b19b7e72b276303624babede9cad 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -88,7 +88,6 @@ pub fn clone( } pub const ARCH = arch_bits.ARCH; -pub const Elf_Symndx = arch_bits.Elf_Symndx; pub const F = arch_bits.F; pub const Flock = arch_bits.Flock; pub const HWCAP = arch_bits.HWCAP; @@ -103,8 +102,6 @@ pub const mode_t = arch_bits.mode_t; pub const nlink_t = arch_bits.nlink_t; pub const off_t = arch_bits.off_t; pub const time_t = arch_bits.time_t; -pub const timeval = arch_bits.timeval; -pub const timezone = arch_bits.timezone; pub const user_desc = arch_bits.user_desc; pub const tls = @import("linux/tls.zig"); @@ -1611,6 +1608,8 @@ pub fn flock(fd: fd_t, operation: i32) usize { return syscall2(.flock, @as(usize, @bitCast(@as(isize, fd))), @as(usize, @bitCast(@as(isize, operation)))); } +pub const Elf_Symndx = if (native_arch == .s390x) u64 else u32; + // We must follow the C calling convention when we call into the VDSO const VdsoClockGettime = *align(1) const fn (clockid_t, *timespec) callconv(.c) usize; var vdso_clock_gettime: ?VdsoClockGettime = &init_vdso_clock_gettime; @@ -8360,6 +8359,16 @@ pub const POSIX_FADV = switch (native_arch) { }, }; +pub const timeval = extern struct { + tv_sec: isize, + tv_usec: i64, +}; + +pub const timezone = extern struct { + minuteswest: i32, + dsttime: i32, +}; + /// The timespec struct used by the kernel. pub const kernel_timespec = extern struct { sec: i64, diff --git a/lib/std/os/linux/aarch64.zig b/lib/std/os/linux/aarch64.zig index 4888a9eda3a26127916346a3ea7412d6372c8141..771d1126e7dd441847a91d58a7ad175e4cff0631 100644 --- a/lib/std/os/linux/aarch64.zig +++ b/lib/std/os/linux/aarch64.zig @@ -230,15 +230,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: isize, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/arm.zig b/lib/std/os/linux/arm.zig index bef158b925b73d702a6986e615c4e9e47b0190a6..4689bf8be25e6d1c1649a652f74df99563d0a3ec 100644 --- a/lib/std/os/linux/arm.zig +++ b/lib/std/os/linux/arm.zig @@ -266,15 +266,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: i32, - usec: i32, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/hexagon.zig b/lib/std/os/linux/hexagon.zig index e3bf7a87095366f28d544766f08879ce3e24a8a5..230b6ad88d164dfc28e5ba2edcbcd72959f1356e 100644 --- a/lib/std/os/linux/hexagon.zig +++ b/lib/std/os/linux/hexagon.zig @@ -154,11 +154,6 @@ pub const F = struct { pub const GETOWNER_UIDS = 17; }; -pub const timeval = extern struct { - sec: time_t, - usec: i32, -}; - pub const Flock = extern struct { type: i16, whence: i16, @@ -209,6 +204,4 @@ pub const Stat = extern struct { } }; -pub const Elf_Symndx = u32; - pub const VDSO = void; diff --git a/lib/std/os/linux/loongarch64.zig b/lib/std/os/linux/loongarch64.zig index 4ed817167d1a670a8379936d268370402f1d2c07..7fc226bb90c5199742ace39b7ad1d06b3d797648 100644 --- a/lib/std/os/linux/loongarch64.zig +++ b/lib/std/os/linux/loongarch64.zig @@ -176,11 +176,6 @@ pub const Stat = extern struct { } }; -pub const timeval = extern struct { - tv_sec: time_t, - tv_usec: i64, -}; - pub const F = struct { pub const DUPFD = 0; pub const GETFD = 1; @@ -209,5 +204,3 @@ pub const VDSO = struct { pub const CGT_SYM = "__vdso_clock_gettime"; pub const CGT_VER = "LINUX_5.10"; }; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/m68k.zig b/lib/std/os/linux/m68k.zig index c3bd42b2ffb85471efcdcc183a54ff31141cb882..16008053e1eacadb90b23f96f97da240ef72306e 100644 --- a/lib/std/os/linux/m68k.zig +++ b/lib/std/os/linux/m68k.zig @@ -186,11 +186,6 @@ pub const ino_t = u64; pub const dev_t = u64; pub const blkcnt_t = i64; -pub const timeval = extern struct { - sec: time_t, - usec: i32, -}; - pub const Flock = extern struct { type: i16, whence: i16, @@ -230,7 +225,5 @@ pub const Stat = extern struct { } }; -pub const Elf_Symndx = u32; - // No VDSO used as of glibc 112a0ae18b831bf31f44d81b82666980312511d6. pub const VDSO = void; diff --git a/lib/std/os/linux/mips.zig b/lib/std/os/linux/mips.zig index 6412c847bdd656c699830f75d5bce1d642f223eb..dd67a853f2f9da66f98d5ab0a894cbb18c869e32 100644 --- a/lib/std/os/linux/mips.zig +++ b/lib/std/os/linux/mips.zig @@ -336,15 +336,3 @@ pub const Stat = extern struct { }; } }; - -pub const timeval = extern struct { - sec: isize, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/mips64.zig b/lib/std/os/linux/mips64.zig index 44191901933ec17ac233b2df22132f23ec7fccce..4fc77d0fe18b38dc729dc674ccaf87a664409d8a 100644 --- a/lib/std/os/linux/mips64.zig +++ b/lib/std/os/linux/mips64.zig @@ -315,15 +315,3 @@ pub const Stat = extern struct { }; } }; - -pub const timeval = extern struct { - sec: isize, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/powerpc.zig b/lib/std/os/linux/powerpc.zig index 85335b02758a2313dadbe8e385da7eba996c9b98..7ebfe3d69ead93c5f79853d1cb914acd8a5eb69a 100644 --- a/lib/std/os/linux/powerpc.zig +++ b/lib/std/os/linux/powerpc.zig @@ -340,15 +340,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: time_t, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/powerpc64.zig b/lib/std/os/linux/powerpc64.zig index 73e8f740120aa70e36de0bbd9022a146713b71f8..fa8ab5e2386436efacc4236ac57ccc5015a701a2 100644 --- a/lib/std/os/linux/powerpc64.zig +++ b/lib/std/os/linux/powerpc64.zig @@ -325,15 +325,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: isize, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/riscv32.zig b/lib/std/os/linux/riscv32.zig index a0f73adeefd954c6b731b4ab45a3b332b6cab73c..760af2c4898f90de0e944d8967d11b6cb26dbdc3 100644 --- a/lib/std/os/linux/riscv32.zig +++ b/lib/std/os/linux/riscv32.zig @@ -168,11 +168,6 @@ pub const ino_t = u64; pub const dev_t = u64; pub const blkcnt_t = i64; -pub const timeval = extern struct { - sec: time_t, - usec: i64, -}; - pub const Flock = extern struct { type: i16, whence: i16, @@ -214,8 +209,6 @@ pub const Stat = extern struct { } }; -pub const Elf_Symndx = u32; - pub const VDSO = struct { pub const CGT_SYM = "__vdso_clock_gettime"; pub const CGT_VER = "LINUX_4.15"; diff --git a/lib/std/os/linux/riscv64.zig b/lib/std/os/linux/riscv64.zig index 53316204513a9424e2d8e5afdb861960a59204e1..05b8adca680dcadc83701748f06796a1069e3f3b 100644 --- a/lib/std/os/linux/riscv64.zig +++ b/lib/std/os/linux/riscv64.zig @@ -168,11 +168,6 @@ pub const ino_t = u64; pub const dev_t = u64; pub const blkcnt_t = i64; -pub const timeval = extern struct { - sec: time_t, - usec: i64, -}; - pub const Flock = extern struct { type: i16, whence: i16, @@ -214,8 +209,6 @@ pub const Stat = extern struct { } }; -pub const Elf_Symndx = u32; - pub const VDSO = struct { pub const CGT_SYM = "__vdso_clock_gettime"; pub const CGT_VER = "LINUX_4.15"; diff --git a/lib/std/os/linux/s390x.zig b/lib/std/os/linux/s390x.zig index 00bc09c51849af4271df25f09e70fbd60d5f41f4..aade6d9d2f4a6bdb247cad1376f2a58a029a039c 100644 --- a/lib/std/os/linux/s390x.zig +++ b/lib/std/os/linux/s390x.zig @@ -186,11 +186,6 @@ pub const ino_t = u64; pub const dev_t = u64; pub const blkcnt_t = i64; -pub const timeval = extern struct { - sec: time_t, - usec: i64, -}; - pub const Flock = extern struct { type: i16, whence: i16, @@ -229,8 +224,6 @@ pub const Stat = extern struct { } }; -pub const Elf_Symndx = u64; - pub const VDSO = struct { pub const CGT_SYM = "__kernel_clock_gettime"; pub const CGT_VER = "LINUX_2.6.29"; diff --git a/lib/std/os/linux/sparc64.zig b/lib/std/os/linux/sparc64.zig index b542c3f985164611c5b431a615268def740ea50f..bb8c748960824b3864d5b8dabd00992f734b5ee5 100644 --- a/lib/std/os/linux/sparc64.zig +++ b/lib/std/os/linux/sparc64.zig @@ -314,15 +314,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: isize, - usec: i32, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; diff --git a/lib/std/os/linux/x86.zig b/lib/std/os/linux/x86.zig index 6fe4d402b2b74f3cea9f8ae9f6481831b17da4ec..aa94ad6a63bd3cbbd18a70b4cd3d3852d9e904d4 100644 --- a/lib/std/os/linux/x86.zig +++ b/lib/std/os/linux/x86.zig @@ -278,18 +278,6 @@ pub const Stat = extern struct { } }; -pub const timeval = extern struct { - sec: i32, - usec: i32, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; - pub const user_desc = extern struct { entry_number: u32, base_addr: u32, diff --git a/lib/std/os/linux/x86_64.zig b/lib/std/os/linux/x86_64.zig index e3db9e99c4ec730f321d70a627c07193026dc53c..8d27983f2960bec2e058ada8ce74aa632cda185e 100644 --- a/lib/std/os/linux/x86_64.zig +++ b/lib/std/os/linux/x86_64.zig @@ -234,15 +234,3 @@ pub const Stat = extern struct { return self.ctim; } }; - -pub const timeval = extern struct { - sec: isize, - usec: isize, -}; - -pub const timezone = extern struct { - minuteswest: i32, - dsttime: i32, -}; - -pub const Elf_Symndx = u32; -- 2.54.0