diff --git a/emcc.py b/emcc.py index 0f38dedb9d60f..47a60b8601d4e 100755 --- a/emcc.py +++ b/emcc.py @@ -1700,6 +1700,9 @@ def default_setting(name, new_default): settings.LINKABLE = 1 settings.EXPORT_ALL = 1 + if settings.LINKABLE and settings.USER_EXPORTED_FUNCTIONS: + diagnostics.warning('unused-command-line-argument', 'EXPORTED_FUNCTIONS is not valid with LINKABLE set (normally due to SIDE_MODULE=1/MAIN_MODULE=1) since all functions are exported this mode. To export only a subset use SIDE_MODULE=2/MAIN_MODULE=2') + if settings.MAIN_MODULE: settings.DEFAULT_LIBRARY_FUNCS_TO_INCLUDE += [ '$getDylinkMetadata', diff --git a/tests/test_core.py b/tests/test_core.py index 071b00242b156..e9bcc570414cb 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -1989,7 +1989,9 @@ def test_em_asm_direct(self): def test_em_js(self, args, force_c): if '-sMAIN_MODULE' in args: self.check_dylink() - self.emcc_args += args + ['-sEXPORTED_FUNCTIONS=_main,_malloc'] + self.emcc_args += args + if '-sMAIN_MODULE' not in args: + self.emcc_args += ['-sEXPORTED_FUNCTIONS=_main,_malloc'] self.do_core_test('test_em_js.cpp', force_c=force_c) self.assertContained("no args returning int", read_file('test_em_js.js'))