Page MenuHomeFreeBSD

wasi: update libc to sdk-20 and modularise LLVM bits
Needs ReviewPublic

Authored by vishwin on May 14 2023, 10:07 PM.
Referenced Files
Unknown Object (File)
Thu, Sep 7, 3:38 AM
Unknown Object (File)
Mon, Aug 28, 9:48 PM
Unknown Object (File)
Aug 19 2023, 1:45 PM
Unknown Object (File)
Aug 15 2023, 3:33 AM
Unknown Object (File)
Aug 14 2023, 7:57 AM
Unknown Object (File)
Aug 14 2023, 6:55 AM
Unknown Object (File)
Aug 12 2023, 11:02 AM
Unknown Object (File)
Aug 12 2023, 12:37 AM


Group Reviewers

Update wasi-libc to sdk-19, with patch to null out bulk memory opcodes that the mozilla-{release,esr} codebase fails to build with.

wasi-libcxx and wasi-compiler-rt now meta ports; the build process is the same for each LLVM version so child ports are minimal. Flavours don't work here due to differing LLVM versions between them. Note that LLVM 16 changed the directory hierarchy to major version only, so cannot use exact file references for the wasi-compiler-rt dependency line any longer.

Since all supported LLVM versions are made available at once, remove restriction in While here switch to USES=llvm throughout, max version limited to 15 for now (see below).

Test Plan

Dogfooded with both LLVM 14 and 15. 16 made available but gecko-ESR-based ports don't build because outdated proc-macro2 crate, and runtime crashes being investigated on mozilla-release (www/firefox). Once mozilla-release is fixed, LLVM 15 max restriction can go away but need to remain in ESR only until crate(s) are updated.

Diff Detail

rP FreeBSD ports repository
No Lint Coverage
No Test Coverage
Build Status
Buildable 52148
Build 49039: arc lint + arc unit

Event Timeline

  • MOVED: add forgotten devel/wasi-compiler-rt11

12 is the minimum supported LLVM version.

  • www/librewolf: adjust WASI dependencies

This feels like flavors might make sense instead of the shared pseudo ports, but seems fine as is. I might give the pseudo ports a nonstandard directory name to highlight that they are aren't really ports (e.g., devel/_wasi-libcxx or devel/.wasi-libcxx).

  • devel/wasi-libc: update to wasi-sdk-20
  • devel/wasi-{compiler-rt,libcxx}16: sync with devel/llvm16
  • devel/wasi-libcxx: fix LICENSE_FILE location
  • remove LLVM version restriction

Note that bulk memory opcodes continue to need null out until gecko 115/ESR is released, see Mozilla bug 1831980.

vishwin retitled this revision from wasi: update libc to sdk-19 and modularise LLVM bits to wasi: update libc to sdk-20 and modularise LLVM bits.Jun 18 2023, 3:29 AM
  • MOVED: remove stray conflict mark
  • gecko-esr: limit to LLVM 15 due to old proc-macro2 crate
  • devel/wasi-{compiler-rt,libcxx}16: sync with devel/llvm16 16.0.6