Commit e6a5fe7c55

Andrew Kelley <andrew@ziglang.org>
2025-01-06 05:33:13
wasm linker: apply object relocations to data segments
1 parent 290d97b
Changed files (1)
src
link
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,
                 };