aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-01-15 18:31:44 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 18:31:44 -0800
commit744bb5d16a1acdabb7c078f7a1a30eefeac733cc (patch)
treeba6e043f65776159680f703dd48b63da7e94a37e /src
parentdcb4134835e0c0bb0c130731efec741b41aba522 (diff)
downloadzig-744bb5d16a1acdabb7c078f7a1a30eefeac733cc.tar.gz
zig-744bb5d16a1acdabb7c078f7a1a30eefeac733cc.zip
wasm linker: change rules about symbol visibility
export by default means export, as expected. if you want hidden visibility then use hidden visibility.
Diffstat (limited to 'src')
-rw-r--r--src/link/Wasm.zig2
-rw-r--r--src/link/Wasm/Flush.zig3
2 files changed, 2 insertions, 3 deletions
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index cd08cbfdfd..cf1a560fb3 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -3502,7 +3502,7 @@ fn markFunction(wasm: *Wasm, i: ObjectFunctionIndex, override_export: bool) link
if (!is_obj and (override_export or function.flags.isExported(rdynamic))) {
const symbol_name = function.name.unwrap().?;
- if (function.flags.visibility_hidden) {
+ if (!override_export and function.flags.visibility_hidden) {
try wasm.hidden_function_exports.put(gpa, symbol_name, @enumFromInt(gop.index));
} else {
try wasm.function_exports.put(gpa, symbol_name, @enumFromInt(gop.index));
diff --git a/src/link/Wasm/Flush.zig b/src/link/Wasm/Flush.zig
index 800803cc21..c001b751d4 100644
--- a/src/link/Wasm/Flush.zig
+++ b/src/link/Wasm/Flush.zig
@@ -210,9 +210,8 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {
const function_index = Wasm.FunctionIndex.fromIpNav(wasm, nav_export.nav_index).?;
const explicit = f.missing_exports.swapRemove(nav_export.name);
const is_hidden = !explicit and switch (export_index.ptr(zcu).opts.visibility) {
- .protected => false,
.hidden => true,
- .default => !comp.config.rdynamic,
+ .default, .protected => false,
};
if (is_hidden) {
try wasm.hidden_function_exports.put(gpa, nav_export.name, function_index);