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:
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",