Skip to content

Add support for FPU flag for PDs #1266

Add support for FPU flag for PDs

Add support for FPU flag for PDs #1266

Workflow file for this run

# 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" ]
env:
SEL4_VERSION: 14.0.0
# To reduce the load we cancel any older runs of this workflow for the current
# PR. For deployment to the main branch, the workflow will run on each push,
# and the `run_id` parameter will prevent cancellation.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || format('run-{0}', github.run_id) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build_linux:
name: Build SDK (Linux x86-64, ARM64)
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: ${{ env.SEL4_VERSION }}
path: seL4
- name: Install SDK dependencies
run: |
rustup install 1.90.0
rustup default 1.90.0
rustup target add x86_64-unknown-linux-musl
rustup component add rust-src --toolchain 1.90.0-x86_64-unknown-linux-gnu
rustup target add aarch64-unknown-linux-musl
rustup component add rust-src --toolchain 1.90.0-aarch64-unknown-linux-musl
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install \
gcc-x86-64-linux-gnu \
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.12 python3-pip python3.12-venv \
qemu-system-arm qemu-system-misc
python3.12 -m venv pyenv
./pyenv/bin/pip install --upgrade pip setuptools wheel
./pyenv/bin/pip install -r requirements.txt
- 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 (x86-64)
run: ./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl"
- name: Upload SDK (x86-64)
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64
path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz
- name: Build SDK (ARM64)
run: ./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-aarch64 --tool-target-triple="aarch64-unknown-linux-musl"
- name: Upload SDK (ARM64)
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64
path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz
build_macos:
name: Build SDK (macOS x86-64, ARM64)
runs-on: [self-hosted, macos, ARM64]
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: ${{ env.SEL4_VERSION }}
path: seL4
- name: Get Nix dependencies
run: nix develop -c bash -c 'echo Hello World'
- name: Set version
run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV
- name: Build SDK (x86-64)
run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-macos-x86-64 --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --tool-target-triple=x86_64-apple-darwin"
- name: Upload SDK (x86-64)
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64
path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz
- name: Build SDK (ARM64)
run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-macos-aarch64 --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --tool-target-triple=aarch64-apple-darwin"
- name: Upload SDK (ARM64)
uses: actions/upload-artifact@v4
with:
name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64
path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz