You can use dlopen on the executable itself ("self") and dlsym to get
function pointers - this was just merged to incoming. Together with
EMULATE_FUNCTION_POINTER_CASTS , you can call a function pointer without
knowing the right type.

- Alon


On Sat, Apr 25, 2015 at 1:26 AM, <[email protected]> wrote:

> Hi there,
>
> I was wondering what would be a possible solution to dynamically call an
> Emscripten-compiled function within the same application (no dynamic
> library).
> The issue is that during compile-time I do not know the target function's
> signature and therefore do not have static C caller code that could invoke
> the required function, but must instead build such code during runtime.
>
> For native languages there exists libffi for exactly this purpose and it
> is using assembler code to put function arguments on the stack.
> I was wondering what the best approach with emscripten is to link a
> dynamic function call to its target function.
> The information I have at a possible caller-site is: (function name,
> function signature, base stack pointer on the heap of the first argument).
> I was thinking about dynamically building a small asm.js module which
> reads the arguments from the heap starting at the base pointer and which
> then builds an appropriate function call.
> This script I would then eval() in order to get an asm.js-compiled
> libffi-like interface.
>
> Would this be a viable approach?
>
> Thanks!
>
> Kind regards,
> Kai
>
> --
> 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].
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to