aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os.zig
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-04-01 10:00:37 +0000
committerLemonBoy <thatlemon@gmail.com>2020-04-01 12:23:18 +0200
commit4209ab90a8a9922bcc407e12b0e58b827a179a91 (patch)
tree6ac13422bc623d261d90ef1a64ab70375dc2538e /lib/std/os.zig
parent070ace4b22810116f7816eeccbc1ce600be5b2a2 (diff)
downloadzig-4209ab90a8a9922bcc407e12b0e58b827a179a91.tar.gz
zig-4209ab90a8a9922bcc407e12b0e58b827a179a91.zip
std: Use the versioned libc symbols if needed
Many symbols on NetBSD and some on OSX require the definition of an alias.
Diffstat (limited to 'lib/std/os.zig')
-rw-r--r--lib/std/os.zig30
1 files changed, 4 insertions, 26 deletions
diff --git a/lib/std/os.zig b/lib/std/os.zig
index 48d82797bd..467badca95 100644
--- a/lib/std/os.zig
+++ b/lib/std/os.zig
@@ -2553,14 +2553,7 @@ pub const FStatError = error{
pub fn fstat(fd: fd_t) FStatError!Stat {
var stat: Stat = undefined;
- const symbol_name = if (comptime std.Target.current.isDarwin())
- "fstat$INODE64"
- else if (std.Target.current.os.tag == .netbsd)
- "__fstat50"
- else
- "fstat";
-
- switch (errno(@field(system, symbol_name)(fd, &stat))) {
+ switch (errno(system.fstat(fd, &stat))) {
0 => return stat,
EINVAL => unreachable,
EBADF => unreachable, // Always a race condition.
@@ -3427,12 +3420,7 @@ pub fn clock_gettime(clk_id: i32, tp: *timespec) ClockGetTimeError!void {
return;
}
- const symbol_name = if (std.Target.current.os.tag == .netbsd)
- "__clock_gettime50"
- else
- "clock_gettime";
-
- switch (errno(@field(system, symbol_name)(clk_id, tp))) {
+ switch (errno(system.clock_gettime(clk_id, tp))) {
0 => return,
EFAULT => unreachable,
EINVAL => return error.UnsupportedClock,
@@ -3454,12 +3442,7 @@ pub fn clock_getres(clk_id: i32, res: *timespec) ClockGetTimeError!void {
return;
}
- const symbol_name = if (std.Target.current.os.tag == .netbsd)
- "__clock_getres50"
- else
- "clock_getres";
-
- switch (errno(@field(system, symbol_name)(clk_id, res))) {
+ switch (errno(system.clock_getres(clk_id, res))) {
0 => return,
EFAULT => unreachable,
EINVAL => return error.UnsupportedClock,
@@ -3525,12 +3508,7 @@ pub const SigaltstackError = error{
} || UnexpectedError;
pub fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) SigaltstackError!void {
- const symbol_name = if (std.Target.current.os.tag == .netbsd)
- "__sigaltstack14"
- else
- "sigaltstack";
-
- switch (errno(@field(system, symbol_name)(ss, old_ss))) {
+ switch (errno(system.sigaltstack(ss, old_ss))) {
0 => return,
EFAULT => unreachable,
EINVAL => unreachable,