It looks like the global it complains about is "eb", the emterpreter base (where the emterpreted code is placed in linear memory). That isn't known at compile time, so the ctor evaller can't precompute it away. In other words, this is a limitation of combining the emterpreter, which allocates some memory dynamically, and the ctor evaller.
In theory it could be worth looking into making that allocation a static one, but I don't know offhand how easy that would be. If someone wants to take a look, it is currently generated as something like "var eb=getMemory(256736);" Another option might be to tell the emterpreter to not emterpret the method it is trying to use "eb" in (since only emterpreted methods will use that global). On Thu, Aug 3, 2017 at 8:04 PM, liyu <coldfire...@gmail.com> wrote: > Hi, we are trying the emscripten/incoming branch. the wasm-ctor-eval > always returns us "ctor_evaller: not successful". It fails even with the > simple test prog (attachment) using this command: > "emcc -Oz source.cpp -std=c++14 -stdlib=libc++ -s EMTERPRETIFY=1 -s > EMTERPRETIFY_ASYNC=1 --proxy-to-worker --bind -s NO_EXIT_RUNTIME=1 -s > TOTAL_MEMORY=369098752 -s DISABLE_EXCEPTION_CATCHING=0 -s INLINING_LIMIT=1 > -s WASM=1 -s DETERMINISTIC=1 -s BINARYEN_TRAP_MODE='js' > > the debug output looks like below: > > *DEBUG:root:ctor_evaller: 3 ctors, from |__ATINIT__.push({ func: > function() { __GLOBAL__I_000101() } }, { func: function() { > __GLOBAL__sub_I_source_cpp() } }, { func: function() { > __GLOBAL__sub_I_iostream_cpp() } });* > > *DEBUG:root:ctor_evaller (wasm): trying to eval 3 global constructors* > *DEBUG:root:wasm ctor cmd: > ['D:/Emscripten/binaryen/master_vs2015_64bit_binaryen\\bin\\wasm-ctor-eval', > 'a.out.wasm', '-o', 'a.out.wasm', > '--ctors=__GLOBAL__I_000101,__GLOBAL__sub_I_source_cpp,__GLOBAL__sub_I_iostream_cpp']* > *DEBUG:root:trying to eval __GLOBAL__I_000101* > * ...stopping since could not eval: tried to access a dangerous > (import-initialized) global: global$3* > *DEBUG:root:ctor_evaller: not successful* > > is this an unknown issue? or did we miss anything? > Thanks in advance > > -- > 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 emscripten-discuss+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 emscripten-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.