From 49671f0ec8a87272b7d3b968da0453d2c888da89 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 4 Jul 2024 14:32:39 +0200 Subject: [PATCH] gh-actions: upgrade to Ubuntu 24.04 LTS; upgrade/add GCC 13 / clang 18 --- .github/workflows/ci.yml | 295 +++++++++--------- docker/Dockerfile | 4 +- .../cross-files/aarch64-clang-18-ccache.cross | 20 ++ .../cross-files/aarch64-gcc-13-ccache.cross | 18 ++ .../cross-files/armel-clang-18-ccache.cross | 20 ++ docker/cross-files/armel-gcc-13-ccache.cross | 18 ++ .../cross-files/armv7-clang-18-ccache.cross | 20 ++ docker/cross-files/armv7-gcc-13-ccache.cross | 18 ++ .../armv8-gcc-13-32bit-ccache.cross | 18 ++ .../mips64el-clang-18-ccache.cross | 20 ++ .../cross-files/mips64el-gcc-13-ccache.cross | 18 ++ docker/cross-files/power9-gcc-13-ccache.cross | 18 ++ .../cross-files/ppc64el-clang-18-ccache.cross | 20 ++ ...4+rvv_vlen128_elen64-clang-18-ccache.cross | 37 +++ ..._vlen128_elen64_zvfh-clang-18-ccache.cross | 37 +++ ...4+rvv_vlen256_elen64-clang-18-ccache.cross | 37 +++ ..._vlen256_elen64_zvfh-clang-18-ccache.cross | 37 +++ ...4+rvv_vlen512_elen64-clang-18-ccache.cross | 37 +++ ..._vlen512_elen64_zvfh-clang-18-ccache.cross | 37 +++ .../cross-files/riscv64-clang-18-ccache.cross | 20 ++ .../riscv64-gcc-13-O3-ccache.cross | 18 ++ .../cross-files/riscv64-gcc-13-ccache.cross | 18 ++ .../cross-files/s390x-clang-18-ccache.cross | 20 ++ docker/cross-files/s390x-gcc-13-ccache.cross | 18 ++ 24 files changed, 680 insertions(+), 143 deletions(-) create mode 100644 docker/cross-files/aarch64-clang-18-ccache.cross create mode 100644 docker/cross-files/aarch64-gcc-13-ccache.cross create mode 100644 docker/cross-files/armel-clang-18-ccache.cross create mode 100644 docker/cross-files/armel-gcc-13-ccache.cross create mode 100644 docker/cross-files/armv7-clang-18-ccache.cross create mode 100644 docker/cross-files/armv7-gcc-13-ccache.cross create mode 100644 docker/cross-files/armv8-gcc-13-32bit-ccache.cross create mode 100644 docker/cross-files/mips64el-clang-18-ccache.cross create mode 100644 docker/cross-files/mips64el-gcc-13-ccache.cross create mode 100644 docker/cross-files/power9-gcc-13-ccache.cross create mode 100644 docker/cross-files/ppc64el-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen128_elen64-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen256_elen64-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen512_elen64-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64-clang-18-ccache.cross create mode 100644 docker/cross-files/riscv64-gcc-13-O3-ccache.cross create mode 100644 docker/cross-files/riscv64-gcc-13-ccache.cross create mode 100644 docker/cross-files/s390x-clang-18-ccache.cross create mode 100644 docker/cross-files/s390x-gcc-13-ccache.cross diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92447e086..d85fe2325 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,14 +24,14 @@ jobs: - name: Install APT Dependencies run: | sudo apt-get install -y ninja-build ninja-build pipx - pipx install meson==0.55.0 + pipx install meson==0.55.1 - run: | meson setup build --prefix $PWD/install -Dtests=false meson install -C build --quiet diff <(find simde/ -type f -name "*.h") <(cd install/include/; find simde -type f -name "*.h" ) formatting: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: @@ -85,7 +85,7 @@ jobs: run: git grep ' && 0' simde/ test/ && exit 1 || exit 0 x86: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: @@ -120,11 +120,11 @@ jobs: key: ${{ github.job }}-${{ matrix.isax }} - name: Install APT Dependencies run: | - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr g++-12 gcc-12 - sudo apt-get purge -y gcc g++ - sudo ln -s /usr/bin/gcc-12 /usr/bin/gcc - sudo ln -s /usr/bin/g++-12 /usr/bin/g++ - sudo python3 -m pip install meson==0.55.0 + sudo apt-get install -y ninja-build ninja-build pipx parallel gcovr + # sudo apt-get purge -y gcc g++ + # sudo ln -s /usr/bin/gcc-13 /usr/bin/gcc + # sudo ln -s /usr/bin/g++-13 /usr/bin/g++ + pipx install meson==0.55.1 - name: add ccache to the build path run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" @@ -138,14 +138,14 @@ jobs: run: ninja -C build -v - name: Test run: meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde" $(meson test -C build --list | grep -v emul) - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + # - name: Coverage Report + # run: ninja -C build -v coverage-xml + # - name: CodeCov.io + # uses: codecov/codecov-action@v4 + # with: + # file: ./build/meson-logs/coverage.xml + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} x86-xop: runs-on: ubuntu-22.04 @@ -168,11 +168,11 @@ jobs: run: | #sudo add-apt-repository ppa:aschultz/backports sudo apt-get update - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr g++-12 gcc-12 qemu-user-static - sudo apt-get purge -y gcc g++ - sudo ln -s /usr/bin/gcc-12 /usr/bin/gcc - sudo ln -s /usr/bin/g++-12 /usr/bin/g++ - sudo python3 -m pip install meson==0.55.0 + sudo apt-get install -y ninja-build ninja-build pipx parallel gcovr g++-12 gcc-12 qemu-user-static + #sudo apt-get purge -y gcc g++ + #sudo ln -s /usr/bin/gcc-12 /usr/bin/gcc + #sudo ln -s /usr/bin/g++-12 /usr/bin/g++ + pipx install meson==0.55.1 - name: add ccache to the build path run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" @@ -193,7 +193,7 @@ jobs: # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} emscripten: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: variant: @@ -210,8 +210,8 @@ jobs: - name: Install APT Dependencies run: | sudo apt-get update && \ - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr &&\ - sudo python3 -m pip install meson==0.55.0 + sudo apt-get install -y ninja-build ninja-build pipx parallel gcovr &&\ + pipx install meson==0.55.1 - name: Install emscripten run: | git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk @@ -235,7 +235,7 @@ jobs: run: meson test -C build --print-errorlogs native-aliases: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: CFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror CXXFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror @@ -248,8 +248,8 @@ jobs: - name: Install APT Dependencies run: | sudo apt-get update && \ - sudo apt-get -yq install libxml2-utils ninja-build parallel gcovr && \ - sudo python3 -m pip install meson==0.55.0 + sudo apt-get -yq install libxml2-utils ninja-build parallel gcovr pipx && \ + pipx install meson==0.55.1 - name: Convert run: ./test/native-aliases.sh - name: Configure @@ -258,17 +258,17 @@ jobs: run: ninja -C build -v - name: Test run: ninja -C build -v test - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + # - name: Coverage Report + # run: ninja -C build -v coverage-xml + # - name: CodeCov.io + # uses: codecov/codecov-action@v4 + # with: + # file: ./build/meson-logs/coverage.xml + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} sleef: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: CFLAGS: -march=native -Wall -Wextra -Werror CXXFLAGS: -march=native -Wall -Wextra -Werror @@ -281,22 +281,22 @@ jobs: run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo apt-get install -y ninja-build ninja-build parallel gcovr libsleef-dev - sudo python3 -m pip install meson==0.55.0 + sudo apt-get install -y ninja-build ninja-build parallel gcovr libsleef-dev pipx + pipx install meson==0.55.1 - name: Configure run: meson setup build -Dsleef=enabled -Db_coverage=true - name: Build run: ninja -C build -v - name: Test run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + # - name: Coverage Report + # run: ninja -C build -v coverage-xml + # - name: CodeCov.io + # uses: codecov/codecov-action@v4 + # with: + # file: ./build/meson-logs/coverage.xml + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} gcc: strategy: @@ -304,34 +304,41 @@ jobs: matrix: include: - version: 9 - distro: ubuntu-20.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: 10 - distro: ubuntu-20.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: 10 - distro: ubuntu-20.04 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' - version: 11 - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: 11 - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' - version: 12 - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: 12 - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' - version: 13 - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: 13 - distro: ubuntu-22.04 + distro: ubuntu-24.04 + arch_flags: -ffast-math + ccache: 'true' + - version: 14 + distro: ubuntu-24.04 + arch_flags: -march=native + - version: 14 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' runs-on: ${{ matrix.distro }} @@ -348,9 +355,9 @@ jobs: run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update - sudo apt-get -yq install gcovr python3-pip ninja-build parallel gcc-${{ matrix.version }} g++-${{ matrix.version }} + sudo apt-get -yq install gcovr pipx ninja-build parallel gcc-${{ matrix.version }} g++-${{ matrix.version }} sudo apt-get -y purge g++ gcc - sudo python3 -m pip install meson==0.55.0 + pipx install meson==0.55.1 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 if: ${{ matrix.ccache == 'true' }} @@ -373,57 +380,57 @@ jobs: fail-fast: false matrix: include: - - version: 12 + - version: 13 cross: armel arch_gnu_abi: eabi arch_deb: armel arch_gnu: arm - distro: ubuntu-22.04 - - version: 12 + distro: ubuntu-24.04 + - version: 13 cross: armv7 arch_gnu: arm arch_gnu_abi: eabihf arch_deb: armhf - distro: ubuntu-22.04 - - version: 12 + distro: ubuntu-24.04 + - version: 13 cross: aarch64 arch_gnu: aarch64 arch_deb: arm64 - distro: ubuntu-22.04 + distro: ubuntu-24.04 - extra: -32bit - version: 12 + version: 13 cross: armv8 arch_gnu: arm arch_gnu_abi: eabihf arch_deb: armhf - distro: ubuntu-22.04 - - version: 12 + distro: ubuntu-24.04 + - version: 13 cross: riscv64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 + distro: ubuntu-24.04 - extra: -O3 - version: 12 + version: 13 cross: riscv64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 12 + distro: ubuntu-24.04 + - version: 13 cross: s390x arch_gnu: s390x arch_deb: s390x - distro: ubuntu-22.04 - - version: 12 + distro: ubuntu-24.04 + - version: 13 cross: power9 arch_gnu: powerpc64le arch_deb: ppc64el - distro: ubuntu-22.04 - # - version: 12 # needs newer Ubuntu version (23.04+) - # cross: mips64el - # arch_gnu: mips64el - # arch_gnu_abi: abi64 - # arch_deb: mips64el - # distro: ubuntu-22.04 + distro: ubuntu-24.04 + # - version: 13 + # cross: mips64el + # arch_gnu: mips64el + # arch_gnu_abi: abi64 + # arch_deb: mips64el + # distro: ubuntu-24.04 runs-on: ${{ matrix.distro }} steps: - uses: actions/checkout@v4 @@ -434,13 +441,12 @@ jobs: run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo add-apt-repository ppa:savoury1/virtualisation sudo apt-get update -y sudo apt-get -yq install ninja-build parallel \ gcc-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \ g++-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} binfmt-support \ - qemu-user-static python3-pip libc6-${{ matrix.arch_deb }}-cross libstdc++-${{ matrix.version }}-dev-${{ matrix.arch_deb }}-cross - sudo python3 -m pip install meson==0.55.0 + qemu-user-static pipx libc6-${{ matrix.arch_deb }}-cross libstdc++-${{ matrix.version }}-dev-${{ matrix.arch_deb }}-cross + pipx install meson==0.55.1 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -460,44 +466,42 @@ jobs: fail-fast: false matrix: include: - - version: 17 + - version: 18 cross: riscv64+rvv_vlen128_elen64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64+rvv_vlen256_elen64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64+rvv_vlen512_elen64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64+rvv_vlen128_elen64_zvfh arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64+rvv_vlen256_elen64_zvfh arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64+rvv_vlen512_elen64_zvfh arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 + distro: ubuntu-24.04 runs-on: ${{ matrix.distro }} - container: - image: amd64/ubuntu:23.10 steps: - - run: apt-get update + - run: sudo apt-get update - name: Install git run: | - apt-get install -y git + sudo apt-get install -y git - uses: actions/checkout@v4 with: submodules: recursive @@ -505,16 +509,16 @@ jobs: run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - apt-get install -y python3 python3-pip git ninja-build pkg-config libglib2.0-dev \ + sudo apt-get install -y python3 git ninja-build pkg-config libglib2.0-dev \ lsb-release wget software-properties-common gnupg qemu-user pipx - apt-get install -y clang-${{ matrix.version }} lldb-${{ matrix.version }} lld-${{ matrix.version }} - #add-apt-repository ppa:savoury1/virtualisation - #add-apt-repository ppa:savoury1/display - apt-get update -y - apt-get -yq install ninja-build parallel \ + sudo apt-get install -y clang-${{ matrix.version }} lldb-${{ matrix.version }} lld-${{ matrix.version }} + #sudo add-apt-repository ppa:savoury1/virtualisation + #sudo add-apt-repository ppa:savoury1/display + sudo apt-get update -y + sudo apt-get -yq install ninja-build parallel \ binfmt-support libc6-${{ matrix.arch_deb }}-cross \ libstdc++-12-dev-${{ matrix.arch_deb }}-cross binutils-${{ matrix.arch_gnu }}-linux-gnu - apt install meson + sudo apt install meson - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -536,44 +540,44 @@ jobs: fail-fast: false matrix: include: - - version: 17 + - version: 18 cross: armv7 arch_deb: armhf arch_gnu_abi: eabihf arch_gnu: arm - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: aarch64 arch_gnu: aarch64 arch_deb: arm64 - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: armel arch_gnu_abi: eabi arch_deb: armel arch_gnu: arm - distro: ubuntu-22.04 - - version: 17 + distro: ubuntu-24.04 + - version: 18 cross: riscv64 arch_gnu: riscv64 arch_deb: riscv64 - distro: ubuntu-22.04 - # - version: 17 + distro: ubuntu-24.04 + # - version: 18 # cross: s390x # arch_gnu: s390x # arch_deb: s390x - # distro: ubuntu-22.04 - - version: 17 + # distro: ubuntu-24.04 + - version: 18 cross: ppc64el arch_deb: ppc64el arch_gnu: powerpc64le - distro: ubuntu-22.04 - # - version: 17 - # cross: mips64el # needs newer Ubuntu (23.04+) + distro: ubuntu-24.04 + # - version: 18 + # cross: mips64el # arch_deb: mips64el # arch_gnu: mips64el # arch_gnu_abi: abi64 - # distro: ubuntu-22.04 + # distro: ubuntu-24.04 runs-on: ${{ matrix.distro }} steps: - uses: actions/checkout@v4 @@ -584,15 +588,12 @@ jobs: run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo add-apt-repository ppa:savoury1/virtualisation - sudo add-apt-repository ppa:savoury1/build-tools - sudo add-apt-repository ppa:savoury1/display sudo apt-get update -y sudo apt-get -yq install ninja-build parallel \ binfmt-support clang-${{ matrix.version }} clang++-${{ matrix.version }} \ - qemu-user-static python3-pip libc6-${{ matrix.arch_deb }}-cross libstdc++-12-dev-${{ matrix.arch_deb }}-cross \ + qemu-user-static pipx libc6-${{ matrix.arch_deb }}-cross libstdc++-12-dev-${{ matrix.arch_deb }}-cross \ binutils-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} - sudo python3 -m pip install meson==0.55.0 + pipx install meson==0.55.1 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -640,36 +641,46 @@ jobs: arch_flags: -ffast-math ccache: 'true' - version: "14" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: "14" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' - version: "15" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native - version: "15" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math ccache: 'true' - version: "16" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native -Wno-unsafe-buffer-usage - version: "16" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math -Wno-unsafe-buffer-usage ccache: 'true' - version: "17" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native -Wno-unsafe-buffer-usage - version: "17" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -ffast-math -Wno-unsafe-buffer-usage ccache: 'true' - version: "17" - distro: ubuntu-22.04 + distro: ubuntu-24.04 arch_flags: -march=native -Wno-unsafe-buffer-usage -O2 + - version: "18" + distro: ubuntu-24.04 + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default + - version: "18" + distro: ubuntu-24.04 + arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default + ccache: 'true' + - version: "18" + distro: ubuntu-24.04 + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default -O2 runs-on: ${{ matrix.distro }} env: CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions @@ -680,15 +691,18 @@ jobs: submodules: recursive - name: CPU Information run: cat /proc/cpuinfo - - name: Install APT Dependencies + - name: Install PPAs + if: ${{ matrix.distro == 'ubuntu-22.04' }} run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo add-apt-repository ppa:savoury1/build-tools sudo add-apt-repository ppa:savoury1/display sudo add-apt-repository ppa:savoury1/llvm-defaults-16 + - name: Install APT Dependencies + run: | sudo apt-get update - sudo apt-get -yq install gcovr ninja-build python3-pip clang-${{ matrix.version }} - sudo python3 -m pip install meson==0.55.0 + sudo apt-get -yq install gcovr ninja-build pipx clang-${{ matrix.version }} + pipx install meson==0.55.1 sudo rm /usr/bin/gcc /usr/bin/g++ /usr/bin/cc /usr/bin/c++ sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/cc sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/c++ @@ -803,7 +817,7 @@ jobs: # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} icc: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: CC: /home/runner/.local/bin/icx CXX: /home/runner/.local/bin/icpx @@ -814,7 +828,7 @@ jobs: - name: CPU Information run: cat /proc/cpuinfo - name: Install APT Dependencies - run: sudo apt-get install -y ninja-build python3-pip && sudo pip install meson==0.64 + run: sudo apt-get install -y ninja-build pipx && pipx install meson==0.64 - name: Install ICC run: | # download the key to system keyring @@ -861,14 +875,13 @@ jobs: ninja -C build test linux-gcc-loongarch64: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: CPU Information run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo add-apt-repository ppa:savoury1/virtualisation sudo apt-get install -y ninja-build ninja-build meson qemu-user-static - name: Download and install loongarch64-toolchain run: | diff --git a/docker/Dockerfile b/docker/Dockerfile index 3ae95acbb..70d91b77b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -39,7 +39,7 @@ RUN \ # Meson on stable is too old, and we want to make sure we keep 0.55 # working for a while. -RUN pipx install meson==0.55.0 +RUN pipx install meson==0.55.1 # GCC cross-compilers RUN \ @@ -54,7 +54,7 @@ RUN \ PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \ done; \ echo ${PACKAGES_TO_INSTALL} ; \ - apt-get install -yq ${PACKAGES_TO_INSTALL} + apt-get install -yq $(echo ${PACKAGES_TO_INSTALL} | tr ' ' '\n' | grep -v -- -9- | tr '\n' ' ') ENV PATH="/usr/lib/ccache:$PATH:/root/.local/bin:/root/.jsvu/bin" diff --git a/docker/cross-files/aarch64-clang-18-ccache.cross b/docker/cross-files/aarch64-clang-18-ccache.cross new file mode 100644 index 000000000..9b2c42366 --- /dev/null +++ b/docker/cross-files/aarch64-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu'] + +[properties] +c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +c_link_args = ['--target=aarch64-linux-gnu'] +cpp_link_args = ['--target=aarch64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'arm64' +endian = 'little' diff --git a/docker/cross-files/aarch64-gcc-13-ccache.cross b/docker/cross-files/aarch64-gcc-13-ccache.cross new file mode 100644 index 000000000..bfd810c78 --- /dev/null +++ b/docker/cross-files/aarch64-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'aarch64-linux-gnu-gcc-13'] +cpp = ['ccache', 'aarch64-linux-gnu-g++-13'] +ar = 'aarch64-linux-gnu-ar' +strip = 'aarch64-linux-gnu-strip' +objcopy = 'aarch64-linux-gnu-objcopy' +ld = 'aarch64-linux-gnu-ld' +exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu'] + +[properties] +c_args = ['-march=armv8.2-a+simd+crypto+crc+bf16', '-Wextra', '-Werror'] +cpp_args = ['-march=armv8.2-a+simd+crypto+crc+bf16', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'arm64' +endian = 'little' diff --git a/docker/cross-files/armel-clang-18-ccache.cross b/docker/cross-files/armel-clang-18-ccache.cross new file mode 100644 index 000000000..69135e4e1 --- /dev/null +++ b/docker/cross-files/armel-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi'] + +[properties] +c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +c_link_args = ['--target=arm-linux-gnueabi'] +cpp_link_args = ['--target=arm-linux-gnueabi'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'generic' +endian = 'little' diff --git a/docker/cross-files/armel-gcc-13-ccache.cross b/docker/cross-files/armel-gcc-13-ccache.cross new file mode 100644 index 000000000..985013fef --- /dev/null +++ b/docker/cross-files/armel-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'arm-linux-gnueabi-gcc-13'] +cpp = ['ccache', 'arm-linux-gnueabi-g++-13'] +ar = 'arm-linux-gnueabi-ar' +strip = 'arm-linux-gnueabi-strip' +objcopy = 'arm-linux-gnueabi-objcopy' +ld = 'arm-linux-gnueabi-ld' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi'] + +[properties] +c_args = ['-Wextra', '-Werror'] +cpp_args = ['-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'generic' +endian = 'little' diff --git a/docker/cross-files/armv7-clang-18-ccache.cross b/docker/cross-files/armv7-clang-18-ccache.cross new file mode 100644 index 000000000..16a40045b --- /dev/null +++ b/docker/cross-files/armv7-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf'] + +[properties] +c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +c_link_args = ['--target=arm-linux-gnueabihf'] +cpp_link_args = ['--target=arm-linux-gnueabihf'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv8-a' +endian = 'little' diff --git a/docker/cross-files/armv7-gcc-13-ccache.cross b/docker/cross-files/armv7-gcc-13-ccache.cross new file mode 100644 index 000000000..e665d84ac --- /dev/null +++ b/docker/cross-files/armv7-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'arm-linux-gnueabihf-gcc-13'] +cpp = ['ccache', 'arm-linux-gnueabihf-g++-13'] +ar = 'arm-linux-gnueabihf-ar' +strip = 'arm-linux-gnueabihf-strip' +objcopy = 'arm-linux-gnueabihf-objcopy' +ld = 'arm-linux-gnueabihf-ld' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf'] + +[properties] +c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror'] +cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv7-a' +endian = 'little' diff --git a/docker/cross-files/armv8-gcc-13-32bit-ccache.cross b/docker/cross-files/armv8-gcc-13-32bit-ccache.cross new file mode 100644 index 000000000..90ad7443d --- /dev/null +++ b/docker/cross-files/armv8-gcc-13-32bit-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = 'arm-linux-gnueabihf-gcc-13' +cpp = 'arm-linux-gnueabihf-g++-13' +ar = 'arm-linux-gnueabihf-ar' +strip = 'arm-linux-gnueabihf-strip' +objcopy = 'arm-linux-gnueabihf-objcopy' +ld = 'arm-linux-gnueabihf-ld' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf'] + +[properties] +c_args = ['-mcpu=cortex-a32', '-mfpu=crypto-neon-fp-armv8', '-Wextra', '-Werror'] +cpp_args = ['-mcpu=cortex-a32', '-mfpu=crypto-neon-fp-armv8', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv8-a' +endian = 'little' diff --git a/docker/cross-files/mips64el-clang-18-ccache.cross b/docker/cross-files/mips64el-clang-18-ccache.cross new file mode 100644 index 000000000..2893a3047 --- /dev/null +++ b/docker/cross-files/mips64el-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-mips64el-static', '-cpu', 'Loongson-3A4000', '-L', '/usr/mips64el-linux-gnuabi64'] + +[properties] +c_args = ['--target=mips64el-linux-gnuabi64', '-march=mips64r5', '-mmsa', '-isystem=/usr/mips64el-linux-gnuabi64/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default] +cpp_args = ['--target=mips64el-linux-gnuabi64', '-march=mips64r5', '-mmsa', '-isystem=/usr/mips64el-linux-gnuabi64/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default] +c_link_args = ['--target=mips64el-linux-gnuabi64'] +cpp_link_args = ['--target=mips64el-linux-gnuabi64'] + +[host_machine] +system = 'linux' +cpu_family = 'mips64el' +cpu = 'mips64el' +endian = 'little' diff --git a/docker/cross-files/mips64el-gcc-13-ccache.cross b/docker/cross-files/mips64el-gcc-13-ccache.cross new file mode 100644 index 000000000..9b940614b --- /dev/null +++ b/docker/cross-files/mips64el-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'mips64el-linux-gnuabi64-gcc-13'] +cpp = ['ccache', 'mips64el-linux-gnuabi64-g++-13'] +ar = 'mips64el-linux-gnuabi64-ar' +strip = 'mips64el-linux-gnuabi64-strip' +objcopy = 'mips64el-linux-gnuabi64-objcopy' +ld = 'mips64el-linux-gnuabi64-ld' +exe_wrapper = ['qemu-mips64el-static', '-L', '/usr/mips64el-linux-gnuabi64'] + +[properties] +c_args = ['-mmsa', '-Wextra', '-Werror'] +cpp_args = ['-mmsa', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'mips64el' +cpu = 'mips64el' +endian = 'little' diff --git a/docker/cross-files/power9-gcc-13-ccache.cross b/docker/cross-files/power9-gcc-13-ccache.cross new file mode 100644 index 000000000..eeeb196fe --- /dev/null +++ b/docker/cross-files/power9-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'powerpc64le-linux-gnu-gcc-13'] +cpp = ['ccache', 'powerpc64le-linux-gnu-g++-13'] +ar = 'powerpc64le-linux-gnu-ar' +strip = 'powerpc64le-linux-gnu-strip' +objcopy = 'powerpc64le-linux-gnu-objcopy' +ld = 'powerpc64le-linux-gnu-ld' +exe_wrapper = ['qemu-ppc64le-static', '-cpu', 'power9', '-L', '/usr/powerpc64le-linux-gnu/'] + +[properties] +c_args = ['-mcpu=power9', '-Wextra', '-Werror'] +cpp_args = ['-mcpu=power9', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'ppc64' +cpu = 'ppc64el' +endian = 'little' diff --git a/docker/cross-files/ppc64el-clang-18-ccache.cross b/docker/cross-files/ppc64el-clang-18-ccache.cross new file mode 100644 index 000000000..e4b283580 --- /dev/null +++ b/docker/cross-files/ppc64el-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-ppc64le-static', '-L', '/usr/powerpc64le-linux-gnu/'] + +[properties] +c_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +cpp_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage', '-Wno-switch-default'] +c_link_args = ['--target=powerpc64le-linux-gnu'] +cpp_link_args = ['--target=powerpc64le-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'ppc64' +cpu = 'ppc64el' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-18-ccache.cross new file mode 100644 index 000000000..836191b6e --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,vlen=128,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=128', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=128', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,vlen=128,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross new file mode 100644 index 000000000..1c6c21335 --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=128,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=128', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=128', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=128,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-18-ccache.cross new file mode 100644 index 000000000..ff04c0131 --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,vlen=256,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=256', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=256', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,vlen=256,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross new file mode 100644 index 000000000..d74a8aafe --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=256,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=256', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=256', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=256,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-18-ccache.cross new file mode 100644 index 000000000..40d92ec58 --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,vlen=512,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=512', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1', + '-menable-experimental-extensions', + '-mrvv-vector-bits=512', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,vlen=512,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross b/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross new file mode 100644 index 000000000..7a01f7c40 --- /dev/null +++ b/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross @@ -0,0 +1,37 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=512,elen=64,vext_spec=v1.0'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=512', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +cpp_args = ['--target=riscv64-linux-gnu', + '-isystem=/usr/riscv64-linux-gnu/include', + '-march=rv64gcv1_zfh_zvfh', + '-menable-experimental-extensions', + '-mrvv-vector-bits=512', + '-Wextra', + '-Werror', + '-Wno-unsafe-buffer-usage'] + +c_link_args = ['--target=riscv64-linux-gnu'] + +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=512,elen=64,vext_spec=v1.0' +endian = 'little' diff --git a/docker/cross-files/riscv64-clang-18-ccache.cross b/docker/cross-files/riscv64-clang-18-ccache.cross new file mode 100644 index 000000000..c00f62e0b --- /dev/null +++ b/docker/cross-files/riscv64-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-riscv64-static', '-L', '/usr/riscv64-linux-gnu/'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=riscv64-linux-gnu'] +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'riscv64' +endian = 'little' diff --git a/docker/cross-files/riscv64-gcc-13-O3-ccache.cross b/docker/cross-files/riscv64-gcc-13-O3-ccache.cross new file mode 100644 index 000000000..dc1ba113f --- /dev/null +++ b/docker/cross-files/riscv64-gcc-13-O3-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'riscv64-linux-gnu-gcc-13'] +cpp = ['ccache', 'riscv64-linux-gnu-g++-13'] +ar = 'riscv64-linux-gnu-ar' +strip = 'riscv64-linux-gnu-strip' +objcopy = 'riscv64-linux-gnu-objcopy' +ld = 'riscv64-linux-gnu-ld' +exe_wrapper = ['qemu-riscv64-static', '-L', '/usr/riscv64-linux-gnu/'] + +[properties] +c_args = ['-Wextra', '-Werror', '-O3'] +cpp_args = ['-Wextra', '-Werror', '-O3'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'riscv64' +endian = 'little' diff --git a/docker/cross-files/riscv64-gcc-13-ccache.cross b/docker/cross-files/riscv64-gcc-13-ccache.cross new file mode 100644 index 000000000..261cc0a9f --- /dev/null +++ b/docker/cross-files/riscv64-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 'riscv64-linux-gnu-gcc-13'] +cpp = ['ccache', 'riscv64-linux-gnu-g++-13'] +ar = 'riscv64-linux-gnu-ar' +strip = 'riscv64-linux-gnu-strip' +objcopy = 'riscv64-linux-gnu-objcopy' +ld = 'riscv64-linux-gnu-ld' +exe_wrapper = ['qemu-riscv64-static', '-L', '/usr/riscv64-linux-gnu/'] + +[properties] +c_args = ['-Wextra', '-Werror'] +cpp_args = ['-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'riscv64' +endian = 'little' diff --git a/docker/cross-files/s390x-clang-18-ccache.cross b/docker/cross-files/s390x-clang-18-ccache.cross new file mode 100644 index 000000000..365967f4d --- /dev/null +++ b/docker/cross-files/s390x-clang-18-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-18'] +cpp = ['ccache', 'clang++-18'] +ar = 'llvm-ar-18' +strip = 'llvm-strip-18' +objcopy = 'llvm-objcopy-18' +ld = 'llvm-ld-18' +exe_wrapper = ['qemu-s390x-static', '-L', '/usr/s390x-linux-gnu/'] + +[properties] +c_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=s390x-ibm-linux'] +cpp_link_args = ['--target=s390x-ibm-linux'] + +[host_machine] +system = 'linux' +cpu_family = 's390x' +cpu = 's390x' +endian = 'big' diff --git a/docker/cross-files/s390x-gcc-13-ccache.cross b/docker/cross-files/s390x-gcc-13-ccache.cross new file mode 100644 index 000000000..aec278cbd --- /dev/null +++ b/docker/cross-files/s390x-gcc-13-ccache.cross @@ -0,0 +1,18 @@ +[binaries] +c = ['ccache', 's390x-linux-gnu-gcc-13'] +cpp = ['ccache', 's390x-linux-gnu-g++-13'] +ar = 's390x-linux-gnu-ar' +strip = 's390x-linux-gnu-strip' +objcopy = 's390x-linux-gnu-objcopy' +ld = 's390x-linux-gnu-ld' +exe_wrapper = ['qemu-s390x-static', '-L', '/usr/s390x-linux-gnu/'] + +[properties] +c_args = ['-march=z13', '-mzvector', '-Wextra', '-Werror'] +cpp_args = ['-march=z13', '-mzvector', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 's390x' +cpu = 's390x' +endian = 'big'