mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Boot self-tests (also referred to as boot-time tests or power-on self-tests) are intended to check that Xen has configured the hardware correctly before bringing up any domains. Introduce tests to confirm that, using a dedicated SGI (GIC_SGI_TEST): 1. A cpu can send the SGI to itself 2. A cpu can send the SGI to another specific CPU (CPU0) 3. A cpu can send the SGI to all the other CPUs Each CPU counts the test SGIs it takes. A sender samples those counters before sending and then waits for the count of every CPU it targeted to change, which is how it tells that the SGI was really delivered. The counters are never reset, so comparing against a sample rather than an absolute value keeps concurrent senders from disturbing each other. The snapshot is allocated rather than kept on the stack, as NR_CPUS can be large enough for such an array to overflow it. A test reports a failure by panic(), so Xen never continues on a platform where SGI delivery is broken. When the tests pass, Xen carries on booting normally. Also introduce a config CONFIG_BOOT_SELFTEST which enables these tests. It depends on DEBUG and is off unless explicitly enabled. Also introduce a boolean command line parameter "gic-test", so that a build with CONFIG_BOOT_SELFTEST enabled can be shipped but the tests selected at boot. It is documented in docs/misc/xen-command-line.pandoc. In order to keep all the boot self-tests together in the binary, a separate section "initcallboottest" is introduced. Tests are registered using __initcallboottest() and run once on every CPU by do_init_boottests(), bracketed by begin/end messages. They run before any domain is created on the primary core, and before the idle loop is entered on a secondary core. Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Julien Grall <julien@xen.org>
843 lines
17 KiB
YAML
843 lines
17 KiB
YAML
.build-tmpl: &build
|
|
stage: build
|
|
image: ${XEN_REGISTRY}/${CONTAINER}
|
|
script:
|
|
- ./automation/scripts/build 2>&1 | tee build.log
|
|
artifacts:
|
|
paths:
|
|
- binaries/
|
|
- intermediates/
|
|
- xen-config
|
|
- xen-cppcheck.txt
|
|
- '*.log'
|
|
- '*/*.log'
|
|
when: always
|
|
needs: []
|
|
rules:
|
|
- if: $BUILD_FOR_TESTS_ONLY
|
|
when: never
|
|
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
|
|
when: on_success
|
|
|
|
# override BUILD_FOR_TESTS_ONLY exclusion
|
|
.build-test-tpl: &build-test
|
|
rules:
|
|
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
|
|
when: on_success
|
|
|
|
.gcc-tmpl:
|
|
variables: &gcc
|
|
CC: gcc
|
|
CXX: g++
|
|
|
|
.clang-tmpl:
|
|
variables: &clang
|
|
CC: clang
|
|
CXX: clang++
|
|
clang: y
|
|
|
|
.x86_64-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: x86_64
|
|
tags:
|
|
- x86_64
|
|
|
|
.x86_64-build:
|
|
extends: .x86_64-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.x86_64-build-debug:
|
|
extends: .x86_64-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.x86_32-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: x86_32
|
|
tags:
|
|
- x86_32
|
|
|
|
.x86_32-build:
|
|
extends: .x86_32-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.x86_32-build-debug:
|
|
extends: .x86_32-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.gcc-x86_64-build:
|
|
extends: .x86_64-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-x86_64-build-debug:
|
|
extends: .x86_64-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-x86_32-build:
|
|
extends: .x86_32-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-x86_32-build-debug:
|
|
extends: .x86_32-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.clang-x86_64-build:
|
|
extends: .x86_64-build
|
|
variables:
|
|
<<: *clang
|
|
|
|
.clang-x86_64-build-debug:
|
|
extends: .x86_64-build-debug
|
|
variables:
|
|
<<: *clang
|
|
|
|
.clang-x86_32-build:
|
|
extends: .x86_32-build
|
|
variables:
|
|
<<: *clang
|
|
|
|
.clang-x86_32-build-debug:
|
|
extends: .x86_32-build-debug
|
|
variables:
|
|
<<: *clang
|
|
|
|
.arm32-cross-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: arm32
|
|
tags:
|
|
- arm64
|
|
|
|
.arm32-cross-build:
|
|
extends: .arm32-cross-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.arm32-cross-build-debug:
|
|
extends: .arm32-cross-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.gcc-arm32-cross-build:
|
|
extends: .arm32-cross-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-arm32-cross-build-debug:
|
|
extends: .arm32-cross-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.arm64-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: arm64
|
|
tags:
|
|
- arm64
|
|
|
|
.arm64-build:
|
|
extends: .arm64-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.arm64-build-debug:
|
|
extends: .arm64-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.gcc-arm64-build:
|
|
extends: .arm64-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-arm64-build-debug:
|
|
extends: .arm64-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.riscv64-cross-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: riscv64
|
|
tags:
|
|
- x86_64
|
|
|
|
.riscv64-cross-build:
|
|
extends: .riscv64-cross-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.riscv64-cross-build-debug:
|
|
extends: .riscv64-cross-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.gcc-riscv64-cross-build:
|
|
extends: .riscv64-cross-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-riscv64-cross-build-debug:
|
|
extends: .riscv64-cross-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.ppc64le-cross-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: ppc64
|
|
tags:
|
|
- x86_64
|
|
|
|
.ppc64le-cross-build:
|
|
extends: .ppc64le-cross-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.ppc64le-cross-build-debug:
|
|
extends: .ppc64le-cross-build-tmpl
|
|
variables:
|
|
debug: y
|
|
|
|
.gcc-ppc64le-cross-build:
|
|
extends: .ppc64le-cross-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.gcc-ppc64le-cross-build-debug:
|
|
extends: .ppc64le-cross-build-debug
|
|
variables:
|
|
<<: *gcc
|
|
|
|
.yocto-test:
|
|
stage: build
|
|
image: ${XEN_REGISTRY}/${CONTAINER}
|
|
script:
|
|
- ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
|
|
variables:
|
|
YOCTO_VERSION: scarthgap
|
|
CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
|
|
artifacts:
|
|
paths:
|
|
- 'logs/*'
|
|
- binaries/
|
|
when: always
|
|
needs: []
|
|
rules:
|
|
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
|
|
when: manual
|
|
allow_failure: true
|
|
|
|
.yocto-test-arm64:
|
|
extends: .yocto-test
|
|
variables:
|
|
YOCTO_HOST: -arm64v8
|
|
tags:
|
|
- arm64
|
|
|
|
.yocto-test-x86_64:
|
|
extends: .yocto-test
|
|
tags:
|
|
- x86_64
|
|
|
|
.x86_64-cross-build-tmpl:
|
|
<<: *build
|
|
variables:
|
|
XEN_TARGET_ARCH: x86_64
|
|
tags:
|
|
- arm64
|
|
|
|
.x86_64-cross-build:
|
|
extends: .x86_64-cross-build-tmpl
|
|
variables:
|
|
debug: n
|
|
|
|
.gcc-x86_64-cross-build:
|
|
extends: .x86_64-cross-build
|
|
variables:
|
|
<<: *gcc
|
|
|
|
# Jobs below this line
|
|
|
|
# Build jobs needed for tests
|
|
|
|
alpine-3.24-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-x86_64
|
|
|
|
alpine-3.24-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-x86_64
|
|
BUILD_QEMU_XEN: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_EXPERT=y
|
|
CONFIG_UNSUPPORTED=y
|
|
CONFIG_ARGO=y
|
|
CONFIG_UBSAN=y
|
|
CONFIG_UBSAN_FATAL=y
|
|
CONFIG_MICROCODE_SCAN_DEFAULT=y
|
|
CONFIG_XHCI=y
|
|
|
|
debian-13-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_SHADOW_PAGING=y
|
|
|
|
debian-13-x86_64-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_SHADOW_PAGING=y
|
|
|
|
debian-13-ppc64le-gcc-debug:
|
|
extends: .gcc-ppc64le-cross-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:13-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_UBSAN=y
|
|
CONFIG_UBSAN_FATAL=y
|
|
|
|
debian-13-riscv64-gcc-debug:
|
|
extends: .gcc-riscv64-cross-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:13-riscv64
|
|
KBUILD_DEFCONFIG: tiny64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_UBSAN=y
|
|
CONFIG_UBSAN_FATAL=y
|
|
|
|
# Arm32 cross-build
|
|
|
|
debian-12-arm32-gcc:
|
|
extends: .gcc-arm32-cross-build
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-arm32-gcc-debug:
|
|
extends: .gcc-arm32-cross-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-arm32-gcc-randconfig:
|
|
extends: .gcc-arm32-cross-build
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
RANDCONFIG: y
|
|
|
|
debian-12-arm32-gcc-debug-staticmem:
|
|
extends: .gcc-arm32-cross-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_EXPERT=y
|
|
CONFIG_UNSUPPORTED=y
|
|
CONFIG_STATIC_MEMORY=y
|
|
|
|
debian-12-arm32-gcc-debug-earlyprintk:
|
|
extends: .gcc-arm32-cross-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_EARLY_UART_CHOICE_PL011=y
|
|
CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
|
|
|
|
debian-12-arm32-gcc-debug-mpu:
|
|
extends: .gcc-arm32-cross-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-arm32
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_XEN_START_ADDRESS=0x0
|
|
CONFIG_MPU=y
|
|
CONFIG_UNSUPPORTED=y
|
|
|
|
# Arm builds
|
|
|
|
debian-12-arm64-gcc:
|
|
extends: .gcc-arm64-build
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8
|
|
|
|
debian-12-arm64-gcc-debug:
|
|
extends: .gcc-arm64-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8
|
|
|
|
debian-13-arm64-gcc:
|
|
extends: .gcc-arm64-build
|
|
variables:
|
|
CONTAINER: debian:13-arm64v8
|
|
|
|
debian-13-arm64-gcc-debug:
|
|
extends: .gcc-arm64-build-debug
|
|
variables:
|
|
CONTAINER: debian:13-arm64v8
|
|
|
|
alpine-3.24-arm64-gcc:
|
|
extends: .gcc-arm64-build
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
|
|
alpine-3.24-arm64-gcc-debug:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_UBSAN=y
|
|
CONFIG_UBSAN_FATAL=y
|
|
|
|
alpine-3.24-arm64-gcc-debug-boot-selftest:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_BOOT_SELFTEST=y
|
|
|
|
alpine-3.24-arm64-gcc-randconfig:
|
|
extends: .gcc-arm64-build
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
RANDCONFIG: y
|
|
|
|
alpine-3.24-arm64-gcc-debug-staticmem:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_EXPERT=y
|
|
CONFIG_UNSUPPORTED=y
|
|
CONFIG_STATIC_MEMORY=y
|
|
|
|
alpine-3.24-arm64-gcc-debug-static-shared-mem:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_UNSUPPORTED=y
|
|
CONFIG_STATIC_MEMORY=y
|
|
CONFIG_STATIC_SHM=y
|
|
|
|
alpine-3.24-arm64-gcc-debug-boot-cpupools:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_BOOT_TIME_CPUPOOLS=y
|
|
|
|
alpine-3.24-arm64-gcc-debug-earlyprintk:
|
|
extends: .gcc-arm64-build-debug
|
|
<<: *build-test
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_EARLY_UART_CHOICE_PL011=y
|
|
CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
|
|
|
|
alpine-3.24-arm64-gcc-debug-mpu:
|
|
extends: .gcc-arm64-build-debug
|
|
variables:
|
|
CONTAINER: alpine:3.24-arm64v8
|
|
HYPERVISOR_ONLY: y
|
|
EXTRA_XEN_CONFIG: |
|
|
CONFIG_XEN_START_ADDRESS=0x0
|
|
CONFIG_MPU=y
|
|
CONFIG_UNSUPPORTED=y
|
|
|
|
# Yocto test jobs
|
|
yocto-qemuarm64:
|
|
extends: .yocto-test-arm64
|
|
variables:
|
|
YOCTO_BOARD: qemuarm64
|
|
|
|
yocto-qemuarm:
|
|
extends: .yocto-test-arm64
|
|
variables:
|
|
YOCTO_BOARD: qemuarm
|
|
YOCTO_OUTPUT: --copy-output
|
|
|
|
yocto-qemux86-64:
|
|
extends: .yocto-test-x86_64
|
|
variables:
|
|
YOCTO_BOARD: qemux86-64
|
|
|
|
# Cppcheck analysis jobs
|
|
|
|
debian-12-x86_64-gcc-cppcheck:
|
|
extends: .gcc-x86_64-cross-build
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-cppcheck
|
|
CROSS_COMPILE: /usr/bin/x86_64-linux-gnu-
|
|
CPPCHECK: y
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-arm32-gcc-cppcheck:
|
|
extends: .gcc-arm32-cross-build
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-cppcheck
|
|
CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
|
|
CPPCHECK: y
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-arm64-gcc-cppcheck:
|
|
extends: .gcc-arm64-build
|
|
variables:
|
|
CONTAINER: debian:12-arm64v8-cppcheck
|
|
CPPCHECK: y
|
|
HYPERVISOR_ONLY: y
|
|
|
|
# Build jobs not needed for tests
|
|
|
|
alpine-3.24-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: alpine:3.24-x86_64
|
|
|
|
alpine-3.24-x86_64-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: alpine:3.24-x86_64
|
|
|
|
archlinux-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: archlinux:current-x86_64
|
|
allow_failure: true
|
|
|
|
archlinux-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: archlinux:current-x86_64
|
|
allow_failure: true
|
|
|
|
debian-12-x86_64-gcc-ibt:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:12-x86_64-gcc-ibt
|
|
RANDCONFIG: y
|
|
EXTRA_FIXED_RANDCONFIG: |
|
|
CONFIG_XEN_IBT=y
|
|
|
|
debian-12-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:12-x86_64
|
|
|
|
debian-12-x86_64-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-x86_64
|
|
|
|
debian-12-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:12-x86_64
|
|
|
|
debian-12-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-x86_64
|
|
|
|
debian-12-x86_32-clang-debug:
|
|
extends: .clang-x86_32-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-x86_32
|
|
|
|
debian-12-x86_32-gcc-debug:
|
|
extends: .gcc-x86_32-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-x86_32
|
|
|
|
debian-13-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
|
|
debian-13-x86_64-clang-randconfig:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
RANDCONFIG: y
|
|
EXTRA_FIXED_RANDCONFIG: |
|
|
CONFIG_COVERAGE=n # Disable coverage otherwise build times out.
|
|
|
|
debian-13-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
|
|
debian-13-x86_64-gcc-randconfig:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: debian:13-x86_64
|
|
RANDCONFIG: y
|
|
|
|
debian-13-x86_32-clang-debug:
|
|
extends: .clang-x86_32-build-debug
|
|
variables:
|
|
CONTAINER: debian:13-x86_32
|
|
|
|
debian-13-x86_32-gcc-debug:
|
|
extends: .gcc-x86_32-build-debug
|
|
variables:
|
|
CONTAINER: debian:13-x86_32
|
|
|
|
fedora-43-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: fedora:43-x86_64
|
|
|
|
fedora-43-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: fedora:43-x86_64
|
|
|
|
ubuntu-18.04-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:18.04-x86_64
|
|
|
|
ubuntu-18.04-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: ubuntu:18.04-x86_64
|
|
|
|
ubuntu-20.04-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:20.04-x86_64
|
|
|
|
ubuntu-22.04-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:22.04-x86_64
|
|
|
|
ubuntu-22.04-x86_64-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: ubuntu:22.04-x86_64
|
|
|
|
ubuntu-22.04-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:22.04-x86_64
|
|
|
|
ubuntu-24.04-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:24.04-x86_64
|
|
|
|
ubuntu-24.04-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:24.04-x86_64
|
|
|
|
ubuntu-26.04-x86_64-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:26.04-x86_64
|
|
|
|
ubuntu-26.04-x86_64-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: ubuntu:26.04-x86_64
|
|
|
|
ubuntu-26.04-x86_64-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: ubuntu:26.04-x86_64
|
|
|
|
ubuntu-26.04-x86_64-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: ubuntu:26.04-x86_64
|
|
|
|
opensuse-leap-16.0-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: opensuse:leap-16.0-x86_64
|
|
|
|
opensuse-leap-16.0-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: opensuse:leap-16.0-x86_64
|
|
|
|
opensuse-leap-16.0-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: opensuse:leap-16.0-x86_64
|
|
|
|
opensuse-leap-16.0-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: opensuse:leap-16.0-x86_64
|
|
|
|
opensuse-tumbleweed-clang:
|
|
extends: .clang-x86_64-build
|
|
variables:
|
|
CONTAINER: opensuse:tumbleweed-x86_64
|
|
allow_failure: true
|
|
|
|
opensuse-tumbleweed-clang-debug:
|
|
extends: .clang-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: opensuse:tumbleweed-x86_64
|
|
allow_failure: true
|
|
|
|
opensuse-tumbleweed-gcc:
|
|
extends: .gcc-x86_64-build
|
|
variables:
|
|
CONTAINER: opensuse:tumbleweed-x86_64
|
|
allow_failure: true
|
|
|
|
opensuse-tumbleweed-gcc-debug:
|
|
extends: .gcc-x86_64-build-debug
|
|
variables:
|
|
CONTAINER: opensuse:tumbleweed-x86_64
|
|
allow_failure: true
|
|
|
|
# PowerPC builds (x86 cross)
|
|
debian-11-ppc64le-gcc:
|
|
extends: .gcc-ppc64le-cross-build
|
|
variables:
|
|
CONTAINER: debian:11-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-11-ppc64le-gcc-debug:
|
|
extends: .gcc-ppc64le-cross-build-debug
|
|
variables:
|
|
CONTAINER: debian:11-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-ppc64le-gcc:
|
|
extends: .gcc-ppc64le-cross-build
|
|
variables:
|
|
CONTAINER: debian:12-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-ppc64le-gcc-debug:
|
|
extends: .gcc-ppc64le-cross-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-13-ppc64le-gcc:
|
|
extends: .gcc-ppc64le-cross-build
|
|
variables:
|
|
CONTAINER: debian:13-ppc64le
|
|
KBUILD_DEFCONFIG: ppc64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
# RISC-V 64 cross-build
|
|
debian-12-riscv64-gcc:
|
|
extends: .gcc-riscv64-cross-build
|
|
variables:
|
|
CONTAINER: debian:12-riscv64
|
|
KBUILD_DEFCONFIG: tiny64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-12-riscv64-gcc-debug:
|
|
extends: .gcc-riscv64-cross-build-debug
|
|
variables:
|
|
CONTAINER: debian:12-riscv64
|
|
KBUILD_DEFCONFIG: tiny64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
debian-13-riscv64-gcc:
|
|
extends: .gcc-riscv64-cross-build
|
|
variables:
|
|
CONTAINER: debian:13-riscv64
|
|
KBUILD_DEFCONFIG: tiny64_defconfig
|
|
HYPERVISOR_ONLY: y
|
|
|
|
.riscv-fixed-randconfig:
|
|
variables: &riscv-fixed-randconfig
|
|
EXTRA_FIXED_RANDCONFIG: |
|
|
CONFIG_BOOT_TIME_CPUPOOLS=n
|
|
CONFIG_COVERAGE=n
|
|
CONFIG_EXPERT=y
|
|
CONFIG_GRANT_TABLE=n
|
|
CONFIG_LIVEPATCH=n
|
|
CONFIG_QEMU_PLATFORM=y
|
|
CONFIG_VM_EVENT=n
|
|
CONFIG_XSM=n
|
|
|
|
debian-13-riscv64-gcc-randconfig:
|
|
extends: .gcc-riscv64-cross-build
|
|
variables:
|
|
CONTAINER: debian:13-riscv64
|
|
KBUILD_DEFCONFIG: tiny64_defconfig
|
|
RANDCONFIG: y
|
|
<<: *riscv-fixed-randconfig
|
|
|
|
# macOS build jobs
|
|
.macos-26:
|
|
<<: *build
|
|
tags:
|
|
- saas-macos-medium-m1
|
|
image: macos-26-xcode-26
|
|
variables:
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
HOSTCC: clang
|
|
HYPERVISOR_ONLY: y
|
|
<<: *gcc
|
|
script:
|
|
- brew install ${CROSS_COMPILE}gcc ${CROSS_COMPILE}binutils
|
|
- alias nproc="sysctl -n hw.ncpu"
|
|
- ./automation/scripts/build 2>&1 | tee build.log
|
|
|
|
macos-26-x86_64:
|
|
extends:
|
|
- .macos-26
|
|
variables:
|
|
XEN_TARGET_ARCH: x86_64
|
|
CROSS_COMPILE: x86_64-elf-
|
|
|
|
macos-26-arm64:
|
|
extends:
|
|
- .macos-26
|
|
variables:
|
|
XEN_TARGET_ARCH: arm64
|
|
CROSS_COMPILE: aarch64-elf-
|