-.cross_system_build_job:
- stage: build
- image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
- timeout: 80m
- script:
- - mkdir build
- - cd build
- - PKG_CONFIG_PATH=$PKG_CONFIG_PATH
- ../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-user
- --target-list-exclude="aarch64-softmmu i386-softmmu microblaze-softmmu
- mips-softmmu mipsel-softmmu mips64-softmmu ppc64-softmmu sh4-softmmu
- xtensa-softmmu"
- - make -j$(expr $(nproc) + 1) all check-build
-
-# Job to cross-build specific accelerators.
-#
-# Set the $ACCEL variable to select the specific accelerator (default to
-# KVM), and set extra options (such disabling other accelerators) via the
-# $ACCEL_CONFIGURE_OPTS variable.
-.cross_accel_build_job:
- stage: build
- image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
- timeout: 30m
- script:
- - mkdir build
- - cd build
- - PKG_CONFIG_PATH=$PKG_CONFIG_PATH
- ../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-tools
- --enable-${ACCEL:-kvm} $ACCEL_CONFIGURE_OPTS
- - make -j$(expr $(nproc) + 1) all check-build
-
-.cross_user_build_job:
- stage: build
- image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
- script:
- - mkdir build
- - cd build
- - PKG_CONFIG_PATH=$PKG_CONFIG_PATH
- ../configure --enable-werror $QEMU_CONFIGURE_OPTS --disable-system
- - make -j$(expr $(nproc) + 1) all check-build
+include:
+ - local: '/.gitlab-ci.d/crossbuild-template.yml'
cross-armel-system:
extends: .cross_system_build_job
+ needs:
+ job: armel-debian-cross-container
variables:
IMAGE: debian-armel-cross
cross-armel-user:
extends: .cross_user_build_job
+ needs:
+ job: armel-debian-cross-container
variables:
IMAGE: debian-armel-cross
cross-armhf-system:
extends: .cross_system_build_job
+ needs:
+ job: armhf-debian-cross-container
variables:
IMAGE: debian-armhf-cross
cross-armhf-user:
extends: .cross_user_build_job
+ needs:
+ job: armhf-debian-cross-container
variables:
IMAGE: debian-armhf-cross
cross-arm64-system:
extends: .cross_system_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
cross-arm64-user:
extends: .cross_user_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
+cross-i386-system:
+ extends: .cross_system_build_job
+ needs:
+ job: i386-fedora-cross-container
+ variables:
+ IMAGE: fedora-i386-cross
+ MAKE_CHECK_ARGS: check-qtest
+
+cross-i386-user:
+ extends: .cross_user_build_job
+ needs:
+ job: i386-fedora-cross-container
+ variables:
+ IMAGE: fedora-i386-cross
+ MAKE_CHECK_ARGS: check
+
+cross-i386-tci:
+ extends: .cross_accel_build_job
+ timeout: 60m
+ needs:
+ job: i386-fedora-cross-container
+ variables:
+ IMAGE: fedora-i386-cross
+ ACCEL: tcg-interpreter
+ EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,aarch64-softmmu,aarch64-linux-user,ppc-softmmu,ppc-linux-user
+ MAKE_CHECK_ARGS: check check-tcg
+
cross-mips-system:
extends: .cross_system_build_job
+ needs:
+ job: mips-debian-cross-container
variables:
IMAGE: debian-mips-cross
cross-mips-user:
extends: .cross_user_build_job
+ needs:
+ job: mips-debian-cross-container
variables:
IMAGE: debian-mips-cross
cross-mipsel-system:
extends: .cross_system_build_job
+ needs:
+ job: mipsel-debian-cross-container
variables:
IMAGE: debian-mipsel-cross
cross-mipsel-user:
extends: .cross_user_build_job
+ needs:
+ job: mipsel-debian-cross-container
variables:
IMAGE: debian-mipsel-cross
cross-mips64el-system:
extends: .cross_system_build_job
+ needs:
+ job: mips64el-debian-cross-container
variables:
IMAGE: debian-mips64el-cross
cross-mips64el-user:
extends: .cross_user_build_job
+ needs:
+ job: mips64el-debian-cross-container
variables:
IMAGE: debian-mips64el-cross
cross-ppc64el-system:
extends: .cross_system_build_job
+ needs:
+ job: ppc64el-debian-cross-container
variables:
IMAGE: debian-ppc64el-cross
cross-ppc64el-user:
extends: .cross_user_build_job
+ needs:
+ job: ppc64el-debian-cross-container
variables:
IMAGE: debian-ppc64el-cross
+# The riscv64 cross-builds currently use a 'sid' container to get
+# compilers and libraries. Until something more stable is found we
+# allow_failure so as not to block CI.
+cross-riscv64-system:
+ extends: .cross_system_build_job
+ allow_failure: true
+ needs:
+ job: riscv64-debian-cross-container
+ variables:
+ IMAGE: debian-riscv64-cross
+
+cross-riscv64-user:
+ extends: .cross_user_build_job
+ allow_failure: true
+ needs:
+ job: riscv64-debian-cross-container
+ variables:
+ IMAGE: debian-riscv64-cross
+
cross-s390x-system:
extends: .cross_system_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
cross-s390x-user:
extends: .cross_user_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
cross-s390x-kvm-only:
extends: .cross_accel_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
- ACCEL_CONFIGURE_OPTS: --disable-tcg
+ EXTRA_CONFIGURE_OPTS: --disable-tcg
+
+cross-mips64el-kvm-only:
+ extends: .cross_accel_build_job
+ needs:
+ job: mips64el-debian-cross-container
+ variables:
+ IMAGE: debian-mips64el-cross
+ EXTRA_CONFIGURE_OPTS: --disable-tcg --target-list=mips64el-softmmu
cross-win32-system:
extends: .cross_system_build_job
+ needs:
+ job: win32-fedora-cross-container
variables:
IMAGE: fedora-win32-cross
+ CROSS_SKIP_TARGETS: alpha-softmmu avr-softmmu hppa-softmmu m68k-softmmu
+ microblazeel-softmmu mips64el-softmmu nios2-softmmu
+ artifacts:
+ paths:
+ - build/qemu-setup*.exe
cross-win64-system:
extends: .cross_system_build_job
+ needs:
+ job: win64-fedora-cross-container
variables:
IMAGE: fedora-win64-cross
+ CROSS_SKIP_TARGETS: or1k-softmmu rx-softmmu sh4eb-softmmu sparc64-softmmu
+ tricore-softmmu xtensaeb-softmmu
+ artifacts:
+ paths:
+ - build/qemu-setup*.exe
cross-amd64-xen-only:
extends: .cross_accel_build_job
+ needs:
+ job: amd64-debian-cross-container
variables:
IMAGE: debian-amd64-cross
ACCEL: xen
- ACCEL_CONFIGURE_OPTS: --disable-tcg --disable-kvm
+ EXTRA_CONFIGURE_OPTS: --disable-tcg --disable-kvm
cross-arm64-xen-only:
extends: .cross_accel_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
ACCEL: xen
- ACCEL_CONFIGURE_OPTS: --disable-tcg --disable-kvm
+ EXTRA_CONFIGURE_OPTS: --disable-tcg --disable-kvm