我正在尝试使用emscripten为我的JS应用程序构建一个边模块,因此我不需要它默认生成的所有粘合代码,并且可以自己提供其余的粘合代码。
根据https://github.com/kripken/emscripten/wiki/WebAssembly-Standalone,大多数不必要的依赖项将被自动删除,并且使用-fno-exceptions
的C ++类将不会生成肿的异常处理。
但是,使用malloc
(很难避免)会带来多个名为__syscall1
的导入,以此类推。为什么它使用这样的隐秘名称,以及如何找出它们的含义要做?
我还考虑过使用libc malloc.c
,但是它依赖于许多其他标准库,并且从5k +行中删除所有依赖项是一件很麻烦的事情。
编辑:意识到syscall等同于linux内核syscall,它们的实现在library_syscall.js中。整个列表似乎并不完整-即malloc调用了syscall#45(brk
),但是它不在列表中。