diff --git a/lib/std/elf.zig b/lib/std/elf.zig index ec5e0be951d13f4fc6042efb83d637dbd22d79a4..962e0ceb9e22f655c9542c94928c98691d63a4fb 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -3062,6 +3062,8 @@ fn genSpecialMemberName(comptime name: []const u8) *const [16]u8 { // member indicates, for each member file. /// String that begins an archive file. pub const ARMAG = "!\n"; +/// String that begins a thin archive file. +pub const ARMAG_THIN = "!\n"; /// String in ar_fmag at the end of each header. pub const ARFMAG = "`\n"; /// 32-bit symtab identifier diff --git a/src/link.zig b/src/link.zig index 72c5d27105bc9e40864b6c5b7ed7feb0917205f2..4999c8a31affc3964f8cf129f6bb50c8c5a87675 100644 --- a/src/link.zig +++ b/src/link.zig @@ -2226,7 +2226,10 @@ fn resolvePathInputLib( const n = file.readPositionalAll(io, ld_script_bytes.items, 0) catch |err| fatal("failed to read '{f}': {t}", .{ std.fmt.alt(test_path, .formatEscapeChar), err }); const buf = ld_script_bytes.items[0..n]; - if (mem.startsWith(u8, buf, std.elf.MAGIC) or mem.startsWith(u8, buf, std.elf.ARMAG)) { + if (mem.startsWith(u8, buf, std.elf.MAGIC) or + mem.startsWith(u8, buf, std.elf.ARMAG) or + mem.startsWith(u8, buf, std.elf.ARMAG_THIN)) + { // Appears to be an ELF or archive file. return finishResolveLibInput(resolved_inputs, test_path, file, link_mode, pq.query); }