Thanks, I see. Ok, this looks like a wasm2js bug. Any chance you can provide the project so I can build locally to test? If not, if you can provide the build output with -g1 (so there is whitespace) that might (but no sure) be enough to figure this out.
(The -O1 issue is a known limitation of EM_ASM currently. As the error suggests, EM_JS is a workaround, which is also better anyhow, so best to switch to that.) On Tue, Feb 18, 2020 at 11:43 PM Laurent Pugin <[email protected]> wrote: > There are no other flags (except for the exported functions). It is using > upstream. > > I tested with other optimization flags. > > With -O0: it compiles and runs as normal > With -O2 and -O3: it compiles but fails to run as reported before > With -O1: compilation fails with > > Fatal: local.get of unknown in arg0 of call to emscripten_asm_const_int > (used by EM_ASM* macros) in function 18029. > This might be caused by aggressive compiler transformations. Consider > using EM_JS instead. > shared:ERROR: > '/Users/laurent/tools/emsdk/upstream/bin/wasm-emscripten-finalize > --detect-features --global-base=1024 > /var/folders/wd/7vt44b8n035_qp6k8mt55rdr0000gn/T/emscripten_temp_ue0ycr/verovio.wasm > -o > /var/folders/wd/7vt44b8n035_qp6k8mt55rdr0000gn/T/emscripten_temp_ue0ycr/verovio.wasm.o.wasm' > failed (1) > Failed. > > > > On Tuesday, 18 February 2020 22:37:49 UTC+1, Alon Zakai wrote: >> >> Hmm, this is puzzling. Nothing in that range on emscripten looks >> suspicious, except perhaps for closure - do you have any other link flags, >> like --closure 1, than those mentioned? >> >> If that's not it, perhaps this is a regression in Binaryen's wasm2js. To >> confirm, this is with 1.39.8 or 1.39.8-upstream, and and not >> 1.39.8-fastcomp? >> >> Do you also get an error when building with -O0 or -O1? The error message >> might be clearer. >> >> >> On Mon, Feb 17, 2020 at 11:16 PM Laurent Pugin <[email protected]> wrote: >> >>> Hi, >>> >>> I have a problem with a project that builds asm.js output with the >>> following parameters. >>> >>> my $FLAGS = "-O3"; >>> $FLAGS .= " -DNDEBUG"; >>> $FLAGS .= " --memory-init-file 0"; >>> $FLAGS .= " -std=c++17"; >>> $FLAGS .= " -s ASM_JS=1"; >>> $FLAGS .= " -s WASM=0"; >>> $FLAGS .= " -s TOTAL_MEMORY=256MB"; >>> $FLAGS .= " -s TOTAL_STACK=128MB"; >>> >>> It generates a single JS file that can be included in a webpage within a >>> <script> tag in the header, and then exported function are accessible. This >>> used to work fine up to 1.39.7 but fails with 1.39.8. Any ideas of what has >>> changed between the two versions and how to fix it? Thanks >>> >>> The console throws (Chrome) >>> >>> verovio-toolkit.js:43 failed to asynchronously prepare wasm: >>> ReferenceError: oa is not defined >>> (anonymous) @ verovio-toolkit.js:43 >>> Promise.then (async) >>> instantiateArrayBuffer @ verovio-toolkit.js:43 >>> instantiateAsync @ verovio-toolkit.js:43 >>> createWasm @ verovio-toolkit.js:43 >>> (anonymous) @ verovio-toolkit.js:43 >>> verovio-toolkit.js:43 ReferenceError: oa is not defined >>> verovio-toolkit.js:43 ReferenceError: oa is not defined >>> abort @ verovio-toolkit.js:43 >>> (anonymous) @ verovio-toolkit.js:43 >>> Promise.then (async) >>> instantiateArrayBuffer @ verovio-toolkit.js:43 >>> instantiateAsync @ verovio-toolkit.js:43 >>> createWasm @ verovio-toolkit.js:43 >>> (anonymous) @ verovio-toolkit.js:43 >>> verovio-toolkit.js:43 Uncaught (in promise) Error: abort(ReferenceError: >>> oa is not defined). Build with -s ASSERTIONS=1 for more info. >>> at abort (verovio-toolkit.js:43) >>> at verovio-toolkit.js:43 >>> abort @ verovio-toolkit.js:43 >>> (anonymous) @ verovio-toolkit.js:43 >>> Promise.then (async) >>> instantiateArrayBuffer @ verovio-toolkit.js:43 >>> instantiateAsync @ verovio-toolkit.js:43 >>> createWasm @ verovio-toolkit.js:43 >>> (anonymous) @ verovio-toolkit.js:43 >>> verovio-toolkit.js:43 Uncaught TypeError: Cannot read property 'apply' >>> of undefined >>> at Object.Module._vrvToolkit_constructor [as constructor] >>> (verovio-toolkit.js:43) >>> at new verovio.toolkit (verovio-toolkit.js:135) >>> at verovio.js:3 >>> Module._vrvToolkit_constructor @ verovio-toolkit.js:43 >>> verovio.toolkit @ verovio-toolkit.js:135 >>> (anonymous) @ verovio.js:3 >>> >>> Firefox >>> >>> failed to asynchronously prepare wasm: ReferenceError: oa is not defined >>> verovio-toolkit-light.js:43:10692 >>> <http://localhost:4001/javascript/develop/verovio-toolkit-light.js> >>> ReferenceError: oa is not defined verovio-toolkit-light.js:43:9036 >>> <http://localhost:4001/javascript/develop/verovio-toolkit-light.js> >>> ReferenceError: oa is not defined verovio-toolkit-light.js:43:9046 >>> <http://localhost:4001/javascript/develop/verovio-toolkit-light.js> >>> Error: abort(ReferenceError: oa is not defined). Build with -s >>> ASSERTIONS=1 for more info. >>> TypeError: Module.asm.vrvToolkit_constructor is undefined >>> verovio-toolkit-light.js:43:85119 >>> <http://localhost:4001/javascript/develop/verovio-toolkit-light.js> >>> _vrvToolkit_constructor >>> http://localhost:4001/javascript/develop/verovio-toolkit-light.js:43 >>> toolkit >>> http://localhost:4001/javascript/develop/verovio-toolkit-light.js:135 >>> <anonymous> http://localhost:4001/midi.xhtml:111 >>> >>> >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/emscripten-discuss/9619c413-0463-427e-ae26-27c41942466d%40googlegroups.com >>> <https://groups.google.com/d/msgid/emscripten-discuss/9619c413-0463-427e-ae26-27c41942466d%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/emscripten-discuss/6fe85c54-f3a2-44c6-bb2c-26002a3e14ef%40googlegroups.com > <https://groups.google.com/d/msgid/emscripten-discuss/6fe85c54-f3a2-44c6-bb2c-26002a3e14ef%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpTUiyyfnnjd75s6fu_F8jdFrXu3WsUT%3D8niUL10eyJTmg%40mail.gmail.com.
