From 6325f70e77412caa61213a999f840efb00499dbc Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Mon, 10 Jun 2019 18:32:46 +0200 Subject: [PATCH] automation: add clang and lld 8 tests to gitlab MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Using clang and lld 8 requires installing the packages from the official llvm apt repositories, so modify the Debian Docker files for stretch and unstable to add the llvm repo and install clang and lld from it. Also add some jobs to test building Xen with clang 8 and lld. Signed-off-by: Roger Pau Monné Acked-by: Andrew Cooper Acked-by: Doug Goldstein --- automation/build/debian/stretch-llvm-8.list | 3 ++ automation/build/debian/stretch.dockerfile | 13 +++++++ automation/build/debian/unstable-llvm-8.list | 3 ++ automation/build/debian/unstable.dockerfile | 13 +++++++ automation/gitlab-ci/build.yaml | 37 ++++++++++++++++++++ automation/scripts/build | 2 +- 6 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 automation/build/debian/stretch-llvm-8.list create mode 100644 automation/build/debian/unstable-llvm-8.list diff --git a/automation/build/debian/stretch-llvm-8.list b/automation/build/debian/stretch-llvm-8.list new file mode 100644 index 0000000000..09fe843fb2 --- /dev/null +++ b/automation/build/debian/stretch-llvm-8.list @@ -0,0 +1,3 @@ +# Strech LLVM 8 repos +deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main +deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile index daf8c9d384..44e6eee07f 100644 --- a/automation/build/debian/stretch.dockerfile +++ b/automation/build/debian/stretch.dockerfile @@ -42,6 +42,19 @@ RUN apt-get update && \ wget \ git \ nasm \ + gnupg \ + && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* + +RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - +COPY stretch-llvm-8.list /etc/apt/sources.list.d/ + +RUN apt-get update && \ + apt-get --quiet --yes install \ + clang-8 \ + lld-8 \ && \ apt-get autoremove -y && \ apt-get clean && \ diff --git a/automation/build/debian/unstable-llvm-8.list b/automation/build/debian/unstable-llvm-8.list new file mode 100644 index 0000000000..dc119fa0b4 --- /dev/null +++ b/automation/build/debian/unstable-llvm-8.list @@ -0,0 +1,3 @@ +# Unstable LLVM 8 repos +deb http://apt.llvm.org/unstable/ llvm-toolchain-8 main +deb-src http://apt.llvm.org/unstable/ llvm-toolchain-8 main diff --git a/automation/build/debian/unstable.dockerfile b/automation/build/debian/unstable.dockerfile index 7762cf97ab..a1428a3df0 100644 --- a/automation/build/debian/unstable.dockerfile +++ b/automation/build/debian/unstable.dockerfile @@ -42,6 +42,19 @@ RUN apt-get update && \ wget \ git \ nasm \ + gnupg \ + && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* + +RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|apt-key add - +COPY unstable-llvm-8.list /etc/apt/sources.list.d/ + +RUN apt-get update && \ + apt-get --quiet --yes install \ + clang-8 \ + lld-8 \ && \ apt-get autoremove -y && \ apt-get clean && \ diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index dd5722a5bb..17de3b1848 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -26,6 +26,13 @@ CXX: clang++ clang: y +.clang-8-tmpl: + variables: &clang-8 + CC: clang-8 + CXX: clang++-8 + LD: ld.lld-8 + clang: y + .x86-64-build-tmpl: <<: *build variables: @@ -90,6 +97,16 @@ variables: <<: *clang +.clang-8-x86-64-build: + extends: .x86-64-build + variables: + <<: *clang-8 + +.clang-8-x86-64-build-debug: + extends: .x86-64-build-debug + variables: + <<: *clang-8 + .clang-x86-32-build: extends: .x86-32-build variables: @@ -219,6 +236,16 @@ debian-stretch-clang-debug: variables: CONTAINER: debian:stretch +debian-stretch-clang-8: + extends: .clang-8-x86-64-build + variables: + CONTAINER: debian:stretch + +debian-stretch-clang-8-debug: + extends: .clang-8-x86-64-build-debug + variables: + CONTAINER: debian:stretch + debian-stretch-gcc: extends: .gcc-x86-64-build variables: @@ -259,6 +286,16 @@ debian-unstable-clang-debug: variables: CONTAINER: debian:unstable +debian-unstable-clang-8: + extends: .clang-8-x86-64-build + variables: + CONTAINER: debian:unstable + +debian-unstable-clang-8-debug: + extends: .clang-8-x86-64-build-debug + variables: + CONTAINER: debian:unstable + debian-unstable-gcc: extends: .gcc-x86-64-build variables: diff --git a/automation/scripts/build b/automation/scripts/build index 8a57e097a9..83c44e6ce7 100755 --- a/automation/scripts/build +++ b/automation/scripts/build @@ -19,7 +19,7 @@ fi cfgargs=() cfgargs+=("--enable-docs") -if [[ "${CC}" == "clang" ]]; then +if [[ "${CC}" == "clang"* ]]; then # SeaBIOS cannot be built with clang cfgargs+=("--with-system-seabios=/usr/share/seabios/bios.bin") # iPXE cannot be built with clang -- 2.30.2