@jdmichaud/wasm-toolkit v19.0.0
wasm-toolkit
Ensures your environment can compile C/C++ code to freestanding WASM.
Either use the local clang installation or provides statically build binaries.
How to install
npm install @jdmichaud/wasm-toolkitBuild to wasm
cat > add.c
extern void *malloc(unsigned long size);
// add.c
int *add (int first, int second)
{
int *i = malloc(sizeof (int));
*i = first + second;
return i;
}
<EOF>
npx clang --target=wasm32 \
--no-standard-libraries \
-Wl,--export-all -Wl,--no-entry -Wl,--allow-undefined \
-o add.wasm add.cInspect a WASM file
npx wasm-objdump -x add.wasmHow to build
You will need:
cmakeversion 3 or above
npm run buildAnd hopefully npm pack will suffice to package the built tools.
Contribute
How to build on linux
You will need a C/C++ compiler (gcc 11 is fine) and cmake (at least version 3). To build clang, execute:
./make-clang-linux.shTo build the WASM utilities:
./make-wabt-linux.shThis should produce the clang/ldd and utilities statically linked binaries in
the appropriate dist/ folder.
How to build on windows
You will need a C/C++ compiler (Visual Studio 2019 is fine) and cmake (at least version 3).
To build clang, execute:
./make-clang-win.shTo build the WASM utilities:
./make-wabt-win.shWindows VM on linux
Useful documentation here: https://wiki.gentoo.org/wiki/QEMU/Windows_guest
Create a drive:
qemu-img create -f qcow2 win10.img 30GDownload a Windows ISO from microsoft website.
Download the windows drivers ISO image:
curl -sOL https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.isoStart the VM (replace the ISO name accordingly):
qemu-system-x86_64 -enable-kvm \
-cpu host \
-drive file=win10.img,if=virtio \
-net nic,model=rtl8139 \
-net user,hostname=windowsvm \
-m 16G \
-monitor stdio \
-name "Windows" \
-boot d \
-drive file=WindowsISO.iso,media=cdrom \
-drive file=virtio-win-0.X.XXX.iso,media=cdromYou might want to install windows without the -nic option first to avoid
creating an online account and enable the option on the first boot.
Once virtdio drivers are install, you can add the options:
-vga virtio
-smp cores=$(nproc)On windows, you will need build tools to be installed. You can find them there.
Additionally, you will need cmake and python (at least 3.9).