So apparently the types are shortened in the dynCall name which means that 
`___invoke_double_i32` should invoke `dynCall_di`. 

Once I changed this for all the `__invoke_` functions it worked again like 
it did without `EMCC_EXPERIMENTAL_USE_LLD=1`.

Op donderdag 12 april 2018 11:30:25 UTC+2 schreef Sander Spies:
>
> Hi all,
>
> At the moment I'm working on a wasm backend for OCaml and using Emscripten 
> for the C parts of the OCaml compiler. For the wasm parts generated by C to 
> communicate with parts generated from OCaml I will need to have linking in 
> place. Ideally I want to do this using LLD with the 
> `EMCC_EXPERIMENTAL_USE_LLD=1` flag, but when trying to build using this 
> flag I'm getting:
>
> ```
> (...)
> warning: unresolved symbol: __invoke_i32_i32 
> warning: unresolved symbol: __invoke_i32_i32*_i32 
> (...)
> ```
>
> Now the * is easily changed to something else, but I'm not sure how to 
> solve the implementation part. From what I understand, something like:
>
> ```
> function invoke_ii(index,a1) {
>   try {
>     return Module["dynCall_ii"](index,a1);
>   } catch(e) {
>     if (typeof e !== 'number' && e !== 'longjmp') throw e;
>     Module["setThrew"](1, 0);
>   }
> }
> ```
>
> which is what happens when using `EMCC_EXPERIMENTAL_USE_LLD=0`, should be 
> implemented. The `dynCall`s seem to be generated, but I'm 
> not sure how to call the correct one from `__invoke_i32_i32` for example.
>
> Any guidance on this would be much appreciated,
>
> Sander
>
>

-- 
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.

Reply via email to