diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 7bd727e79f..e9a84d8062 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -2451,7 +2451,10 @@ pub fn fadvise(fd: fd_t, offset: i64, len: i64, advice: usize) usize { const length_halves = splitValue64(len); return syscall6( - .fadvise64_64, + switch (builtin.abi) { + .gnuabin32, .gnux32, .muslabin32, .muslx32 => .fadvise64, + else => .fadvise64_64, + }, @as(usize, @bitCast(@as(isize, fd))), offset_halves[0], offset_halves[1], diff --git a/test/tests.zig b/test/tests.zig index ac23bac754..e123dc1e2b 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -217,6 +217,14 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .x86_64, + .os_tag = .linux, + .abi = .gnux32, + }, + .link_libc = true, + }, .{ .target = .{ .cpu_arch = .x86_64, @@ -225,6 +233,14 @@ const test_targets = blk: { }, .link_libc = true, }, + .{ + .target = .{ + .cpu_arch = .x86_64, + .os_tag = .linux, + .abi = .muslx32, + }, + .link_libc = true, + }, .{ .target = .{ .cpu_arch = .x86_64,