Skip to content

Commit a66d170

Browse files
committed
fix
1 parent 29ae77e commit a66d170

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

tools/emscripten.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def align_memory(addr):
128128
return (addr + 15) & -16
129129

130130

131-
def update_settings_glue(wasm_file, metadata):
131+
def update_settings_glue(wasm_file, metadata, base_metadata):
132132
maybe_disable_filesystem(metadata.imports)
133133

134134
# Integrate info from backend
@@ -142,7 +142,10 @@ def update_settings_glue(wasm_file, metadata):
142142
if settings.MAIN_MODULE:
143143
settings.WEAK_IMPORTS += webassembly.get_weak_imports(wasm_file)
144144

145-
settings.WASM_EXPORTS = metadata.all_exports
145+
if base_metadata:
146+
settings.WASM_EXPORTS = base_metadata.all_exports
147+
else:
148+
settings.WASM_EXPORTS = metadata.all_exports
146149
settings.WASM_GLOBAL_EXPORTS = list(metadata.global_exports.keys())
147150
settings.HAVE_EM_ASM = bool(settings.MAIN_MODULE or len(metadata.em_asm_consts) != 0)
148151

@@ -332,7 +335,7 @@ def emscript(in_wasm, out_wasm, outfile_js, js_syms, finalize=True, base_metadat
332335
# If the binary has already been finalized the settings have already been
333336
# updated and we can skip updating them.
334337
if finalize:
335-
update_settings_glue(out_wasm, metadata)
338+
update_settings_glue(out_wasm, metadata, base_metadata)
336339

337340
if not settings.WASM_BIGINT and metadata.em_js_funcs:
338341
import_map = {}

tools/link.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3086,19 +3086,23 @@ def run(linker_inputs, options, state, newargs):
30863086
js_info = get_js_sym_info()
30873087
if not settings.SIDE_MODULE:
30883088
js_syms = js_info['deps']
3089-
3090-
def add_js_deps(sym):
3091-
if sym in js_syms:
3092-
native_deps = js_syms[sym]
3093-
if native_deps:
3094-
settings.REQUIRED_EXPORTS += native_deps
3095-
3096-
for sym in settings.DEFAULT_LIBRARY_FUNCS_TO_INCLUDE:
3097-
add_js_deps(sym)
3098-
for sym in js_info['extraLibraryFuncs']:
3099-
add_js_deps(sym)
3100-
for sym in settings.EXPORTED_RUNTIME_METHODS:
3101-
add_js_deps(shared.demangle_c_symbol_name(sym))
3089+
if settings.LINKABLE:
3090+
for native_deps in js_syms.values():
3091+
settings.REQUIRED_EXPORTS += native_deps
3092+
else:
3093+
def add_js_deps(sym):
3094+
if sym in js_syms:
3095+
native_deps = js_syms[sym]
3096+
if native_deps:
3097+
print(native_deps)
3098+
settings.REQUIRED_EXPORTS += native_deps
3099+
3100+
for sym in settings.DEFAULT_LIBRARY_FUNCS_TO_INCLUDE:
3101+
add_js_deps(sym)
3102+
for sym in js_info['extraLibraryFuncs']:
3103+
add_js_deps(sym)
3104+
for sym in settings.EXPORTED_RUNTIME_METHODS:
3105+
add_js_deps(shared.demangle_c_symbol_name(sym))
31023106
if settings.ASYNCIFY:
31033107
settings.ASYNCIFY_IMPORTS_EXCEPT_JS_LIBS = settings.ASYNCIFY_IMPORTS[:]
31043108
settings.ASYNCIFY_IMPORTS += ['*.' + x for x in js_info['asyncFuncs']]

0 commit comments

Comments
 (0)