wasi-libc/libc-bottom-half
Dan Gohman 410c66070a
Use constructor functions for optional init routines. (#142)
* 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.
2019-11-25 14:04:45 -08:00
..
cloudlibc Wasi snapshot preview1 (#140) 2019-11-21 20:06:00 -08:00
crt Use constructor functions for optional init routines. (#142) 2019-11-25 14:04:45 -08:00
headers Use constructor functions for optional init routines. (#142) 2019-11-25 14:04:45 -08:00
libpreopen Use constructor functions for optional init routines. (#142) 2019-11-25 14:04:45 -08:00
mman Use consistent style for wasi-libc C source files. (#131) 2019-11-08 11:59:57 -08:00
sources Use constructor functions for optional init routines. (#142) 2019-11-25 14:04:45 -08:00
README.md Update to libpreopen 8835639f27fc42d32096d59d294a0bbb857dc368. 2019-05-09 09:16:56 -07:00

"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.