Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1.09 KB

README.md

File metadata and controls

25 lines (16 loc) · 1.09 KB

wasmception

Minimal toolset for building wasm files

Export functions

Use linker's --export parameter to specify exports (with clang use -Wl,--export, e.g. -Wl,--export=foo,--export=bar). The use of __attribute__ ((visibility ("default"))) is no longer preferable way to make methods visible -- --export-dynamic needs to be added.

Compile C file

$(WASMCEPTION)/dist/bin/clang --target=wasm32-unknown-unknown-wasm --sysroot=$(WASMCEPTION)/sysroot/ hi.c -o hi.wasm -nostartfiles -Wl,--no-entry,--export=foo

Compile C++ file

$(WASMCEPTION)/dist/bin/clang++ --target=wasm32-unknown-unknown-wasm --sysroot=$(WASMCEPTION)/sysroot/ hi.cpp -o hi.wasm -nostartfiles -Wl,--no-entry,--export=bar -fno-exceptions

Required main and _start functions

The -nostartfiles will not require you to define the main function, but will be looking for the _start function: use -Wl,--no-entry clang (linker) option to avoid specified entry point. As alternative, you can add void _start() {} (or extern "C" void _start() { } in C++) to make linker happy due to -nostartfiles.