gitlab-ci.yml: Add jobs to test CFI flags
QEMU has had options to enable control-flow integrity features for a few months now. Add two sets of build/check/acceptance jobs to ensure the binary produced is working fine. The three sets allow testing of x86_64 binaries for x86_64, s390x, ppc64 and aarch64 targets [AJB: tweak job names to avoid brands] Signed-off-by: Daniele Buono <dbuono@linux.vnet.ibm.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210304030948.9367-3-dbuono@linux.vnet.ibm.com> Message-Id: <20210305092328.31792-9-alex.bennee@linaro.org>
This commit is contained in:
parent
e6d27a9c0d
commit
1bb12e172a
119
.gitlab-ci.yml
119
.gitlab-ci.yml
@ -483,6 +483,125 @@ clang-user:
|
|||||||
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
||||||
MAKE_CHECK_ARGS: check-unit check-tcg
|
MAKE_CHECK_ARGS: check-unit check-tcg
|
||||||
|
|
||||||
|
# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
|
||||||
|
# On gitlab runners, default value sometimes end up calling 2 lds concurrently and
|
||||||
|
# triggers an Out-Of-Memory error
|
||||||
|
#
|
||||||
|
# Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together
|
||||||
|
# with QEMU and linked as a static library to avoid false positives in CFI checks.
|
||||||
|
# This can be accomplished by using -enable-slirp=git, which avoids the use of
|
||||||
|
# a system-wide version of the library
|
||||||
|
#
|
||||||
|
# Split in three sets of build/check/acceptance to limit the execution time of each
|
||||||
|
# job
|
||||||
|
build-cfi-aarch64:
|
||||||
|
<<: *native_build_job_definition
|
||||||
|
needs:
|
||||||
|
- job: amd64-fedora-container
|
||||||
|
variables:
|
||||||
|
LD_JOBS: 1
|
||||||
|
AR: llvm-ar
|
||||||
|
IMAGE: fedora
|
||||||
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
||||||
|
--enable-safe-stack --enable-slirp=git
|
||||||
|
TARGETS: aarch64-softmmu
|
||||||
|
MAKE_CHECK_ARGS: check-build
|
||||||
|
artifacts:
|
||||||
|
expire_in: 2 days
|
||||||
|
paths:
|
||||||
|
- build
|
||||||
|
|
||||||
|
check-cfi-aarch64:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-aarch64
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
acceptance-cfi-aarch64:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-aarch64
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check-acceptance
|
||||||
|
<<: *acceptance_definition
|
||||||
|
|
||||||
|
build-cfi-ppc64-s390x:
|
||||||
|
<<: *native_build_job_definition
|
||||||
|
needs:
|
||||||
|
- job: amd64-fedora-container
|
||||||
|
variables:
|
||||||
|
LD_JOBS: 1
|
||||||
|
AR: llvm-ar
|
||||||
|
IMAGE: fedora
|
||||||
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
||||||
|
--enable-safe-stack --enable-slirp=git
|
||||||
|
TARGETS: ppc64-softmmu s390x-softmmu
|
||||||
|
MAKE_CHECK_ARGS: check-build
|
||||||
|
artifacts:
|
||||||
|
expire_in: 2 days
|
||||||
|
paths:
|
||||||
|
- build
|
||||||
|
|
||||||
|
check-cfi-ppc64-s390x:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-ppc64-s390x
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
acceptance-cfi-ppc64-s390x:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-ppc64-s390x
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check-acceptance
|
||||||
|
<<: *acceptance_definition
|
||||||
|
|
||||||
|
build-cfi-x86_64:
|
||||||
|
<<: *native_build_job_definition
|
||||||
|
needs:
|
||||||
|
- job: amd64-fedora-container
|
||||||
|
variables:
|
||||||
|
LD_JOBS: 1
|
||||||
|
AR: llvm-ar
|
||||||
|
IMAGE: fedora
|
||||||
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
||||||
|
--enable-safe-stack --enable-slirp=git
|
||||||
|
TARGETS: x86_64-softmmu
|
||||||
|
MAKE_CHECK_ARGS: check-build
|
||||||
|
artifacts:
|
||||||
|
expire_in: 2 days
|
||||||
|
paths:
|
||||||
|
- build
|
||||||
|
|
||||||
|
check-cfi-x86_64:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-x86_64
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
acceptance-cfi-x86_64:
|
||||||
|
<<: *native_test_job_definition
|
||||||
|
needs:
|
||||||
|
- job: build-cfi-x86_64
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora
|
||||||
|
MAKE_CHECK_ARGS: check-acceptance
|
||||||
|
<<: *acceptance_definition
|
||||||
|
|
||||||
tsan-build:
|
tsan-build:
|
||||||
<<: *native_build_job_definition
|
<<: *native_build_job_definition
|
||||||
variables:
|
variables:
|
||||||
|
Loading…
Reference in New Issue
Block a user