Skip to content

Commit 597502b

Browse files
authored
More minor updates in preparation for llvm main-mangling change. NFC (#17124)
Followup to #17099
1 parent 7439ad8 commit 597502b

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/library_dylink.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -444,12 +444,12 @@ var LibraryDylink = {
444444

445445
// Export native export on the Module object.
446446
// TODO(sbc): Do all users want this? Should we skip this by default?
447-
#if HAS_MAIN
448-
var module_sym = asmjsMangle(sym);
449-
#else
447+
#if !hasExportedFunction('_main')
450448
// If the main module doesn't define main it could be defined in one of
451449
// the side module, and we need to handle the mangled named.
452450
var module_sym = asmjsMangle(sym == '__main_argc_argv' ? 'main' : sym);
451+
#else
452+
var module_sym = asmjsMangle(sym);
453453
#endif
454454
if (!Module.hasOwnProperty(module_sym)) {
455455
Module[module_sym] = exports[sym];

tests/test_other.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,8 @@ def test_combining_object_files_from_archive(self):
527527
# Should be two symbols (and in the wasm backend, also __original_main)
528528
syms = building.llvm_nm('combined.o')
529529
self.assertIn('main', syms['defs'])
530-
self.assertEqual(len(syms['defs']), 3)
530+
# TODO(sbc): Should be 3 once https://reviews.llvm.org/D75277 lands
531+
self.assertIn(len(syms['defs']), (3, 4))
531532

532533
self.run_process([EMXX, 'combined.o', '-o', 'combined.o.js'])
533534
self.assertContained('side got: hello from main, over', self.run_js('combined.o.js'))

tools/building.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,9 @@ def metadce(js_file, wasm_file, minify_whitespace, debug_info):
999999
exports = settings.WASM_EXPORTS
10001000
else:
10011001
exports = settings.WASM_FUNCTION_EXPORTS
1002+
if settings.MANGLED_MAIN and 'main' in exports:
1003+
exports.append('__main_argc_argv')
1004+
10021005
extra_info = '{ "exports": [' + ','.join(f'["{asmjs_mangle(x)}", "{x}"]' for x in exports) + ']}'
10031006

10041007
txt = acorn_optimizer(js_file, ['emitDCEGraph', 'noPrint'], return_output=True, extra_info=extra_info)

0 commit comments

Comments
 (0)