authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-12 01:50:01-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-12 10:44:17-07:00
log9b0a3942ef22e35a08377265daf4bc3168a1ae21
tree5cddfb0ec8275ed96c422ef5cfdd0aa414132794
parent1ba3fc90bef145310e09026e7e9e09623117a800

objcopy: update for std.elf type safety

the new types make this code seem a bit strange

1 files changed, 6 insertions(+), 4 deletions(-)

lib/compiler/objcopy.zig+6-4
......@@ -832,7 +832,6 @@ fn ElfFile(comptime is_64: bool) type {
832832 const Elf_Shdr = if (is_64) elf.Elf64_Shdr else elf.Elf32_Shdr;
833833 const Elf_Chdr = if (is_64) elf.Elf64_Chdr else elf.Elf32_Chdr;
834834 const Elf_Sym = if (is_64) elf.Elf64_Sym else elf.Elf32_Sym;
835 const Elf_Verdef = if (is_64) elf.Elf64_Verdef else elf.Elf32_Verdef;
836835 const Elf_OffSize = if (is_64) elf.Elf64_Off else elf.Elf32_Off;
837836
838837 return struct {
......@@ -1179,10 +1178,13 @@ fn ElfFile(comptime is_64: bool) type {
11791178 const data = try allocator.alignedAlloc(u8, section_memory_align, src_data.len);
11801179 @memcpy(data, src_data);
11811180
1182 const defs = @as([*]Elf_Verdef, @ptrCast(data))[0 .. @as(usize, @intCast(src.sh_size)) / @sizeOf(Elf_Verdef)];
1181 const defs = @as([*]elf.Verdef, @ptrCast(data))[0 .. @as(usize, @intCast(src.sh_size)) / @sizeOf(elf.Verdef)];
11831182 for (defs) |*def| {
1184 if (def.vd_ndx != elf.SHN_UNDEF)
1185 def.vd_ndx = sections_update[src.sh_info].remap_idx;
1183 // Original author of this next line had elf.SHN_UNDEF
1184 // here which does not make sense given that this field
1185 // is elf.VER_NDX
1186 if (def.ndx != .LOCAL)
1187 def.ndx = @enumFromInt(sections_update[src.sh_info].remap_idx);
11861188 }
11871189
11881190 break :dst_data data;