From d67c19064910a5e9b15bb95ef17872ada8aaeebc 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 | 335 +++++++++--------- docker/Dockerfile | 2 +- .../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-12-32bit-ccache.cross | 4 +- .../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-17-ccache.cross | 4 +- ...4+rvv_vlen128_elen64-clang-18-ccache.cross | 37 ++ ..._vlen128_elen64_zvfh-clang-17-ccache.cross | 4 +- ..._vlen128_elen64_zvfh-clang-18-ccache.cross | 37 ++ ...4+rvv_vlen256_elen64-clang-17-ccache.cross | 4 +- ...4+rvv_vlen256_elen64-clang-18-ccache.cross | 37 ++ ..._vlen256_elen64_zvfh-clang-17-ccache.cross | 4 +- ..._vlen256_elen64_zvfh-clang-18-ccache.cross | 37 ++ ...4+rvv_vlen512_elen64-clang-17-ccache.cross | 4 +- ...4+rvv_vlen512_elen64-clang-18-ccache.cross | 37 ++ ..._vlen512_elen64_zvfh-clang-17-ccache.cross | 4 +- ..._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 + 31 files changed, 714 insertions(+), 175 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 67b5e07f1..5e3084241 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: 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,17 +120,16 @@ 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 ln -s /usr/bin/gcov-12 /usr/bin/gcov - sudo python3 -m pip install meson==0.55.1 + sudo apt-get install -y ninja-build ninja-build pipx parallel + # 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" - name: Configure - run: meson setup build -Db_coverage=true || (cat build/meson-logs/meson-log.txt ; false) + run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) - name: Test run native? run: | test/check-flags.sh query && echo Tests with $CFLAGS will be run natively @@ -139,14 +138,6 @@ 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 }} x86-xop: runs-on: ubuntu-22.04 @@ -169,33 +160,24 @@ 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 ln -s /usr/bin/gcov-12 /usr/bin/gcov - sudo python3 -m pip install meson==0.55.1 + sudo apt-get install -y ninja-build ninja-build pipx parallel 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" - name: Configure - run: meson setup build -Db_coverage=true || (cat build/meson-logs/meson-log.txt ; false) + run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) - name: Build run: ninja -C build -v # can't test until we find a combination of `gcc -march=` and `qemu -cpu` that both enable XOP and allows qemu to test it # - name: Test # run: meson test -C build --print-errorlogs --wrapper "qemu-amd64-static -cpu Opteron_G5-v1" - # - 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 }} emscripten: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: variant: @@ -212,8 +194,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.1 + sudo apt-get install -y ninja-build ninja-build pipx parallel &&\ + pipx install meson==0.55.1 - name: Install emscripten run: | git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk @@ -237,7 +219,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 @@ -250,27 +232,19 @@ 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.1 + sudo apt-get -yq install libxml2-utils ninja-build parallel pipx && \ + pipx install meson==0.55.1 - name: Convert run: ./test/native-aliases.sh - name: Configure - run: meson setup build -Db_coverage=true + run: meson setup build - name: Build 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 }} sleef: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: CFLAGS: -march=native -Wall -Wextra -Werror CXXFLAGS: -march=native -Wall -Wextra -Werror @@ -283,22 +257,14 @@ 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.1 + sudo apt-get install -y ninja-build ninja-build parallel libsleef-dev pipx + pipx install meson==0.55.1 - name: Configure - run: meson setup build -Dsleef=enabled -Db_coverage=true + run: meson setup build -Dsleef=enabled - 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 }} gcc: strategy: @@ -306,34 +272,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 }} @@ -350,9 +323,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.1 + pipx install meson==0.55.1 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 if: ${{ matrix.ccache == 'true' }} @@ -376,57 +349,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 @@ -437,13 +410,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.1 + 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: @@ -458,41 +430,26 @@ jobs: - name: Test run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) - clang-qemu-rvv: + clang17-qemu-rvv: strategy: fail-fast: false matrix: include: - - version: 17 + - version: 17 # not yet passing with clang 18.1.3 cross: riscv64+rvv_vlen128_elen64 arch_gnu: riscv64 arch_deb: riscv64 distro: ubuntu-22.04 - - version: 17 + - version: 17 # not yet passing with clang 18.1.3 cross: riscv64+rvv_vlen256_elen64 arch_gnu: riscv64 arch_deb: riscv64 distro: ubuntu-22.04 - - version: 17 + - version: 17 # not yet passing with clang 18.1.3 cross: riscv64+rvv_vlen512_elen64 arch_gnu: riscv64 arch_deb: riscv64 distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen128_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen256_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen512_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 runs-on: ${{ matrix.distro }} container: image: amd64/ubuntu:23.10 @@ -534,49 +491,106 @@ jobs: - name: Test run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) + clang18-qemu-rvv: + strategy: + fail-fast: false + matrix: + include: + - version: 18 + cross: riscv64+rvv_vlen128_elen64_zvfh + arch_gnu: riscv64 + arch_deb: riscv64 + distro: ubuntu-24.04 + - version: 18 + cross: riscv64+rvv_vlen256_elen64_zvfh + arch_gnu: riscv64 + arch_deb: riscv64 + distro: ubuntu-24.04 + - version: 18 + cross: riscv64+rvv_vlen512_elen64_zvfh + arch_gnu: riscv64 + arch_deb: riscv64 + distro: ubuntu-24.04 + runs-on: ${{ matrix.distro }} + steps: + - run: sudo apt-get update + - name: Install git + run: | + sudo apt-get install -y git + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: CPU Information + run: cat /proc/cpuinfo + - name: Install APT Dependencies + run: | + sudo apt-get install -y python3 git ninja-build pkg-config libglib2.0-dev \ + lsb-release wget software-properties-common gnupg qemu-user pipx + sudo apt-get install -y clang-${{ matrix.version }} lldb-${{ matrix.version }} lld-${{ matrix.version }} + 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 + sudo apt install meson + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} + - name: add ccache to the build path + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + - name: Configure + run: | + meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \ + || (cat build/meson-logs/meson-log.txt ; false) + - name: Build + run: ninja -C build -v + - name: Test + run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) + clang-qemu: strategy: 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 @@ -587,15 +601,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.1 + pipx install meson==0.55.1 - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -643,36 +654,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 -Wno-nan-infinity-disabled + 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 @@ -683,15 +704,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.1 + 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++ @@ -789,24 +813,16 @@ jobs: find /usr/local/bin -type l -exec sh -c 'readlink -f "$1" \ | grep -q ^/Library/Frameworks/Python.framework/Versions/' _ {} \; -exec rm -v {} \; - name: Install Homebrew Dependencies - run: brew install meson ninja # gcovr + run: brew install meson ninja - name: Configure - run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) # -Db_coverage=true + run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) - 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 }} icc: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: CC: /home/runner/.local/bin/icx CXX: /home/runner/.local/bin/icpx @@ -817,7 +833,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 @@ -864,14 +880,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 6b30bca06..70d91b77b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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-12-32bit-ccache.cross b/docker/cross-files/armv8-gcc-12-32bit-ccache.cross index 2b3947b8d..2a74228b4 100644 --- a/docker/cross-files/armv8-gcc-12-32bit-ccache.cross +++ b/docker/cross-files/armv8-gcc-12-32bit-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'arm-linux-gnueabihf-gcc-12' -cpp = 'arm-linux-gnueabihf-g++-12' +c = ['ccache', 'arm-linux-gnueabihf-gcc-12'] +cpp = ['ccache', 'arm-linux-gnueabihf-g++-12'] ar = 'arm-linux-gnueabihf-ar' strip = 'arm-linux-gnueabihf-strip' objcopy = 'arm-linux-gnueabihf-objcopy' 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..f69676f5b --- /dev/null +++ b/docker/cross-files/armv8-gcc-13-32bit-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 = ['-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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-17-ccache.cross index ae1755341..a7385a987 100644 --- a/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen128_elen64-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-17-ccache.cross index 8f1076fae..9b9ec114c 100644 --- a/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen128_elen64_zvfh-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-17-ccache.cross index 60ee2253b..6500e8561 100644 --- a/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen256_elen64-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-17-ccache.cross index 107016a79..1b170a5f0 100644 --- a/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen256_elen64_zvfh-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-17-ccache.cross index 217b3833d..e6eedc8ae 100644 --- a/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen512_elen64-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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-17-ccache.cross b/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-17-ccache.cross index 94f2fb30c..58eb829ad 100644 --- a/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-17-ccache.cross +++ b/docker/cross-files/riscv64+rvv_vlen512_elen64_zvfh-clang-17-ccache.cross @@ -1,6 +1,6 @@ [binaries] -c = 'clang-17' -cpp = 'clang++-17' +c = ['ccache', 'clang-17'] +cpp = ['ccache', 'clang++-17'] ar = 'llvm-ar-17' strip = 'llvm-strip-17' objcopy = 'llvm-objcopy-17' 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'