diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-06-29 09:59:38 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-29 09:59:38 +0200 |
| commit | e8377659560497beb36ec1f981b024f74292c1b9 (patch) | |
| tree | a2c00b2800368763c7ef6710f6c2e55c795bdac2 /src/Compilation.zig | |
| parent | d3363b7a61cc0833d6eb60077b90cf12b95155f0 (diff) | |
| parent | 09f4e2d9d138d313b93ab10cbac1fee2a8f4e9f0 (diff) | |
| download | zig-e8377659560497beb36ec1f981b024f74292c1b9.tar.gz zig-e8377659560497beb36ec1f981b024f74292c1b9.zip | |
zig rc: Fix include directory detection when cross-compiling from certain host archs (#24288)
* resinator: Only preprocess when the input is an .rc file
* resinator: Fix include directory detection when cross-compiling from certain host archs
Previously, resinator would use the host arch as the target arch when looking for windows-gnu include directories. However, Zig only thinks it can provide a libc for targets specified in the `std.zig.target.available_libcs` array, which only includes a few for windows-gnu. Therefore, when cross-compiling from a host architecture that doesn't have a windows-gnu target in the available_libcs list, resinator would fail to detect the MinGW include directories.
Now, the custom option `/:target` is passed to `zig rc` which is intended for the COFF object file target, but can be re-used for the include directory target as well. For the include directory target, resinator will convert the MachineType to the relevant arch, or fail if there is no equivalent arch/no support for detecting the includes for the MachineType (currently 64-bit Itanium and EBC).
Fixes the `windows_resources` standalone test failing when the host is, for example, `riscv64-linux`.
Diffstat (limited to 'src/Compilation.zig')
| -rw-r--r-- | src/Compilation.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig index 4136b21f61..fb9ee617f5 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -6058,6 +6058,8 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 self_exe_path, "rc", "--zig-integration", + "/:target", + @tagName(comp.getTarget().cpu.arch), "/:no-preprocess", "/x", // ignore INCLUDE environment variable "/c65001", // UTF-8 codepage @@ -6115,6 +6117,8 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 self_exe_path, "rc", "--zig-integration", + "/:target", + @tagName(comp.getTarget().cpu.arch), "/:depfile", out_dep_path, "/:depfile-fmt", |
