authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-14 20:23:15-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 15:11:37-08:00
log9ddb1c50928ad202991369a87b58ce65f40428f2
treefcd3ca2bb5de85f612cb0029620977903534b2df
parentec5fc6a2a8cac1993f1a3fe496377c37b80193ca

wasm linker: implement --export-table


1 files changed, 9 insertions(+), 1 deletions(-)

src/link/Wasm/Flush.zig+9-1
...@@ -710,7 +710,15 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {...@@ -710,7 +710,15 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {
710 }710 }
711 exports_len += wasm.function_exports.entries.len;711 exports_len += wasm.function_exports.entries.len;
712712
713 // No table exports.713 if (wasm.export_table and f.indirect_function_table.entries.len > 0) {
714 const name = "__indirect_function_table";
715 const index: u32 = @intCast(wasm.tables.getIndex(.__indirect_function_table).?);
716 try leb.writeUleb128(binary_writer, @as(u32, @intCast(name.len)));
717 try binary_bytes.appendSlice(gpa, name);
718 try binary_bytes.append(gpa, @intFromEnum(std.wasm.ExternalKind.table));
719 try leb.writeUleb128(binary_writer, index);
720 exports_len += 1;
721 }
714722
715 if (export_memory) {723 if (export_memory) {
716 const name = "memory";724 const name = "memory";