zig

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

commit ee3c7a9f39b397aa8a1153f5699d9ff39bd9b359 (tree)
parent 6384ac6601b4d0654022786edba0cb775255ebd6
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Mon,  1 Jun 2026 10:27:10 +0200

std.c: fix some symbol names under the msvc ABI

Diffstat:
Mlib/std/c.zig | 23++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/lib/std/c.zig b/lib/std/c.zig @@ -11134,14 +11134,23 @@ pub const ioctl = switch (native_os) { pub extern "c" fn bzero(s: *anyopaque, n: usize) void; -pub extern "c" fn swab(noalias from: *const anyopaque, noalias to: *anyopaque, n: isize) void; +pub const swab = switch (builtin.abi) { + .msvc => private._swab, + else => private.swab, +}; pub extern "c" fn strncmp(a: [*:0]const c_char, b: [*:0]const c_char, max: usize) c_int; pub extern "c" fn strcasecmp(a: [*:0]const c_char, b: [*:0]const c_char) c_int; pub extern "c" fn strncasecmp(a: [*:0]const c_char, b: [*:0]const c_char, max: usize) c_int; -pub extern "c" fn strdup(s: [*:0]const c_char) ?[*:0]c_char; +pub const strdup = switch (builtin.abi) { + .msvc => private._strdup, + else => private.strdup, +}; pub extern "c" fn strndup(s: [*:0]const c_char, n: usize) ?[*:0]c_char; -pub extern "c" fn wcsdup(s: [*:0]const wchar_t) ?[*:0]wchar_t; +pub const wcsdup = switch (builtin.abi) { + .msvc => private._wcsdup, + else => private.wcsdup, +}; pub extern "c" fn ffs(i: c_int) c_int; pub extern "c" fn ffsl(i: c_long) c_long; @@ -11555,6 +11564,14 @@ pub const setkeymap = serenity.setkeymap; /// External definitions shared by two or more operating systems. const private = struct { + pub extern "c" fn strdup(s: [*:0]const c_char) ?[*:0]c_char; + pub extern "c" fn _strdup(s: [*:0]const c_char) ?[*:0]c_char; + pub extern "c" fn wcsdup(s: [*:0]const wchar_t) ?[*:0]wchar_t; + pub extern "c" fn _wcsdup(s: [*:0]const wchar_t) ?[*:0]wchar_t; + + pub extern "c" fn swab(noalias from: *const anyopaque, noalias to: *anyopaque, n: isize) void; + pub extern "c" fn _swab(noalias from: *const anyopaque, noalias to: *anyopaque, n: isize) void; + extern "c" fn close(fd: fd_t) c_int; extern "c" fn clock_getres(clk_id: clockid_t, tp: *timespec) c_int; extern "c" fn clock_gettime(clk_id: clockid_t, tp: *timespec) c_int;