From 2622575fde2b5d70926fe62ed272412d72eef7b0 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Wed, 30 Dec 2020 23:41:49 +0100 Subject: [PATCH] std: Remove duplicated code Make osRequiresLibC call Os.requiresLibC, let's keep a single list of OS that require the libc to be linked in. --- lib/std/target.zig | 3 +++ src/target.zig | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/std/target.zig b/lib/std/target.zig index 9a006a95fa..1dda5358fb 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -337,6 +337,9 @@ pub const Target = struct { }; } + /// On Darwin, we always link libSystem which contains libc. + /// Similarly on FreeBSD and NetBSD we always link system libc + /// since this is the stable syscall interface. pub fn requiresLibC(os: Os) bool { return switch (os.tag) { .freebsd, diff --git a/src/target.zig b/src/target.zig index cfe16f3fe6..d33e8d06b0 100644 --- a/src/target.zig +++ b/src/target.zig @@ -128,10 +128,7 @@ pub fn cannotDynamicLink(target: std.Target) bool { /// Similarly on FreeBSD and NetBSD we always link system libc /// since this is the stable syscall interface. pub fn osRequiresLibC(target: std.Target) bool { - return switch (target.os.tag) { - .freebsd, .netbsd, .dragonfly, .openbsd, .macos, .ios, .watchos, .tvos => true, - else => false, - }; + return target.os.requiresLibC(); } pub fn libcNeedsLibUnwind(target: std.Target) bool {