authorgravatar for pr0h3ckr@gmail.comMomo <pr0h3ckr@gmail.com> 2026-10-14 20:47:00+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-14 20:47:00+02:00
log58ab2093d423a59c5e02ebd38cc917d351395342
treecbcaa04b0ae666b9113ac9acc86c23fdd2aed14d
parentea7667f5a5b44d548c398b2f40ffa239b1a1fb6d

Coff: check for .dll and .lib case-insensitively

fixes https://codeberg.org/ziglang/zig/issues/37201 Reviewed-on: https://codeberg.org/ziglang/zig/pulls/37208 Reviewed-by: Ryan Liptak <squeek502@noreply.codeberg.org>

1 files changed, 2 insertions(+), 2 deletions(-)

src/link/Coff.zig+2-2
......@@ -5326,7 +5326,7 @@ fn loadArchive(coff: *Coff, path: std.Build.Cache.Path, fr: *Io.File.Reader) Loa
53265326 });
53275327
53285328 const ext = ".dll";
5329 if (!std.mem.endsWith(u8, lib_name, ext))
5329 if (!std.ascii.endsWithIgnoreCase(lib_name, ext))
53305330 return diags.failParse(
53315331 path,
53325332 "unexpected extension for import '{s} ('{s}'): '{s}'",
......@@ -5421,7 +5421,7 @@ pub fn prelink(coff: *Coff, prog_node: std.Progress.Node) link.Error!void {
54215421 };
54225422 const search_paths = all_paths[0..if (target.abi == .msvc or target.abi == .itanium) 3 else 1];
54235423 lib: for (coff.pending_default_libs.items) |lib| {
5424 if (!std.mem.eql(u8, std.fs.path.extension(lib.path), ".lib"))
5424 if (!std.ascii.endsWithIgnoreCase(std.fs.path.extension(lib.path), ".lib"))
54255425 return comp.link_diags.failParse(
54265426 lib.ioi.path(coff),
54275427 "/DEFAULTLIB library '{s}' had unexpected extension",