From 41ab64c3eb7a104e78ca96cfe861a03f3a150d47 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 24 Dec 2023 19:20:03 -0700 Subject: Compilation.Config.resolve: explicit error set Some logic has comptime-known conditions, causing the inferred error set to be different on different compiler build configurations. --- src/Compilation/Config.zig | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/Compilation') diff --git a/src/Compilation/Config.zig b/src/Compilation/Config.zig index fc4b774baa..4abc27029d 100644 --- a/src/Compilation/Config.zig +++ b/src/Compilation/Config.zig @@ -99,7 +99,39 @@ pub const Options = struct { rdynamic: ?bool = null, }; -pub fn resolve(options: Options) !Config { +pub const ResolveError = error{ + WasiExecModelRequiresWasi, + SharedMemoryIsWasmOnly, + ObjectFilesCannotShareMemory, + SharedMemoryRequiresAtomicsAndBulkMemory, + ThreadsRequireSharedMemory, + UnknownTargetEntryPoint, + NonExecutableEntryPoint, + EmittingLlvmModuleRequiresLlvmBackend, + LlvmLacksTargetSupport, + ZigLacksTargetSupport, + EmittingBinaryRequiresLlvmLibrary, + LldIncompatibleObjectFormat, + LtoRequiresLld, + SanitizeThreadRequiresLibCpp, + LibCppRequiresLibUnwind, + OsRequiresLibC, + LibCppRequiresLibC, + LibUnwindRequiresLibC, + TargetCannotDynamicLink, + LibCRequiresDynamicLinking, + SharedLibrariesRequireDynamicLinking, + ExportMemoryAndDynamicIncompatible, + DynamicLibraryPrecludesPie, + TargetRequiresPie, + SanitizeThreadRequiresPie, + BackendLacksErrorTracing, + LlvmLibraryUnavailable, + LldUnavailable, + ClangUnavailable, +}; + +pub fn resolve(options: Options) ResolveError!Config { const target = options.resolved_target.result; // WASI-only. Resolve the optional exec-model option, defaults to command. -- cgit v1.2.3