From d8b133d7339605d3cda75459bf986472a72f5bd3 Mon Sep 17 00:00:00 2001 From: codic12 <48339289+codic12@users.noreply.github.com> Date: Tue, 4 May 2021 09:21:23 -0700 Subject: [PATCH] c.zig: fix waitpid() definition --- lib/std/c.zig | 2 +- lib/std/os.zig | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/std/c.zig b/lib/std/c.zig index 183be6108f..f0e53d8747 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -103,7 +103,7 @@ pub extern "c" fn linkat(oldfd: fd_t, oldpath: [*:0]const u8, newfd: fd_t, newpa pub extern "c" fn unlink(path: [*:0]const u8) c_int; pub extern "c" fn unlinkat(dirfd: fd_t, path: [*:0]const u8, flags: c_uint) c_int; pub extern "c" fn getcwd(buf: [*]u8, size: usize) ?[*]u8; -pub extern "c" fn waitpid(pid: c_int, stat_loc: *c_uint, options: c_uint) c_int; +pub extern "c" fn waitpid(pid: pid_t, stat_loc: ?*c_int, options: c_int) pid_t; pub extern "c" fn fork() c_int; pub extern "c" fn access(path: [*:0]const u8, mode: c_uint) c_int; pub extern "c" fn faccessat(dirfd: fd_t, path: [*:0]const u8, mode: c_uint, flags: c_uint) c_int; diff --git a/lib/std/os.zig b/lib/std/os.zig index 4c2fa9f9d0..072771b000 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -3435,10 +3435,10 @@ pub const WaitPidResult = struct { }; pub fn waitpid(pid: pid_t, flags: u32) WaitPidResult { - const Status = if (builtin.link_libc) c_uint else u32; + const Status = if (builtin.link_libc) c_int else u32; var status: Status = undefined; while (true) { - const rc = system.waitpid(pid, &status, flags); + const rc = system.waitpid(pid, &status, if (builtin.link_libc) @intCast(c_int, flags) else flags); switch (errno(rc)) { 0 => return .{ .pid = @intCast(pid_t, rc),