From e6a5fe7c5566007d9299c75f41455fa48c64db40 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 5 Jan 2025 20:33:13 -0800 Subject: [PATCH] wasm linker: apply object relocations to data segments --- src/link/Wasm/Flush.zig | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/link/Wasm/Flush.zig b/src/link/Wasm/Flush.zig index ee95a6b3dd..dde69db260 100644 --- a/src/link/Wasm/Flush.zig +++ b/src/link/Wasm/Flush.zig @@ -796,9 +796,11 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void { } break :append; }, - .object => |i| c: { - if (true) @panic("TODO apply data segment relocations"); - break :c i.ptr(wasm).payload; + .object => |i| { + const ptr = i.ptr(wasm); + try binary_bytes.appendSlice(gpa, ptr.payload.slice(wasm)); + if (!is_obj) applyRelocs(binary_bytes.items[code_start..], ptr.offset, ptr.relocations(wasm), wasm); + break :append; }, inline .uav_exe, .uav_obj, .nav_exe, .nav_obj => |i| i.value(wasm).code, };