Commit 2622575fde

LemonBoy <thatlemon@gmail.com>
2020-12-30 23:41:49
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.
1 parent daed2ba
Changed files (2)
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,
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 {