From 8679c7a6070c3aa38bcf8e3fad47ac041cb93c90 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 9 Oct 2023 17:24:28 -0700 Subject: [PATCH] Compilation: default to self-hosted backend when not using libllvm When not using libllvm, it means the compiler is not capable of producing an object file or executable, making the self-hosted backends be a better default. --- src/Compilation.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Compilation.zig b/src/Compilation.zig index 4e43c7fccb..b10adad01b 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -841,6 +841,12 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { if (options.main_mod == null) break :blk false; + // If we cannot use LLVM libraries, then our own backends will be a + // better default since the LLVM backend can only produce bitcode + // and not an object file or executable. + if (!use_lib_llvm) + break :blk false; + // If LLVM does not support the target, then we can't use it. if (!target_util.hasLlvmSupport(options.target, options.target.ofmt)) break :blk false;