]> git.proxmox.com Git - wasi-libc.git/blobdiff - libc-bottom-half/README.md
bump version to 0.0~git20230821.ec4566b-1~bpo12+pve1
[wasi-libc.git] / libc-bottom-half / README.md
index 09cfa9a2f0b4fb4d946965b99e7f81e7f134644b..1e5401cddfbf159180c03d5715958d5711934354 100644 (file)
@@ -1,23 +1,19 @@
-"WASI" the WebAssembly System Interface.
+# WASI libc "bottom half".
 
-WASI libc is conceptually the lower half of a traditional libc implementation.
-It provides C interfaces to the low-level WASI syscalls.
+The WASI libc "bottom half" is conceptually the lower half of a traditional libc
+implementation, consisting of 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.
+This implementation is partially derived from the "bottom half" of [cloudlibc],
+revision 8835639f27fc42d32096d59d294a0bbb857dc368.
 
-[CloudABI]: https://github.com/NuxiNL/cloudabi
 [cloudlibc]: https://github.com/NuxiNL/cloudlibc
-[libpreopen]: https://github.com/musec/libpreopen
-
-The upstream repositories and versions used here are:
 
-cloudlibc - https://github.com/NuxiNL/cloudlibc 8835639f27fc42d32096d59d294a0bbb857dc368
-libpreopen - https://github.com/musec/libpreopen b29e9287cc75a7db7291ce3eb468a3d2bad8ceb1
+This implementation includes preopen functionality, which emulates POSIX APIs
+accepting absolute paths by translating them into pre-opened directory handles
+and relative paths that can be opened with `openat`. This technique is inspired
+by [libpreopen], however the implementation here is designed to be built into
+libc rather than to be a layer on top of libc.
 
-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.
+[libpreopen]: https://github.com/musec/libpreopen
 
-WASI libc currently depends on the basics and dlmalloc components of reference-sysroot.
+The WASI libc lower half currently depends on the dlmalloc component.