| ... | @@ -2404,19 +2404,19 @@ pub fn firstLinkerMemberOffsetsSlice(coff: *Coff) []u32 { | ... | @@ -2404,19 +2404,19 @@ pub fn firstLinkerMemberOffsetsSlice(coff: *Coff) []u32 { |
| 2404 | return @ptrCast(@alignCast(Node.known.first_linker_member.slice(&coff.mf)[@sizeOf(u32)..][0 .. len * @sizeOf(u32)])); | 2404 | return @ptrCast(@alignCast(Node.known.first_linker_member.slice(&coff.mf)[@sizeOf(u32)..][0 .. len * @sizeOf(u32)])); |
| 2405 | } | 2405 | } |
| 2406 | | 2406 | |
| 2407 | pub fn secondLinkerMemberNumMembersPtr(coff: *Coff) *u32 { | 2407 | pub fn secondLinkerMemberNumMembersPtr(coff: *Coff) *align(2) u32 { |
| 2408 | assert(coff.isArchive()); | 2408 | assert(coff.isArchive()); |
| 2409 | return @ptrCast(@alignCast(Node.known.second_linker_member.slice(&coff.mf))); | 2409 | return @ptrCast(@alignCast(Node.known.second_linker_member.slice(&coff.mf))); |
| 2410 | } | 2410 | } |
| 2411 | | 2411 | |
| 2412 | pub fn secondLinkerMemberOffsetsSlice(coff: *Coff) []u32 { | 2412 | pub fn secondLinkerMemberOffsetsSlice(coff: *Coff) []align(2) u32 { |
| 2413 | const num_members = coff.targetLoad(coff.secondLinkerMemberNumMembersPtr()); | 2413 | const num_members = coff.targetLoad(coff.secondLinkerMemberNumMembersPtr()); |
| 2414 | return @ptrCast(@alignCast( | 2414 | return @ptrCast(@alignCast( |
| 2415 | Node.known.second_linker_member.slice(&coff.mf)[@sizeOf(u32)..][0 .. num_members * @sizeOf(u32)], | 2415 | Node.known.second_linker_member.slice(&coff.mf)[@sizeOf(u32)..][0 .. num_members * @sizeOf(u32)], |
| 2416 | )); | 2416 | )); |
| 2417 | } | 2417 | } |
| 2418 | | 2418 | |
| 2419 | pub fn secondLinkerMemberNumSymbolsPtr(coff: *Coff) *u32 { | 2419 | pub fn secondLinkerMemberNumSymbolsPtr(coff: *Coff) *align(2) u32 { |
| 2420 | const num_members = coff.targetLoad(coff.secondLinkerMemberNumMembersPtr()); | 2420 | const num_members = coff.targetLoad(coff.secondLinkerMemberNumMembersPtr()); |
| 2421 | return @ptrCast(@alignCast( | 2421 | return @ptrCast(@alignCast( |
| 2422 | Node.known.second_linker_member.slice(&coff.mf)[(1 + num_members) * @sizeOf(u32) ..], | 2422 | Node.known.second_linker_member.slice(&coff.mf)[(1 + num_members) * @sizeOf(u32) ..], |
| ... | @@ -2970,9 +2970,7 @@ fn ensureMemberSymbol(coff: *Coff, mi: Member.Index, name: String) !void { | ... | @@ -2970,9 +2970,7 @@ fn ensureMemberSymbol(coff: *Coff, mi: Member.Index, name: String) !void { |
| 2970 | try coff.lib_string_table.append(gpa, name); | 2970 | try coff.lib_string_table.append(gpa, name); |
| 2971 | | 2971 | |
| 2972 | const slice = Node.known.second_linker_member.slice(&coff.mf); | 2972 | const slice = Node.known.second_linker_member.slice(&coff.mf); |
| 2973 | const num_symbols_ptr: *u32 = @ptrCast(@alignCast(slice[@sizeOf(u32) + num_members * @sizeOf(u32) ..])); | 2973 | coff.targetStore(coff.secondLinkerMemberNumSymbolsPtr(), @intFromEnum(mfli) + 1); |
| 2974 | coff.targetStore(num_symbols_ptr, @intFromEnum(mfli) + 1); | | |
| 2975 | | | |
| 2976 | if (!needs_sort) { | 2974 | if (!needs_sort) { |
| 2977 | @memmove(slice[new_header_size..][0..coff.lib_string_len], slice[old_header_size..][0..coff.lib_string_len]); | 2975 | @memmove(slice[new_header_size..][0..coff.lib_string_len], slice[old_header_size..][0..coff.lib_string_len]); |
| 2978 | @memcpy(slice[new_header_size + coff.lib_string_len ..][0..name_slice.len], name_slice[0..name_slice.len]); | 2976 | @memcpy(slice[new_header_size + coff.lib_string_len ..][0..name_slice.len], name_slice[0..name_slice.len]); |
| ... | @@ -4670,7 +4668,7 @@ fn loadObject( | ... | @@ -4670,7 +4668,7 @@ fn loadObject( |
| 4670 | | 4668 | |
| 4671 | if (include_section) { | 4669 | if (include_section) { |
| 4672 | assert(coff.getNode(symbol.si.get(coff).ni) == .input_section); | 4670 | assert(coff.getNode(symbol.si.get(coff).ni) == .input_section); |
| 4673 | symbol.si.get(coff).extra = .{ .isli = @enumFromInt(coff.input_symbols.items.len) }; | 4671 | symbol.si.get(coff).setExtra(.{ .isli = @enumFromInt(coff.input_symbols.items.len) }); |
| 4674 | coff.input_symbols.addOneAssumeCapacity().* = .{ | 4672 | coff.input_symbols.addOneAssumeCapacity().* = .{ |
| 4675 | .si = symbol.si, | 4673 | .si = symbol.si, |
| 4676 | .name = symbol.name, | 4674 | .name = symbol.name, |