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 {...@@ -832,7 +832,6 @@ fn ElfFile(comptime is_64: bool) type {
832 const Elf_Shdr = if (is_64) elf.Elf64_Shdr else elf.Elf32_Shdr;832 const Elf_Shdr = if (is_64) elf.Elf64_Shdr else elf.Elf32_Shdr;
833 const Elf_Chdr = if (is_64) elf.Elf64_Chdr else elf.Elf32_Chdr;833 const Elf_Chdr = if (is_64) elf.Elf64_Chdr else elf.Elf32_Chdr;
834 const Elf_Sym = if (is_64) elf.Elf64_Sym else elf.Elf32_Sym;834 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;
836 const Elf_OffSize = if (is_64) elf.Elf64_Off else elf.Elf32_Off;835 const Elf_OffSize = if (is_64) elf.Elf64_Off else elf.Elf32_Off;
837836
838 return struct {837 return struct {
...@@ -1179,10 +1178,13 @@ fn ElfFile(comptime is_64: bool) type {...@@ -1179,10 +1178,13 @@ fn ElfFile(comptime is_64: bool) type {
1179 const data = try allocator.alignedAlloc(u8, section_memory_align, src_data.len);1178 const data = try allocator.alignedAlloc(u8, section_memory_align, src_data.len);
1180 @memcpy(data, src_data);1179 @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)];
1183 for (defs) |*def| {1182 for (defs) |*def| {
1184 if (def.vd_ndx != elf.SHN_UNDEF)1183 // Original author of this next line had elf.SHN_UNDEF
1185 def.vd_ndx = sections_update[src.sh_info].remap_idx;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);
1186 }1188 }
11871189
1188 break :dst_data data;1190 break :dst_data data;