diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-12-24 19:20:03 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-01-01 17:51:21 -0700 |
| commit | 41ab64c3eb7a104e78ca96cfe861a03f3a150d47 (patch) | |
| tree | 357286a9f8e5b282497595d4082e388169256928 /src/Compilation | |
| parent | 8cf2cfc52c23fec8de2fa8ca54c2589daed2135b (diff) | |
| download | zig-41ab64c3eb7a104e78ca96cfe861a03f3a150d47.tar.gz zig-41ab64c3eb7a104e78ca96cfe861a03f3a150d47.zip | |
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.
Diffstat (limited to 'src/Compilation')
| -rw-r--r-- | src/Compilation/Config.zig | 34 |
1 files changed, 33 insertions, 1 deletions
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. |
