aarch64/riscv64: make the microkit loader relocatable #657
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2023, UNSW | |
# | |
# SPDX-License-Identifier: BSD-2-Clause | |
# It is to be noted that this CI workflow is temporary and simply attempts | |
# to build (but not test) the SDK. It is only for the purposes of seeing | |
# whether a particular commit has devastatingly broken the Microkit SDK | |
name: SDK | |
on: | |
# Run the SDK CI on any activity on the main branch as well as on any pull | |
# request activity (e.g when it is created and also when it is updated). | |
pull_request: | |
push: | |
branches: [ "main" ] | |
jobs: | |
build_linux_x64: | |
name: Build SDK (Linux x86-64) | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout Microkit repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
fetch-depth: 0 | |
- name: Checkout seL4 repository | |
uses: actions/checkout@v4 | |
with: | |
repository: seL4/seL4 | |
ref: microkit | |
path: seL4 | |
- name: Install SDK dependencies | |
run: | | |
rustup target add x86_64-unknown-linux-musl | |
sudo apt update | |
sudo apt install software-properties-common | |
sudo add-apt-repository ppa:deadsnakes/ppa | |
sudo apt install \ | |
gcc-riscv64-unknown-elf \ | |
cmake pandoc device-tree-compiler ninja-build \ | |
texlive-latex-base texlive-latex-recommended \ | |
texlive-fonts-recommended texlive-fonts-extra \ | |
libxml2-utils \ | |
python3.9 python3-pip python3.9-venv \ | |
qemu-system-arm qemu-system-misc \ | |
- name: Install AArch64 GCC toolchain | |
run: | | |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B | |
tar xf aarch64-toolchain.tar.gz | |
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH | |
- name: Set version | |
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
python3.9 -m venv pyenv | |
./pyenv/bin/pip install --upgrade pip setuptools wheel | |
./pyenv/bin/pip install -r requirements.txt | |
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }} | |
- name: Upload SDK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 | |
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz | |
build_macos_x64: | |
name: Build SDK (macOS x86-64) | |
runs-on: macos-14 | |
steps: | |
- name: Checkout Microkit repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
fetch-depth: 0 | |
- name: Checkout seL4 repository | |
uses: actions/checkout@v4 | |
with: | |
repository: seL4/seL4 | |
ref: microkit | |
path: seL4 | |
- name: Install SDK dependencies | |
run: | | |
rustup target add x86_64-apple-darwin | |
brew tap riscv-software-src/riscv | |
brew install riscv-tools | |
brew install pandoc cmake dtc ninja qemu libxml2 [email protected] coreutils texlive qemu | |
- name: Install AArch64 GCC toolchain | |
run: | | |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz%3Frev%3D09b11f159fc24fdda01e05bb32695dd5%26hash%3D6AAF4239F28AE17389AB3E611DFFE0A6 | |
tar xf aarch64-toolchain.tar.gz | |
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH | |
- name: Set version | |
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
python3.9 -m venv pyenv | |
./pyenv/bin/pip install --upgrade pip setuptools wheel | |
./pyenv/bin/pip install -r requirements.txt | |
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }} --tool-target-triple=x86_64-apple-darwin | |
- name: Upload SDK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 | |
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz | |
build_macos_arm64: | |
name: Build SDK (macOS ARM64) | |
runs-on: macos-14 | |
steps: | |
- name: Checkout Microkit repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
fetch-depth: 0 | |
- name: Checkout seL4 repository | |
uses: actions/checkout@v4 | |
with: | |
repository: seL4/seL4 | |
ref: microkit | |
path: seL4 | |
- name: Install SDK dependencies | |
run: | | |
rustup target add aarch64-apple-darwin | |
brew tap riscv-software-src/riscv | |
brew install riscv-tools | |
brew install pandoc cmake dtc ninja qemu libxml2 [email protected] coreutils texlive | |
- name: Install AArch64 GCC toolchain | |
run: | | |
wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf.tar.xz%3Frev%3D09b11f159fc24fdda01e05bb32695dd5%26hash%3D6AAF4239F28AE17389AB3E611DFFE0A6 | |
tar xf aarch64-toolchain.tar.gz | |
echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH | |
- name: Set version | |
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV | |
- name: Build SDK | |
run: | | |
python3.9 -m venv pyenv | |
./pyenv/bin/pip install --upgrade pip setuptools wheel | |
./pyenv/bin/pip install -r requirements.txt | |
./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }} | |
- name: Upload SDK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 | |
path: release/microkit-sdk-${{ env.SDK_VERSION }}.tar.gz |