The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies.
This port includes Clang builtins for WASI
(WebAssembly System Interface).
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/165344https://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:
(Only the first 15 lines of the commit message are shown above )
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
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