diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-06-30 14:31:46 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-06-30 18:33:02 -0700 |
| commit | 152462e2e1513ca9d7db5c2d6a2a61b547c5151c (patch) | |
| tree | bb541574002b430386c403b1a45e7bc92b3c3c93 /src/target.zig | |
| parent | 902dc8c721c762bc5d1b9786bad47b21da45042c (diff) | |
| download | zig-152462e2e1513ca9d7db5c2d6a2a61b547c5151c.tar.gz zig-152462e2e1513ca9d7db5c2d6a2a61b547c5151c.zip | |
stage2: object format affects whether LLVM can be used
Diffstat (limited to 'src/target.zig')
| -rw-r--r-- | src/target.zig | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/target.zig b/src/target.zig index 93c179b7f0..ea8b3efc45 100644 --- a/src/target.zig +++ b/src/target.zig @@ -204,7 +204,24 @@ pub fn hasValgrindSupport(target: std.Target) bool { /// The set of targets that LLVM has non-experimental support for. /// Used to select between LLVM backend and self-hosted backend when compiling in /// release modes. -pub fn hasLlvmSupport(target: std.Target) bool { +pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool { + switch (ofmt) { + // LLVM does not support these object formats: + .c, + .plan9, + => return false, + + .coff, + .elf, + .macho, + .wasm, + .spirv, + .hex, + .raw, + .nvptx, + => {}, + } + return switch (target.cpu.arch) { .arm, .armeb, |
