[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2] automation: add clang and lld 8 tests to gitlab


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Date: Fri, 31 May 2019 10:17:13 +0200
  • Authentication-results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@xxxxxxxxxx; spf=Pass smtp.mailfrom=roger.pau@xxxxxxxxxx; spf=None smtp.helo=postmaster@xxxxxxxxxxxxxxxxxxxxxxxxxx
  • Cc: Doug Goldstein <cardoe@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Delivery-date: Fri, 31 May 2019 08:17:33 +0000
  • Ironport-sdr: ortW6Jq7YIZQwC3mArvOUVcHH1o3kSpPkjfMMKbYbhWW/CCc6ax6yDMMPGsv1m5b+uispgG6FQ D8qYLNn4fw6tbG8r6NXMLemLnszYg91sAAw5bVu5SnrXjpSnM0GCTXyxmJsJGCg4a/nqDEoQIH C5OTUx4imUO5zFkGsnws2e1HjJXmBNKb2ofI3A92KKMh19KP54XN0yMmf41CJzDTz361PE/v5k bFcQqqg/IUWkfh4mZP3BrC4UeTz4Q0Rc3277Rr5cC7M43qnOD8rjizYPZU2EllCrGh60vojvej H4s=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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é <roger.pau@xxxxxxxxxx>
---
I've tested this manually by doing:

# make -C automation/build debian/stretch
# CONTAINER_NO_PULL=1 ./automation/scripts/containerize << END
./configure --with-system-seabios=/usr/share/seabios/bios.bin \
            --with-system-ipxe=/usr/lib/ipxe/ipxe.pxe --disable-stubdom
make -j8 dist CC=clang-8 CXX=clang-8 LD=ld.lld-8 clang=y
END
---
Cc: Doug Goldstein <cardoe@xxxxxxxxxx>
Cc: Wei Liu <wl@xxxxxxx>
---
Changes since v1:
 - Use ld.lld-8 instead of lld-8, as that's the recommended way
   reported by lld-8.
---
 automation/build/debian/stretch-llvm.list   |  3 ++
 automation/build/debian/stretch.dockerfile  | 11 +++++-
 automation/build/debian/unstable-llvm.list  |  3 ++
 automation/build/debian/unstable.dockerfile | 11 +++++-
 automation/gitlab-ci/build.yaml             | 37 +++++++++++++++++++++
 automation/scripts/build                    |  2 +-
 6 files changed, 64 insertions(+), 3 deletions(-)
 create mode 100644 automation/build/debian/stretch-llvm.list
 create mode 100644 automation/build/debian/unstable-llvm.list

diff --git a/automation/build/debian/stretch-llvm.list 
b/automation/build/debian/stretch-llvm.list
new file mode 100644
index 0000000000..09fe843fb2
--- /dev/null
+++ b/automation/build/debian/stretch-llvm.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..189dff3275 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -5,6 +5,14 @@ LABEL maintainer.name="The Xen Project" \
 ENV DEBIAN_FRONTEND=noninteractive
 ENV USER root
 
+RUN apt-get update && \
+    apt-get --quiet --yes install \
+    wget \
+    gnupg
+
+RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|apt-key add -
+COPY stretch-llvm.list /etc/apt/sources.list.d/
+
 RUN mkdir /build
 WORKDIR /build
 
@@ -39,9 +47,10 @@ RUN apt-get update && \
         transfig \
         pandoc \
         checkpolicy \
-        wget \
         git \
         nasm \
+        clang-8 \
+        lld-8 \
         && \
         apt-get autoremove -y && \
         apt-get clean && \
diff --git a/automation/build/debian/unstable-llvm.list 
b/automation/build/debian/unstable-llvm.list
new file mode 100644
index 0000000000..dc119fa0b4
--- /dev/null
+++ b/automation/build/debian/unstable-llvm.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..48d5f7a863 100644
--- a/automation/build/debian/unstable.dockerfile
+++ b/automation/build/debian/unstable.dockerfile
@@ -5,6 +5,14 @@ LABEL maintainer.name="The Xen Project" \
 ENV DEBIAN_FRONTEND=noninteractive
 ENV USER root
 
+RUN apt-get update && \
+    apt-get --quiet --yes install \
+    wget \
+    gnupg
+
+RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|apt-key add -
+COPY unstable-llvm.list /etc/apt/sources.list.d/
+
 RUN mkdir /build
 WORKDIR /build
 
@@ -39,9 +47,10 @@ RUN apt-get update && \
         transfig \
         pandoc \
         checkpolicy \
-        wget \
         git \
         nasm \
+        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.20.1 (Apple Git-117)


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.