![]() * Use constructor functions for optional init routines. Instead of using weak symbols, use constructor function attributes for the environment and preopen initialization routines. This is simpler, uses less code, and is more LTO-friendly. * Change the constructor priorities to start at 50. We don't currently have specific plans for other levels in the reserved range (0-100), so leave room for both lower and higher priorities. |
||
---|---|---|
.. | ||
cloudlibc | ||
crt | ||
headers | ||
libpreopen | ||
mman | ||
sources | ||
README.md |
"WASI" the WebAssembly System Interface.
WASI libc is conceptually the lower half of a traditional libc implementation. It provides C interfaces to the low-level WASI syscalls.
This is largely based on CloudABI, cloudlibc, and libpreopen, however we use just the low-level syscall wrappers rather than all of cloudlibc and libpreopen, and we have several customizations for use in a WebAssembly sysroot.
The upstream repositories and versions used here are:
cloudlibc - https://github.com/NuxiNL/cloudlibc 8835639f27fc42d32096d59d294a0bbb857dc368 libpreopen - https://github.com/musec/libpreopen b29e9287cc75a7db7291ce3eb468a3d2bad8ceb1
Whole files which are unused are omitted. Changes to upstream code are wrapped
in preprocessor directives controlled by the macro __wasilibc_unmodified_upstream
,
except that CloudABI names have also been renamed to WASI names without annotations.
WASI libc currently depends on the basics and dlmalloc components of reference-sysroot.