]> git.proxmox.com Git - wasi-libc.git/blame - README.md
Add missing asctime symbol
[wasi-libc.git] / README.md
CommitLineData
320054e8 1# WASI Sysroot
dcf13b6f 2
320054e8
DG
3This is a work in progress. It's usable for many purposes, though the APIs
4aren't stable yet.
dcf13b6f
DG
5
6## What is this?
7
320054e8
DG
8It's several things.
9
10First, it's a usable libc. It builds a "sysroot" which can be pointed to by
11compilers, such as Clang 8.0, using the wasm32-unknown-wasi target triple.
12It's a work in progress, but it is already sufficient to run basic programs.
13
14Second, it's a "reference" implementation, which means the interfaces defined
15here can be used by other tools and libraries, even if they don't use all the
16actual implementations here. For example, we don't expect everyone will want
17to use the exact `malloc` implementation provided here, but tools and
18libraries using an ABI-compatible `malloc` interface will be able to
19interoperate regardless of which actual implementation is used.
20
21Third, it's an example showing the use of the WASI API. The libc functionality
22is implemented using calls to WASI functions.
dcf13b6f
DG
23
24## Usage
25
320054e8
DG
26The easiest way to get started with this is to use one of the
27[prepackaged releases](https://github.com/CraneStation/wasmtime-wasi/blob/wasi/docs/WASI-intro.md#how-can-i-write-programs-that-use-wasi).
28
29## Building from source
30
31To build a WASI sysroot from source, obtain a WebAssembly-supporting C compiler
32(currently this is only clang, though we'd like to support other compilers as well),
33and then run:
dcf13b6f
DG
34
35```
36make WASM_CC=/path/to/wasm/supporting/c/compiler
37```
38
c9850bfd 39This makes a directory called "sysroot", by default. See the top of the Makefile
dcf13b6f
DG
40for customization options.
41
42To use the sysroot, use the `--sysroot=` option:
43
44```
45/path/to/wasm/supporting/c/compiler --sysroot=/path/to/the/newly/built/sysroot ...
f2049d9b 46```
dcf13b6f
DG
47
48to run the compiler using the newly built sysroot.