wasi-libc 32
devel/wasi-libc
C standard library for WebAssembly System Interface
Description
libc/sysroot for WASI (WebAssembly System Interface) WASI Libc is a libc for WebAssembly programs built on top of WASI system calls. It provides a wide array of POSIX-compatible C APIs, including support for standard I/O, file I/O, filesystem manipulation, memory management, time, string, environment variables, program startup, and many other APIs.
Dependencies
- build devel/cmake-core
- build devel/llvm19
- build devel/ninja
- build devel/wasi-compiler-rt19
- build shells/bash
Commit History
may be incomplete — full history at freebsd-ports on GitHub
| Commit | Credits | Log message |
|---|---|---|
|
32
2209fded2d
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-32
No changes, possibly for internal upstream purposes |
|
31
7c5b2039a4
files touched
|
Charlie Li (vishwin) |
wasi: consistently use the wasm32-wasip1 triple
The WebAssembly community have reclaimed wasm32-wasi, without suffix,
for a future WASI 1.0 standard. The first version of WASI, 0.1, is
now wasm32-wasip1 in triple form, WASI 0.2 is wasm32-wasip2, etc.
Starting LLVM 22 the non-suffixed form is deprecated, aligning with
Rust and Go:
https://github.com/llvm/llvm-project/issues/165344
https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets/
The Mozilla build system's WASI checks always pass -Werror so
configure fails when the non-suffixed target/triple is passed using
LLVM 22:
Using wasi sysroot in /usr/local/share/wasi-sysroot
checking for the wasm C compiler... /usr/local/bin/clang22
checking whether the wasm C compiler can be used... yes
checking the wasm C compiler version... 22.1.0
checking the wasm C compiler works... yes
checking the wasm C compiler can find wasi headers... yes
checking the wasm C linker can find wasi libraries... yes
checking for the wasm C++ compiler... /usr/local/bin/clang++22
checking whether the wasm C++ compiler can be used... yes
checking the wasm C++ compiler version... 22.1.0
checking the wasm C++ compiler works... yes
checking the wasm C++ compiler can find wasi headers... yes
checking the wasm C++ linker can find wasi libraries... yes
checking for clock() in wasi sysroot... no
checking for emulated clock() in wasi sysroot...
DEBUG: Creating `/tmp/conftest0vk5p554.c` with content:
DEBUG: | #include <time.h>
DEBUG: | int
DEBUG: | main(void)
DEBUG: | {
DEBUG: | clock();
DEBUG: | ;
DEBUG: | return 0;
DEBUG: | }
DEBUG: Executing: `/usr/local/bin/clang22 --target=wasm32-wasi /tmp/conftest0vk5p554.c -Werror -D_WASI_EMULATED_PROCESS_CLOCKS -lwasi-emulated-process-clocks --sysroot=/usr/local/share/wasi-sysroot`
DEBUG: The command returned non-zero exit status 1.
DEBUG: Its error output was:
DEBUG: | clang: error: argument '--target=wasm32-wasi' is deprecated, use --target=wasm32-wasip1 instead [-Werror,-Wdeprecated]
ERROR: Can't find clock() in wasi sysroot.
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=2023597
Bump all WASI ports for the new triple. Adjust consumers accordingly
but do not bump, since non-suffixed and p1 are identical as a
transition measure.
|
|
31
c7fd3c079c
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: add WITHOUT_CPU_CFLAGS
PR: 293925 |
|
31
91dbb7749a
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: add LLVM 22 flavour
PR: 293100 |
|
31
3cdf07363a
files touched
|
Charlie Li (vishwin) |
wasi: update to sdk-31
- switch to cmake
- stop copying std{arg,def}.h from devel/llvm, not needed
- sync libcxx CMAKE_ARGS
- bump all existing libcxx
|
|
29
125d2d37ad
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-29
Consumer PORTREVISIONs to be bumped |
|
28
1d55bbdbd2
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-28
Consumer PORTREVISIONs to be bumped |
|
27
1aa742d29c
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: fix plist for non-LLVM 21 flavours
<wasi/libc-busywait.h> is added and libwasi-emulated-pthread is removed Reported by: eduardo |
|
27
4b92026e07
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-27
Add LLVM 21 flavour Consumer PORTREVISIONs to be bumped |
|
25-14
bba41fb683
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to latest commit
Enable LLVM 20 flavour, and reorder FLAVORS. Only other changes are tests so no consumer PORTREVISION bumps. |
|
25
0afd5daeca
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-25
Only real changes deal with build and test infrastructure so not bumping any consumer PORTREVISION. |
|
24-13
c0c57c629e
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: fix build when ${FLAVOR} is not specified
To have separate flavours per supported LLVM version, USES=llvm is
version-locked to each flavour as USES=llvm:${FLAVOR}. This allows
${LLVM_VERSION} to be used throughout the Makefile for consistency.
However, when ${FLAVOR} is not specified, ${LLVM_VERSION} uses
${LLVM_DEFAULT} which may not match the first item in ${FLAVORS},
resulting in missing dependency. Specify a fallback ${FLAVOR} when
not otherwise set so USES=llvm is guaranteed a version lock.
Consumers always explicitly specify ${FLAVOR} so this problem is
not generally exposed.
Reported by: dim
PR: 282265
|
|
24-13
e4396ac9a4
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to latest commit
sdk-24 was only tagged earlier this month and on a commit prior to the previous one in tree, but portscout registered an "update" anyway. No real changes that warrant consumer PORTREVISION bumps. |
|
22-27
84b600fb9f
files touched
|
Charlie Li (vishwin) |
wasi: update to latest commit past sdk-22
devel/wasi-libc is now flavourised per supported LLVM version. Each flavour includes/copies the corresponding clang's stdarg.h and stddef.h instead of simply using the latest clang release. Technically upstream dropped support for LLVM < 18, but the commit doing so admittedly operated under an uncertain assumption. LLVM 17 is still supported in these ports for the benefit of Rust and gecko@ ports, which specify LLVM 17 minimum, and to facilitate LTO with that version. LLVM 19 is also supported in this version, with the corresponding ports to be committed separately. Bump PORTREVISION of consumers |
|
21
9fd4b7c836
files touched
|
Charlie Li (vishwin) |
wasi: drop support for LLVM < 17
Prepare for update |
|
21
b787213d5b
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: refresh std{arg,def} headers from LLVM 18
|
|
21
0654062eab
files touched
|
Mathieu Arnold (mat) |
cleanup: (ir)regular GH_TAGNAME cleanup
|
|
21
eabba650ca
files touched
|
Charlie Li (vishwin) |
devel/wasi-libc: update to sdk-21
Bump PORTREVISION of consumers |
|
20-13
e38b3857f2
files touched
|
Charlie Li (vishwin) |
wasi: update libc to sdk-20 and modularise LLVM bits
wasi-libcxx and wasi-compiler-rt now meta ports (similar to u-boot);
the build process is the same for each LLVM version so child ports
are minimal. Minimum supported LLVM version is 12, thus its
corresponding child ports are resurrected and LLVM 11 child ports
are removed.
Since all supported LLVM versions are made available at once, remove
restriction in bsd.gecko.mk and switch to USES=llvm throughout. LTO
on gecko ports should now work with later LLVM versions so long as
${DEFAULT_VERSIONS} is set properly and matches the LLVM used in
rust (if not using the PORT_LLVM option).
Reviewed by: brooks (LLVM ports interactions)
Tested by: Eric Camachat <eric[at]camachat[dot]org>
Approved by: maintainer timeout (gecko@ portion, 2+ weeks)
PR: 274896
Differential Revision: https://reviews.freebsd.org/D40098
|
|
g20210923
6ad958dd4e
files touched
|
Charlie Li (vishwin) |
devel/wasi-*: take maintainership
These have to be coordinated with gecko@. Approved by: mentors (implicit) |
|
g20210923
f57221afde
files touched
|
Fernando Apesteguía (fernape) |
*/*: Release ports from maintainership
Maintainer releases all his ports. PR: 266871 Reported by: unrelentingtech <greg@unrelenting.technology> |
|
g20210923
fb16dfecae
files touched
|
Stefan Eßer (se) |
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on WWW: lines in pkg-descr files. This commit removes the WWW: lines of moved-over URLs from these pkg-descr files. Approved by: portmgr (tcberner) |
|
g20210923
b7f05445c0
files touched
|
Stefan Eßer (se) |
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the ports' pkg-descr files, one per line and prefixed with "WWW:". These URLs should point at a project website or other relevant resources. Access to these URLs required processing of the pkg-descr files, and they have often become stale over time. If more than one such URL was present in a pkg-descr file, only the first one was tarnsfered into the port INDEX, but for many ports only the last line did contain the port specific URL to further information. There have been several proposals to make a project URL available as a macro in the ports' Makefiles, over time. This commit implements such a proposal and moves one of the WWW: entries of each pkg-descr file into the respective port's Makefile. A heuristic attempts to identify the most relevant URL in case there is more than one WWW: entry in some pkg-descr file. URLs that are not moved into the Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr files in order to preserve them. There are 1256 ports that had no WWW: entries in pkg-descr files. These ports will not be touched in this commit. The portlint port has been adjusted to expect a WWW entry in each port Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as deprecated. Approved by: portmgr (tcberner) |
|
g20210923
4d8144647a
files touched
|
Greg V (greg) |
devel/wasi-libc: Update to g20210923.
Differential Revision: https://reviews.freebsd.org/D32440 |
|
g20201005
cf118ccf87
files touched
|
Mathieu Arnold (mat) |
One more small cleanup, forgotten yesterday. Reported by: lwhsu
|
|
g20201005
305f148f48
files touched
|
Mathieu Arnold (mat) |
Remove # $FreeBSD$ from Makefiles.
|
|
g20201005
e7dcca1066
files touched
|
Mikael Urankar (mikael) |
devel/wasi-compiler-rt11, wasi-libc, wasi-libcxx: New ports for WebAssembly System Interface (WASI) libc, clang builtins (compiler-rt), libc++, libcxxabi
WASI is a "syscall" interface for WebAssembly, significantly inspired by CloudABI. It is supported in clang 8 and up, but to actually build C programs, it needs clang builtins and the libc/sysroot. And for C++, also libc++ and libcxxabi. Submitted by: Greg V <greg%unrelenting.technology> Differential Revision: https://reviews.freebsd.org/D22960 |