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

Roger Pau Monne posted 1 patch 4 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20190610133623.89565-1-roger.pau@citrix.com
There is a newer version of this series
automation/build/debian/stretch-llvm.list   |  3 ++
automation/build/debian/stretch.dockerfile  | 13 ++++++++
automation/build/debian/unstable-llvm.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.list
create mode 100644 automation/build/debian/unstable-llvm.list
[Xen-devel] [PATCH v3] automation: add clang and lld 8 tests to gitlab
Posted by Roger Pau Monne 4 years, 10 months ago
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>
---
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@cardoe.com>
Cc: Wei Liu <wl@xen.org>
---
Changes since v2:
 - Change the order of actions in the dockerfile
 - Cleanup after installing llvm tools.

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  | 13 ++++++++
 automation/build/debian/unstable-llvm.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.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..55c6f065ad 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.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.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..f9ab9e8200 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.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.20.1 (Apple Git-117)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v3] automation: add clang and lld 8 tests to gitlab
Posted by Andrew Cooper 4 years, 10 months ago
On 10/06/2019 14:36, Roger Pau Monne wrote:
> 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>
> ---
> 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

DYM CXX=clang++-8 ?

> END
> ---
> Cc: Doug Goldstein <cardoe@cardoe.com>
> Cc: Wei Liu <wl@xen.org>
> ---
> Changes since v2:
>  - Change the order of actions in the dockerfile
>  - Cleanup after installing llvm tools.
>
> 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  | 13 ++++++++
>  automation/build/debian/unstable-llvm.list  |  3 ++
>  automation/build/debian/unstable.dockerfile | 13 ++++++++
>  automation/gitlab-ci/build.yaml             | 37 +++++++++++++++++++++9
>  automation/scripts/build                    |  2 +-
>  6 files changed, 70 insertions(+), 1 deletion(-)
>  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

Thinking forwards to when we want LLVM 9, these two files should have a
-8 suffix for now.  Can be fixed on commit.

> @@ -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..55c6f065ad 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 -

This would be slightly easer to read with spaces around the pipe. 
Again, can be fixed on commit.

~Andrew

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