From 61cf2b1af033a83ec2137e21824a8afa01318388 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 23 Aug 2026 18:52:40 -0700 Subject: [PATCH] add support for freebsd, netbsd, openbsd --- AnyWritable.zig | 3 +++ allocating_writer.zig | 3 +++ buffered_writer.zig | 3 +++ fixed_buffer_stream.zig | 3 +++ hash_writer.zig | 3 +++ licenses.txt | 3 +++ nio.zig | 9 ++++++++- zigmod.yml | 3 +++ 8 files changed, 29 insertions(+), 1 deletion(-) diff --git a/AnyWritable.zig b/AnyWritable.zig index c3d44d973fd904752011ae8a2470838f434acbd7..c8867cd3e2591cf88aa7c9ab6baf60ab6c966d21 100644 --- a/AnyWritable.zig +++ b/AnyWritable.zig @@ -4,6 +4,9 @@ const sys_linux = @import("sys-linux"); const sys = switch (builtin.target.os.tag) { .linux => sys_linux, + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; diff --git a/allocating_writer.zig b/allocating_writer.zig index 34b8241c331d69fad451f8e24eed0a65ca51a3d4..cc53d7de06445fac78f9013c6dac334e41cc6a10 100644 --- a/allocating_writer.zig +++ b/allocating_writer.zig @@ -5,6 +5,9 @@ const builtin = @import("builtin"); const sys = switch (builtin.target.os.tag) { .linux => @import("sys-linux"), .macos => @import("sys-darwin"), + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; diff --git a/buffered_writer.zig b/buffered_writer.zig index 62ca73411bead8512732870bc43cb78aaeff4982..9ed3a251660452ed31e86ddf73dc5114c36e6346 100644 --- a/buffered_writer.zig +++ b/buffered_writer.zig @@ -6,6 +6,9 @@ const sys_linux = @import("sys-linux"); const sys = switch (builtin.target.os.tag) { .linux => sys_linux, + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; diff --git a/fixed_buffer_stream.zig b/fixed_buffer_stream.zig index 56ece82bcabf44f97be502dff638e8d62bcc1177..1a345fa39629ad49d740cb62ea071ab8a48852d1 100644 --- a/fixed_buffer_stream.zig +++ b/fixed_buffer_stream.zig @@ -6,6 +6,9 @@ const sys_linux = @import("sys-linux"); const sys = switch (builtin.target.os.tag) { .linux => sys_linux, .macos => @import("sys-darwin"), + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; diff --git a/hash_writer.zig b/hash_writer.zig index e8578455609bfa33b1bbb3113f93142bb1a3ba82..eb38ee9b7a09fd4b30428b0bc43da787991ddc77 100644 --- a/hash_writer.zig +++ b/hash_writer.zig @@ -7,6 +7,9 @@ const builtin = @import("builtin"); const sys = switch (builtin.target.os.tag) { .linux => @import("sys-linux"), .macos => @import("sys-darwin"), + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; diff --git a/licenses.txt b/licenses.txt index 5cd58b739328d3af77b2041337711bcc168d4862..febd8099851f4d1b14ed0277774e886271eca308 100644 --- a/licenses.txt +++ b/licenses.txt @@ -6,4 +6,7 @@ MIT: = https://spdx.org/licenses/MIT - git https://github.com/nektro/zig-extras - git https://github.com/nektro/zig-sys-darwin +- git https://github.com/nektro/zig-sys-freebsd - git https://github.com/nektro/zig-sys-linux +- git https://github.com/nektro/zig-sys-netbsd +- git https://github.com/nektro/zig-sys-openbsd diff --git a/nio.zig b/nio.zig index 911f5371ca863f5078a3a0be5bc377f4f93c9c36..59ce04c1350429e79db329a4bffcac1f61f47151 100644 --- a/nio.zig +++ b/nio.zig @@ -8,6 +8,9 @@ pub const fmt = @import("./fmt.zig"); const sys = switch (builtin.target.os.tag) { .linux => sys_linux, .macos => @import("sys-darwin"), + .freebsd => @import("sys-freebsd"), + .netbsd => @import("sys-netbsd"), + .openbsd => @import("sys-openbsd"), else => unreachable, }; @@ -454,7 +457,11 @@ pub const crypto_random: std.Random = .{ .fillFn = getrandomFill, }; fn getrandomFill(_: *anyopaque, buffer: []u8) void { - _ = sys.getrandom(buffer, 0) catch unreachable; + if (builtin.target.abi.isMusl()) { + _ = sys.getrandom(buffer, 0) catch unreachable; + return; + } + sys.libc.arc4random_buf(buffer.ptr, buffer.len); } pub fn randomBytes(comptime len: usize) [len]u8 { diff --git a/zigmod.yml b/zigmod.yml index da71d5bec464aba69f725b2350d34fa9126aae93..d62d4afb99d43bfa6880d0222b37fa436e68fc9c 100644 --- a/zigmod.yml +++ b/zigmod.yml @@ -7,3 +7,6 @@ dependencies: - src: git https://github.com/nektro/zig-sys-linux - src: git https://github.com/nektro/zig-extras - src: git https://github.com/nektro/zig-sys-darwin + - src: git https://github.com/nektro/zig-sys-freebsd + - src: git https://github.com/nektro/zig-sys-netbsd + - src: git https://github.com/nektro/zig-sys-openbsd -- 2.54.0