Meta+CI: Use wabt version 1.0.23 for all CI jobs

The WASM spec tests caused a stack overflow when generated with wat2wasm
version 1.0.23, which ships with homebrew. To give feature parity,
manually download the same version from GitHub packages for Ubuntu.

Document the dependencies of the WASM spec tests option, as well.
This commit is contained in:
Andrew Kaster 2021-07-10 20:03:17 -06:00 committed by Ali Mohammad Pur
parent f7c7954314
commit 8ae425cec8
Notes: sideshowbarker 2024-07-18 09:11:07 +09:00
2 changed files with 7 additions and 2 deletions

View file

@ -209,9 +209,14 @@ jobs:
run: |
sudo apt-get purge -y clang-11
sudo apt-get update
sudo apt-get install ninja-build wabt
sudo apt-get install ninja-build
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-12 100
# Install wabt tools from github packages
wget https://github.com/WebAssembly/wabt/releases/download/1.0.23/wabt-1.0.23-ubuntu.tar.gz
tar -xzf ./wabt-1.0.23-ubuntu.tar.gz
rm ./wabt-1.0.23-ubuntu.tar.gz
echo "$PWD/wabt-1.0.23/bin" >> $GITHUB_PATH
if: ${{ runner.os == 'Linux' }}
- name: Install macOS dependencies
run: brew install ninja wabt

View file

@ -41,7 +41,7 @@ There are some optional features that can be enabled during compilation that are
- `ENABLE_PCI_IDS_DOWNLOAD`: downloads the [`pci.ids` database](https://pci-ids.ucw.cz/) that contains information about PCI devices at build time, if not already present. Enabled by default.
- `BUILD_LAGOM`: builds [Lagom](../Meta/Lagom/ReadMe.md), which makes various SerenityOS libraries and programs available on the host system.
- `ENABLE_KERNEL_LTO`: builds the kernel with link-time optimization.
- `INCLUDE_WASM_SPEC_TESTS`: downloads and includes the WebAssembly spec testsuite tests
- `INCLUDE_WASM_SPEC_TESTS`: downloads and includes the WebAssembly spec testsuite tests. In order to use this option, you will need to install `prettier` and `wabt`. wabt version 1.0.23 or higher is required to pre-process the WebAssembly spec testsuite.
- `BUILD_<component>`: builds the specified component, e.g. `BUILD_HEARTS` (note: must be all caps). Check the components.ini file in your build directory for a list of available components. Make sure to run `ninja clean` and `rm -rf Build/i686/Root` after disabling components. These options can be easily configured by using the `ConfigureComponents` utility. See the [Component Configuration](#component-configuration) section below.
- `BUILD_EVERYTHING`: builds all optional components, overrides other `BUILD_<component>` flags when enabled