From ab3798a93ea4df76a1b0467e895a20c463a0eca8 Mon Sep 17 00:00:00 2001 From: tqcq <99722391+tqcq@users.noreply.github.com> Date: Tue, 2 Apr 2024 10:18:42 +0800 Subject: [PATCH] fix arm build --- .gitea/workflows/linux-aarch64-gcc.yml | 2 +- .gitea/workflows/linux-arm-gcc.yml | 189 ++++++++++++------------- 2 files changed, 90 insertions(+), 101 deletions(-) diff --git a/.gitea/workflows/linux-aarch64-gcc.yml b/.gitea/workflows/linux-aarch64-gcc.yml index 1ac8eb9..5be692a 100644 --- a/.gitea/workflows/linux-aarch64-gcc.yml +++ b/.gitea/workflows/linux-aarch64-gcc.yml @@ -75,5 +75,5 @@ jobs: run: |- export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH cd build - export LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib/ + ln -sf /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ld-linux-aarch64.so.1 TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j $(nproc) diff --git a/.gitea/workflows/linux-arm-gcc.yml b/.gitea/workflows/linux-arm-gcc.yml index 8009a94..0f47053 100644 --- a/.gitea/workflows/linux-arm-gcc.yml +++ b/.gitea/workflows/linux-arm-gcc.yml @@ -1,12 +1,11 @@ - --- name: linux-arm-gcc on: push: paths: - .gitea/workflows/linux-arm-gcc.yml - - 'toolchains/arm-linux-gnueabi.toolchain.cmake' - - 'toolchains/arm-linux-gnueabihf.toolchain.cmake' + - toolchains/arm-linux-gnueabi.toolchain.cmake + - toolchains/arm-linux-gnueabihf.toolchain.cmake - 3party/** - include/** - src/** @@ -16,8 +15,8 @@ on: pull_request: paths: - .gitea/workflows/linux-arm-gcc.yml - - 'toolchains/arm-linux-gnueabi.toolchain.cmake' - - 'toolchains/arm-linux-gnueabihf.toolchain.cmake' + - toolchains/arm-linux-gnueabi.toolchain.cmake + - toolchains/arm-linux-gnueabihf.toolchain.cmake - 3party/** - include/** - src/** @@ -27,27 +26,25 @@ on: concurrency: group: linux-arm-gcc-${{ github.ref }} cancel-in-progress: true - jobs: linux-gcc-arm: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v4 - - - name: cache-qemu - id: cache-qemu - uses: actions/cache@v4 - with: - path: qemu-install - key: qemu-arm-install-20220502-2 - - name: install-qemu-build-deps - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | - sudo apt-get update -y - sudo apt-get install -y autoconf automake autotools-dev ninja-build - - name: checkout-qemu - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | + - uses: actions/checkout@v4 + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v4 + with: + path: qemu-install + key: qemu-arm-install-20220502-2 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update -y + sudo apt-get install -y autoconf automake autotools-dev ninja-build + - name: checkout-qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | mkdir qemu && cd qemu git init git remote add origin https://gitlab.com/qemu-project/qemu.git @@ -58,56 +55,51 @@ jobs: # repository: qemu/qemu # path: qemu # ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 - - name: qemu - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | - cd qemu - ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system - make -j$(nproc) - make install - - - name: set-qemu-cache - uses: actions/cache/save@v3 - if: steps.cache-qemu.outputs.cache-hit != 'true' - with: - key: qemu-arm-install-20220502-2 - path: qemu-install - - - name: arm-gnu-toolchain - run: | - sudo apt-get update -y - sudo apt-get install -y cmake make g++-arm-linux-gnueabi - - - name: build - run: | - mkdir build && cd build - cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabi.toolchain.cmake -DSLED_BUILD_TESTS=ON -DSLED_BUILD_TESTS=ON .. - cmake --build . -j $(nproc) - - name: test - run: | - export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH - cd build - TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabi" ctest --output-on-failure -j $(nproc) - + - name: qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + cd qemu + ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system + make -j$(nproc) + make install + - name: set-qemu-cache + uses: actions/cache/save@v3 + if: steps.cache-qemu.outputs.cache-hit != 'true' + with: + key: qemu-arm-install-20220502-2 + path: qemu-install + - name: arm-gnu-toolchain + run: | + sudo apt-get update -y + sudo apt-get install -y cmake make g++-arm-linux-gnueabi + - name: build + run: | + mkdir build && cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabi.toolchain.cmake -DSLED_BUILD_TESTS=ON -DSLED_BUILD_TESTS=ON .. + cmake --build . -j $(nproc) + - name: test + run: | + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabi" ctest --output-on-failure -j $(nproc) linux-gcc-armhf: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v4 - - - name: cache-qemu - id: cache-qemu - uses: actions/cache@v4 - with: - path: qemu-install - key: qemu-arm-install-20220502-2 - - name: install-qemu-build-deps - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | - sudo apt-get update -y - sudo apt-get install -y autoconf automake autotools-dev ninja-build - - name: checkout-qemu - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | + - uses: actions/checkout@v4 + - name: cache-qemu + id: cache-qemu + uses: actions/cache@v4 + with: + path: qemu-install + key: qemu-arm-install-20220502-2 + - name: install-qemu-build-deps + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + sudo apt-get update -y + sudo apt-get install -y autoconf automake autotools-dev ninja-build + - name: checkout-qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | mkdir qemu && cd qemu git init git remote add origin https://gitlab.com/qemu-project/qemu.git @@ -118,34 +110,31 @@ jobs: # repository: qemu/qemu # path: qemu # ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65 - - name: qemu - if: steps.cache-qemu.outputs.cache-hit != 'true' - run: | - cd qemu - ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system - make -j$(nproc) - make install - - - name: set-qemu-cache - uses: actions/cache/save@v3 - if: steps.cache-qemu.outputs.cache-hit != 'true' - with: - key: qemu-arm-install-20220502-2 - path: qemu-install - - - name: arm-gnu-toolchain - run: | - sudo apt-get update -y - sudo apt-get install -y cmake make g++-arm-linux-gnueabihf - - - name: build - run: | - mkdir build && cd build - cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DSLED_BUILD_TESTS=ON .. - cmake --build . -j $(nproc) - - name: test - run: | - export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH - cd build - TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc) - + - name: qemu + if: steps.cache-qemu.outputs.cache-hit != 'true' + run: | + cd qemu + ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system + make -j$(nproc) + make install + - name: set-qemu-cache + uses: actions/cache/save@v3 + if: steps.cache-qemu.outputs.cache-hit != 'true' + with: + key: qemu-arm-install-20220502-2 + path: qemu-install + - name: arm-gnu-toolchain + run: | + sudo apt-get update -y + sudo apt-get install -y cmake make g++-arm-linux-gnueabihf + - name: build + run: | + mkdir build && cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DSLED_BUILD_TESTS=ON .. + cmake --build . -j $(nproc) + - name: test + run: |- + export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH + cd build + ln -sf /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib/ld-linux-armhf.so.3 + TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc)