Commit e5a3a10a5a
Changed files (2)
src
Compilation
src/Compilation/Config.zig
@@ -119,6 +119,7 @@ pub const ResolveError = error{
ZigLacksTargetSupport,
EmittingBinaryRequiresLlvmLibrary,
LldIncompatibleObjectFormat,
+ LldCannotIncrementallyLink,
LtoRequiresLld,
SanitizeThreadRequiresLibCpp,
LibCppRequiresLibUnwind,
@@ -257,6 +258,11 @@ pub fn resolve(options: Options) ResolveError!Config {
break :b true;
}
+ if (options.use_llvm == false) {
+ if (options.use_lld == true) return error.LldCannotIncrementallyLink;
+ break :b false;
+ }
+
if (options.use_lld) |x| break :b x;
break :b true;
};
src/main.zig
@@ -3949,6 +3949,7 @@ fn createModule(
error.ZigLacksTargetSupport => fatal("compiler backend unavailable for the specified target", .{}),
error.EmittingBinaryRequiresLlvmLibrary => fatal("producing machine code via LLVM requires using the LLVM library", .{}),
error.LldIncompatibleObjectFormat => fatal("using LLD to link {s} files is unsupported", .{@tagName(target.ofmt)}),
+ error.LldCannotIncrementallyLink => fatal("self-hosted backends do not support linking with LLD", .{}),
error.LtoRequiresLld => fatal("LTO requires using LLD", .{}),
error.SanitizeThreadRequiresLibCpp => fatal("thread sanitization is (for now) implemented in C++, so it requires linking libc++", .{}),
error.LibCppRequiresLibUnwind => fatal("libc++ requires linking libunwind", .{}),