aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-05-29 18:22:37 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-05-30 02:11:36 +0200
commit4641e9556d1343e95e4676e2f1e3024173db9962 (patch)
tree9e3eb60c8b4cb0412a0ada4d3d6defa6396397fe /src/Compilation.zig
parent0cbff2ff7ff175a40c452bb5ca4a32a282a77088 (diff)
downloadzig-4641e9556d1343e95e4676e2f1e3024173db9962.tar.gz
zig-4641e9556d1343e95e4676e2f1e3024173db9962.zip
mingw: Link to ucrtbased.dll instead of API set DLLs in Debug mode.
By using the debug UCRT, we get access to functions like _CrtDbgReport. Closes #23983.
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 8f986a5cdf..0e74cff502 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2352,8 +2352,12 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil
comp.remaining_prelink_tasks += 2;
// When linking mingw-w64 there are some import libs we always need.
- try comp.windows_libs.ensureUnusedCapacity(gpa, mingw.always_link_libs.len);
- for (mingw.always_link_libs) |name| comp.windows_libs.putAssumeCapacity(name, {});
+ const always_link_libs: []const []const u8 = switch (comp.root_mod.optimize_mode) {
+ .Debug => &mingw.always_link_libs_debug,
+ .ReleaseSafe, .ReleaseFast, .ReleaseSmall => &mingw.always_link_libs_release,
+ };
+ try comp.windows_libs.ensureUnusedCapacity(gpa, always_link_libs.len);
+ for (always_link_libs) |name| comp.windows_libs.putAssumeCapacity(name, {});
} else {
return error.LibCUnavailable;
}