Problem with sigprocmask() when linking libc

Hi, I run into somewhat strange problem with sigprocmask().
Here is source code:

// spm.zig
const std = @import("std");
const os = std.os;
const sigProcMask = os.sigprocmask;
const SigSet = os.sigset_t;
const SIG = os.SIG;

pub fn main() void {
    var sset: SigSet = os.empty_sigset;
    os.linux.sigaddset(&sset, SIG.TERM);
    sigProcMask(SIG.BLOCK, &sset, null);
}

It compiles successfully with zig build-exe spm.zig.
But when linking with libc, I get this error:

$ /opt/zig/zig build-exe spm.zig -lc
/opt/zig/lib/std/os.zig:5503:38: error: expected type 'c_int', found 'u32'
    switch (errno(system.sigprocmask(flags, set, oldset))) {
                                     ^~~~~
/opt/zig/lib/std/os.zig:5503:38: note: signed 32-bit int cannot represent all possible unsigned 32-bit values
referenced by:
    sigProcMask: spm.zig:4:23
    main: spm.zig:11:5

How can I fix this?
Casting SIG.BLOCK to c_int does not help.