Commit e1d5bb365b

Jakub Konka <kubkon@jakubkonka.com>
2024-09-04 15:55:38
elf: fix 32bit build
1 parent 516955d
Changed files (2)
src/link/Elf/AtomList.zig
@@ -85,8 +85,9 @@ pub fn write(list: AtomList, buffer: *std.ArrayList(u8), undefs: anytype, elf_fi
 
     log.debug("writing atoms in section '{s}'", .{elf_file.getShString(osec.sh_name)});
 
-    try buffer.ensureUnusedCapacity(list.size);
-    buffer.appendNTimesAssumeCapacity(0, list.size);
+    const list_size = math.cast(usize, list.size) orelse return error.Overflow;
+    try buffer.ensureUnusedCapacity(list_size);
+    buffer.appendNTimesAssumeCapacity(0, list_size);
 
     for (list.atoms.items) |ref| {
         const atom_ptr = elf_file.atom(ref).?;
@@ -120,8 +121,9 @@ pub fn writeRelocatable(list: AtomList, buffer: *std.ArrayList(u8), elf_file: *E
 
     log.debug("writing atoms in section '{s}'", .{elf_file.getShString(osec.sh_name)});
 
-    try buffer.ensureUnusedCapacity(list.size);
-    buffer.appendNTimesAssumeCapacity(0, list.size);
+    const list_size = math.cast(usize, list.size) orelse return error.Overflow;
+    try buffer.ensureUnusedCapacity(list_size);
+    buffer.appendNTimesAssumeCapacity(0, list_size);
 
     for (list.atoms.items) |ref| {
         const atom_ptr = elf_file.atom(ref).?;
src/link/Elf/eh_frame.zig
@@ -235,7 +235,7 @@ pub fn calcEhFrameSize(elf_file: *Elf) !usize {
 
     var offset: usize = if (elf_file.zigObjectPtr()) |zo| blk: {
         const sym = zo.symbol(zo.eh_frame_index orelse break :blk 0);
-        break :blk sym.atom(elf_file).?.size;
+        break :blk math.cast(usize, sym.atom(elf_file).?.size) orelse return error.Overflow;
     } else 0;
 
     var cies = std.ArrayList(Cie).init(gpa);