zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 56507ecf9849719356bb36ed8e5dc539cd060a36 (tree)
parent 746dd51fafa8cdc8d98500af3b3b4b659c1aef92
Author: Josh Megnauth <jo.sh@tutanota.com>
Date:   Sun, 29 Mar 2026 19:56:28 -0400

libzigc: stropts/isastream

`isastream` is an old, deprecated function for the STREAMS framework.
Linux doesn't even support this natively, and so the musl implementation
just returns 0 (not a STREAMS file) for valid file descriptors or -1
(for bad file descriptors).

Diffstat:
Mlib/c.zig | 1+
Alib/c/stropts.zig | 17+++++++++++++++++
Dlib/libc/musl/src/legacy/isastream.c | 7-------
Msrc/libs/musl.zig | 1-
4 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/lib/c.zig b/lib/c.zig @@ -73,6 +73,7 @@ comptime { _ = @import("c/stdlib.zig"); _ = @import("c/string.zig"); _ = @import("c/strings.zig"); + _ = @import("c/stropts.zig"); _ = @import("c/sys/capability.zig"); _ = @import("c/sys/file.zig"); diff --git a/lib/c/stropts.zig b/lib/c/stropts.zig @@ -0,0 +1,17 @@ +const builtin = @import("builtin"); + +const std = @import("std"); +const linux = std.os.linux; + +const symbol = @import("../c.zig").symbol; +const errno = @import("../c.zig").errno; + +comptime { + if (builtin.target.isMuslLibC()) { + symbol(&isastream, "isastream"); + } +} + +fn isastream(fd: c_int) callconv(.c) c_int { + return if (errno(linux.fcntl(fd, linux.F.GETFD, 0)) < 0) -1 else 0; +} diff --git a/lib/libc/musl/src/legacy/isastream.c b/lib/libc/musl/src/legacy/isastream.c @@ -1,7 +0,0 @@ -#include <stropts.h> -#include <fcntl.h> - -int isastream(int fd) -{ - return fcntl(fd, F_GETFD) < 0 ? -1 : 0; -} diff --git a/src/libs/musl.zig b/src/libs/musl.zig @@ -691,7 +691,6 @@ const src_files = [_][]const u8{ "musl/src/legacy/getpagesize.c", "musl/src/legacy/getpass.c", "musl/src/legacy/getusershell.c", - "musl/src/legacy/isastream.c", "musl/src/legacy/lutimes.c", "musl/src/legacy/ulimit.c", "musl/src/legacy/utmpx.c",