elf: fix 32bit build

This commit is contained in:
Jakub Konka
2024-09-04 15:55:38 +02:00
parent 516955dbdb
commit e1d5bb365b
2 changed files with 7 additions and 5 deletions

View File

@@ -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).?;

View File

@@ -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);