Use QEMU for arm and ppc tests.

This commit is contained in:
Antonio Sánchez 2025-06-25 15:22:46 +00:00
parent db8bd5b825
commit 0bce653efc
2 changed files with 22 additions and 32 deletions

View File

@ -244,11 +244,13 @@ build:linux:rocm-latest:gcc-10:
EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf
EIGEN_CI_ADDITIONAL_ARGS: >
-DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv7-a;-mfpu=neon-vfpv4
-DCMAKE_SYSTEM_NAME=Linux
-DCMAKE_CROSSCOMPILING_EMULATOR=qemu-arm-static;-L;/usr/arm-linux-gnueabihf
build:linux:cross:arm:gcc-10:default:
extends: .build:linux:cross:arm
variables:
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static
EIGEN_CI_CROSS_C_COMPILER: arm-linux-gnueabihf-gcc-10
EIGEN_CI_CROSS_CXX_COMPILER: arm-linux-gnueabihf-g++-10
@ -258,7 +260,7 @@ build:linux:cross:arm:clang-12:default:
EIGEN_CI_INSTALL: clang-12
EIGEN_CI_C_COMPILER: clang-12
EIGEN_CI_CXX_COMPILER: clang++-12
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-12
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-12 qemu-user-static
######## aarch64 ###############################################################
@ -295,25 +297,23 @@ build:linux:cross:aarch64:clang-12:default:
variables:
EIGEN_CI_TARGET_ARCH: ppc64le
EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
EIGEN_CI_ADDITIONAL_ARGS: >-
-DCMAKE_SYSTEM_NAME=Linux
-DCMAKE_CROSSCOMPILING_EMULATOR=qemu-ppc64le-static;-L;/usr/powerpc64le-linux-gnu
build:linux:cross:ppc64le:gcc-10:default:
extends: .build:linux:cross:ppc64le
variables:
EIGEN_CI_C_COMPILER: gcc-10
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu qemu-user-static
EIGEN_CI_CROSS_C_COMPILER: powerpc64le-linux-gnu-gcc-10
EIGEN_CI_CROSS_CXX_COMPILER: powerpc64le-linux-gnu-g++-10
# Temporarily disable MMA until #2457 is resolved.
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_ALTIVEC_DISABLE_MMA=1"
build:linux:cross:ppc64le:clang-12:default:
extends: .build:linux:cross:ppc64le
variables:
EIGEN_CI_INSTALL: clang-12
EIGEN_CI_C_COMPILER: clang-12
EIGEN_CI_CXX_COMPILER: clang++-12
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu clang-12
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu clang-12 qemu-user-static
######## loongarch64 #################################################
@ -328,7 +328,7 @@ build:linux:cross:loongarch64:gcc-14:default:
extends: .build:linux:cross:loongarch64
image: ubuntu:24.04
variables:
EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu
EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static
EIGEN_CI_CROSS_C_COMPILER: loongarch64-linux-gnu-gcc-14
EIGEN_CI_CROSS_CXX_COMPILER: loongarch64-linux-gnu-g++-14
EIGEN_CI_ADDITIONAL_ARGS: >-

View File

@ -9,6 +9,10 @@
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
tags:
- eigen-runner
- linux
- x86-64
##### x86-64 ###################################################################
.test:linux:x86-64:
@ -16,10 +20,6 @@
variables:
EIGEN_CI_TARGET_ARCH: x86_64
EIGEN_CI_CROSS_TARGET_TRIPLE: x86_64-linux-gnu
tags:
- eigen-runner
- linux
- x86-64
# GCC-6 (minimum on Ubuntu 18.04)
.test:linux:x86-64:gcc-6:default:
@ -289,16 +289,13 @@ test:linux:cuda-12.2:clang-12:
variables:
EIGEN_CI_TARGET_ARCH: arm
EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf
# Enable cross-compiled arm binary to run on aarch64.
EIGEN_CI_BEFORE_SCRIPT: "ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib/ && export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib/"
tags:
- saas-linux-large-arm64
EIGEN_CI_CTEST_ARGS: --timeout 2000
.test:linux:arm:gcc-10:default:
extends: .test:linux:arm
needs: [ build:linux:cross:arm:gcc-10:default ]
variables:
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static
test:linux:arm:gcc-10:default:official:
extends: .test:linux:arm:gcc-10:default
@ -314,7 +311,7 @@ test:linux:arm:gcc-10:default:unsupported:
extends: .test:linux:arm
needs: [ build:linux:cross:arm:clang-12:default ]
variables:
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-12
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-12 qemu-user-static
test:linux:arm:clang-12:default:official:
extends: .test:linux:arm:clang-12:default
@ -375,16 +372,13 @@ test:linux:aarch64:clang-12:default:unsupported:
variables:
EIGEN_CI_TARGET_ARCH: ppc64le
EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
tags:
- eigen-runner
- linux
- ppc64le
.test:linux:ppc64le:gcc-10:default:
extends: .test:linux:ppc64le
needs: [ build:linux:cross:ppc64le:gcc-10:default ]
variables:
EIGEN_CI_INSTALL: g++-10
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu qemu-user-static
EIGEN_CI_CTEST_ARGS: --timeout 2000
test:linux:ppc64le:gcc-10:default:official:
extends: .test:linux:ppc64le:gcc-10:default
@ -400,7 +394,7 @@ test:linux:ppc64le:gcc-10:default:unsupported:
extends: .test:linux:ppc64le
needs: [ build:linux:cross:ppc64le:clang-12:default ]
variables:
EIGEN_CI_INSTALL: clang-12
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu clang-12 qemu-user-static
test:linux:ppc64le:clang-12:default:official:
extends: .test:linux:ppc64le:clang-12:default
@ -412,20 +406,16 @@ test:linux:ppc64le:clang-12:default:unsupported:
variables:
EIGEN_CI_CTEST_LABEL: Unsupported
##### loongarch64 ###################################################################
##### loongarch64 ##############################################################
.test:linux:loongarch64:
extends: .test:linux
image: ubuntu:24.04
variables:
EIGEN_CI_TARGET_ARCH: loongarch64
EIGEN_CI_CROSS_TARGET_TRIPLE: loongarch64-linux-gnu
# Install QEMU and set up the execution environment in the image
EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static
EIGEN_CI_CTEST_ARGS: --timeout 2000
tags:
- eigen-runner
- linux
- cross-compiler
# GCC-14 (Ubuntu 24)
.test:linux:loongarch64:gcc-14:default: