| ... | @@ -60,7 +60,12 @@ pub fn picLevel(target: std.Target) u32 { | ... | @@ -60,7 +60,12 @@ pub fn picLevel(target: std.Target) u32 { |
| 60 | /// This is not whether the target supports Position Independent Code, but whether the -fPIC | 60 | /// This is not whether the target supports Position Independent Code, but whether the -fPIC |
| 61 | /// C compiler argument is valid to Clang. | 61 | /// C compiler argument is valid to Clang. |
| 62 | pub fn supports_fpic(target: std.Target) bool { | 62 | pub fn supports_fpic(target: std.Target) bool { |
| 63 | return target.os.tag != .windows and target.os.tag != .uefi; | 63 | return switch (target.os.tag) { |
| | 64 | .windows, |
| | 65 | .uefi, |
| | 66 | => target.abi == .gnu or target.abi == .cygnus, |
| | 67 | else => true, |
| | 68 | }; |
| 64 | } | 69 | } |
| 65 | | 70 | |
| 66 | pub fn alwaysSingleThreaded(target: std.Target) bool { | 71 | pub fn alwaysSingleThreaded(target: std.Target) bool { |