WASI Libc is sufficiently stable and usable for many purposes, as most of the
POSIX-compatible APIs are stable, though it is continuing to evolve to better
-align with wasm and WASI.
+align with wasm and WASI. For example, pthread support is still a work in
+progress.
## Usage
## Building from source
To build a WASI sysroot from source, obtain a WebAssembly-supporting C compiler
-(currently this is only clang 8+, though we'd like to support other compilers as well),
+(currently this is only clang 10+, though we'd like to support other compilers as well),
and then run:
```sh
-make WASM_CC=/path/to/clang/with/wasm/support \
- WASM_AR=/path/to/llvm-ar \
- WASM_NM=/path/to/llvm-nm
+make CC=/path/to/clang/with/wasm/support \
+ AR=/path/to/llvm-ar \
+ NM=/path/to/llvm-nm
```
This makes a directory called "sysroot", by default. See the top of the Makefile
to run the compiler using the newly built sysroot.
Note that Clang packages typically don't include cross-compiled builds of
-compiler-rt, `libclang_rt.builtins-wasm32.a`, so they may not be usable without
+compiler-rt, libcxx, or libcxxabi, for `libclang_rt.builtins-wasm32.a`, libc++.a,
+or libc++abi.a, respectively, so they may not be usable without
extra setup. This is one of the things [wasi-sdk] simplifies, as it includes
-a cross-compiled compiler-rt.
+cross-compiled builds of compiler-rt, libc++.a, and libc++abi.a.
+
+## Arch Linux AUR package
+For Arch Linux users, there's an unofficial AUR package tracking this git repo that can be installed under the name [wasi-libc-git].
[wasi-sdk]: https://github.com/WebAssembly/wasi-sdk
+[wasi-libc-git]: https://aur.archlinux.org/packages/wasi-libc-git/