aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorvole-dev <dev@vole.dev>2021-10-31 11:38:17 -0500
committerAndrew Kelley <andrew@ziglang.org>2021-12-03 16:53:33 -0700
commit9ede943e0753b250cb9a60a5b9b66ba9bff4a694 (patch)
tree6b0f3a57925b35ee8d1a13d8ce5506585db55edd /src/Compilation.zig
parentff38f560402aa61ce8e4ae38b4fa0ff2ddbaede6 (diff)
downloadzig-9ede943e0753b250cb9a60a5b9b66ba9bff4a694.tar.gz
zig-9ede943e0753b250cb9a60a5b9b66ba9bff4a694.zip
turn off LTO by default for RISCV even in Release mode
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index e58e9049b5..c9512dd26b 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -993,6 +993,12 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
} else if (options.target.os.tag == .windows and link_libcpp) {
// https://github.com/ziglang/zig/issues/8531
break :blk false;
+ } else if (options.target.cpu.arch.isRISCV()) {
+ // Clang and LLVM currently don't support RISC-V target-abi for LTO.
+ // Compiling with LTO may fail or produce undesired results.
+ // See https://reviews.llvm.org/D71387
+ // See https://reviews.llvm.org/D102582
+ break :blk false;
} else switch (options.output_mode) {
.Lib, .Obj => break :blk false,
.Exe => switch (options.optimize_mode) {