File tree Expand file tree Collapse file tree 2 files changed +51
-52
lines changed Expand file tree Collapse file tree 2 files changed +51
-52
lines changed Original file line number Diff line number Diff line change @@ -697,57 +697,6 @@ pub const Os = struct {
697
697
= > | field | @field (os .version_range , @tagName (field )).isAtLeast (ver ),
698
698
};
699
699
}
700
-
701
- /// On Darwin, we always link libSystem which contains libc.
702
- /// Similarly on FreeBSD and NetBSD we always link system libc
703
- /// since this is the stable syscall interface.
704
- pub fn requiresLibC (os : Os ) bool {
705
- return switch (os .tag ) {
706
- .aix ,
707
- .driverkit ,
708
- .macos ,
709
- .ios ,
710
- .tvos ,
711
- .watchos ,
712
- .visionos ,
713
- .dragonfly ,
714
- .openbsd ,
715
- .haiku ,
716
- .solaris ,
717
- .illumos ,
718
- .serenity ,
719
- = > true ,
720
-
721
- .linux ,
722
- .windows ,
723
- .freebsd ,
724
- .netbsd ,
725
- .freestanding ,
726
- .fuchsia ,
727
- .ps3 ,
728
- .zos ,
729
- .rtems ,
730
- .cuda ,
731
- .nvcl ,
732
- .amdhsa ,
733
- .ps4 ,
734
- .ps5 ,
735
- .mesa3d ,
736
- .contiki ,
737
- .amdpal ,
738
- .hermit ,
739
- .hurd ,
740
- .wasi ,
741
- .emscripten ,
742
- .uefi ,
743
- .opencl ,
744
- .opengl ,
745
- .vulkan ,
746
- .plan9 ,
747
- .other ,
748
- = > false ,
749
- };
750
- }
751
700
};
752
701
753
702
pub const aarch64 = @import ("Target/aarch64.zig" );
@@ -2055,6 +2004,56 @@ pub inline fn isWasiLibC(target: *const Target) bool {
2055
2004
return target .os .tag == .wasi and target .abi .isMusl ();
2056
2005
}
2057
2006
2007
+ /// Does this target require linking libc? This may be the case if the target has an unstable
2008
+ /// syscall interface, for example.
2009
+ pub fn requiresLibC (target : * const Target ) bool {
2010
+ return switch (target .os .tag ) {
2011
+ .aix ,
2012
+ .driverkit ,
2013
+ .macos ,
2014
+ .ios ,
2015
+ .tvos ,
2016
+ .watchos ,
2017
+ .visionos ,
2018
+ .dragonfly ,
2019
+ .openbsd ,
2020
+ .haiku ,
2021
+ .solaris ,
2022
+ .illumos ,
2023
+ .serenity ,
2024
+ = > true ,
2025
+
2026
+ .linux
2027
+ .windows ,
2028
+ .freebsd ,
2029
+ .netbsd ,
2030
+ .freestanding ,
2031
+ .fuchsia ,
2032
+ .ps3 ,
2033
+ .zos ,
2034
+ .rtems ,
2035
+ .cuda ,
2036
+ .nvcl ,
2037
+ .amdhsa ,
2038
+ .ps4 ,
2039
+ .ps5 ,
2040
+ .mesa3d ,
2041
+ .contiki ,
2042
+ .amdpal ,
2043
+ .hermit ,
2044
+ .hurd ,
2045
+ .wasi ,
2046
+ .emscripten ,
2047
+ .uefi ,
2048
+ .opencl ,
2049
+ .opengl ,
2050
+ .vulkan ,
2051
+ .plan9 ,
2052
+ .other ,
2053
+ = > false ,
2054
+ };
2055
+ }
2056
+
2058
2057
pub const DynamicLinker = struct {
2059
2058
/// Contains the memory used to store the dynamic linker path. This field
2060
2059
/// should not be used directly. See `get` and `set`. This field exists so
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ pub fn cannotDynamicLink(target: *const std.Target) bool {
20
20
/// Similarly on FreeBSD and NetBSD we always link system libc
21
21
/// since this is the stable syscall interface.
22
22
pub fn osRequiresLibC (target : * const std.Target ) bool {
23
- return target .os . requiresLibC ();
23
+ return target .requiresLibC ();
24
24
}
25
25
26
26
pub fn libCNeedsLibUnwind (target : * const std.Target , link_mode : std.builtin.LinkMode ) bool {
You can’t perform that action at this time.
0 commit comments