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

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



On Fri, Jun 07, 2019 at 01:17:51PM +0200, Roger Pau Monné wrote:
> Gentle ping.
> 
> On Fri, May 31, 2019 at 10:17:13AM +0200, 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@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

Include the following here:
 && apt-get autoremove -y && apt-get-clean && rm -rf /var/lib/apt/lists* /tmp/* 
/var/tmp/*

 This helps minimize the size of the containers between steps. Each top
 level command is an intermediary container.

> > +
> > +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

Include the following here:
 && apt-get autoremove -y && apt-get-clean && rm -rf /var/lib/apt/lists* /tmp/* 
/var/tmp/*

 This helps minimize the size of the containers between steps. Each top
 level command is an intermediary container.

> > +
> > +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)
> > 

Overall this a good change. With the two small tweaks and the containers
pushed I'd give it my:

Acked-by: Doug Goldstein <cardoe@xxxxxxxxxx>

_______________________________________________
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®.