xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] automation: add clang and lld 8 tests to gitlab
@ 2019-05-30 14:46 Roger Pau Monne
  2019-05-30 14:46 ` [Xen-devel] " Roger Pau Monne
  0 siblings, 1 reply; 2+ messages in thread
From: Roger Pau Monne @ 2019-05-30 14:46 UTC (permalink / raw)
  To: xen-devel; +Cc: Doug Goldstein, Wei Liu, Roger Pau Monne

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@citrix.com>
---
NB: I'm not sure what's the proper way to test this patch. I've
checked that the docker files seem to be fine for creating a docker
image for stretch and unstable, but I'm unsure about how to test the
changes to the gitlab. Should the new images with clang-8 and lld be
pushed to the registry in order to test the gitlab CI changes?
---
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Wei Liu <wl@xen.org>
---
 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..fa27aaef62 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: 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@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [Xen-devel] [PATCH] automation: add clang and lld 8 tests to gitlab
  2019-05-30 14:46 [PATCH] automation: add clang and lld 8 tests to gitlab Roger Pau Monne
@ 2019-05-30 14:46 ` Roger Pau Monne
  0 siblings, 0 replies; 2+ messages in thread
From: Roger Pau Monne @ 2019-05-30 14:46 UTC (permalink / raw)
  To: xen-devel; +Cc: Doug Goldstein, Wei Liu, Roger Pau Monne

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@citrix.com>
---
NB: I'm not sure what's the proper way to test this patch. I've
checked that the docker files seem to be fine for creating a docker
image for stretch and unstable, but I'm unsure about how to test the
changes to the gitlab. Should the new images with clang-8 and lld be
pushed to the registry in order to test the gitlab CI changes?
---
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Wei Liu <wl@xen.org>
---
 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..fa27aaef62 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: 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@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-05-30 14:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-30 14:46 [PATCH] automation: add clang and lld 8 tests to gitlab Roger Pau Monne
2019-05-30 14:46 ` [Xen-devel] " Roger Pau Monne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).