From e3a664f886b55ba1f562261f8f8a35b45ad351f0 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 10 Nov 2024 15:34:15 +0100 Subject: [PATCH 1/3] Build libpico in CI --- .github/workflows/build-libpico.yml | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/build-libpico.yml diff --git a/.github/workflows/build-libpico.yml b/.github/workflows/build-libpico.yml new file mode 100644 index 000000000..3c2ba08a0 --- /dev/null +++ b/.github/workflows/build-libpico.yml @@ -0,0 +1,42 @@ +# Run whenever it is manually triggered, a pull request or a push is done that modifes the libpico configuration + +name: libpico Builder + +on: + pull_request: + paths: + - tools/libpico/** + workflow_dispatch: + push: + paths: + - tools/libpico/** +jobs: + build-libpico: + name: Build libpico precompiled libraries + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: false + - name: Get submodules for pico-sdk + run: cd pico-sdk && git submodule update --init --recursive + - name: Install dependencies + run: | + sudo apt update + sudo apt install cmake make build-essential wget gcc-arm-none-eabi + # RISC-V toolchain + wget -O "$GITHUB_WORKSPACE/riscv32.tar.gz" "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz" + tar xf "$GITHUB_WORKSPACE/riscv32.tar.gz" + echo "$GITHUB_WORKSPACE/riscv32-unknown-elf/bin" >> "$GITHUB_PATH" + # ARM toolchain taken from Ubuntu repository + - name: Build libpico + run: | + cd tools/libpico + ./make-libpico.sh + - uses: actions/upload-artifact@v4 + with: + name: libpico + path: | + tools/libpico/build-rp2040/*.a + tools/libpico/build-rp2350/*.a + tools/libpico/build-rp2350-riscv/*.a From 894936fec687e56ce8056fe9ec934435af0eafaf Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 11 Nov 2024 21:11:47 +0100 Subject: [PATCH 2/3] Use our arm-none-eabi-gcc, apply Pico-SDK patch --- .github/workflows/build-libpico.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-libpico.yml b/.github/workflows/build-libpico.yml index 3c2ba08a0..550b1060b 100644 --- a/.github/workflows/build-libpico.yml +++ b/.github/workflows/build-libpico.yml @@ -23,12 +23,17 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install cmake make build-essential wget gcc-arm-none-eabi - # RISC-V toolchain - wget -O "$GITHUB_WORKSPACE/riscv32.tar.gz" "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz" - tar xf "$GITHUB_WORKSPACE/riscv32.tar.gz" - echo "$GITHUB_WORKSPACE/riscv32-unknown-elf/bin" >> "$GITHUB_PATH" - # ARM toolchain taken from Ubuntu repository + sudo apt install cmake make build-essential wget + # Automatically get correct toolchain + cd tools && python3 get.py && cd .. + # add to PATH + echo "$GITHUB_WORKSPACE/system/riscv32-unknown-elf/bin" >> "$GITHUB_PATH" + echo "$GITHUB_WORKSPACE/system/arm-none-eabi/bin" >> "$GITHUB_PATH" + - name: Patch Pico-SDK (Fix Assembly for newer GCC) + run: | + cd pico-sdk + wget https://patch-diff.githubusercontent.com/raw/raspberrypi/pico-sdk/pull/2000.patch + patch -p1 < 2000.patch - name: Build libpico run: | cd tools/libpico From cba4c1c34053400a048af01af02290ce66e1d1a4 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 11 Nov 2024 21:21:51 +0100 Subject: [PATCH 3/3] Intendation fix, add commend --- .github/workflows/build-libpico.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-libpico.yml b/.github/workflows/build-libpico.yml index 550b1060b..17ee02630 100644 --- a/.github/workflows/build-libpico.yml +++ b/.github/workflows/build-libpico.yml @@ -5,7 +5,7 @@ name: libpico Builder on: pull_request: paths: - - tools/libpico/** + - tools/libpico/** workflow_dispatch: push: paths: @@ -29,6 +29,7 @@ jobs: # add to PATH echo "$GITHUB_WORKSPACE/system/riscv32-unknown-elf/bin" >> "$GITHUB_PATH" echo "$GITHUB_WORKSPACE/system/arm-none-eabi/bin" >> "$GITHUB_PATH" + # Needed until we switch to Pico-SDK 2.0.1. - name: Patch Pico-SDK (Fix Assembly for newer GCC) run: | cd pico-sdk