From 8ae425cec8b71e28e7e07962a37a7e761d4106a5 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Sat, 10 Jul 2021 20:03:17 -0600 Subject: [PATCH] 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. --- .github/workflows/cmake.yml | 7 ++++++- Documentation/AdvancedBuildInstructions.md | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 521abb59b5..584ec2095b 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -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 diff --git a/Documentation/AdvancedBuildInstructions.md b/Documentation/AdvancedBuildInstructions.md index 6dba89a382..2cd953efc5 100644 --- a/Documentation/AdvancedBuildInstructions.md +++ b/Documentation/AdvancedBuildInstructions.md @@ -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_`: 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_` flags when enabled