[Skiboot] [PATCH 15/15] travis: Add clang specific build job

Oliver O'Halloran oohall at gmail.com
Fri Jun 12 12:24:52 AEST 2020


Right now clang doesn't support the -ffixed-r<number> compiler options
that we rely on for the skiboot cpu_thread pointer so it can't build
skiboot.

Remove the clang builds from the debian-unstable and ubuntu-latest and
builds in favour of a clang specific job. This allows those jobs to pass
normally and gives us as specific job to monitor to see when support
for those options lands in clang.

Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
Right now even make check fails, but we might as well have it in the
matrix.
---
 .travis.yml                        |  3 +++
 opal-ci/Dockerfile-clang           |  6 ++++++
 opal-ci/Dockerfile-debian-unstable |  2 +-
 opal-ci/Dockerfile-ubuntu-18.04    |  2 +-
 opal-ci/Dockerfile-ubuntu-20.04    |  2 +-
 opal-ci/Dockerfile-ubuntu-latest   |  2 +-
 opal-ci/build-clang.sh             | 10 ++++++++++
 opal-ci/build-ubuntu-latest.sh     |  5 -----
 8 files changed, 23 insertions(+), 9 deletions(-)
 create mode 100644 opal-ci/Dockerfile-clang
 create mode 100755 opal-ci/build-clang.sh

diff --git a/.travis.yml b/.travis.yml
index 860d204d0465..6eaf0a92d7dd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,11 +26,14 @@ jobs:
     - env: RUN_ON_CONTAINER=fedora-rawhide
     - env: RUN_ON_CONTAINER=debian-unstable
     - env: RUN_ON_CONTAINER=ubuntu-latest
+    - env: RUN_ON_CONTAINER=clang
   exclude:
     - os: linux-ppc64le
       env: RUN_ON_CONTAINER=centos7
     - os: linux-ppc64le
       env: RUN_ON_CONTAINER=docs
+    - os: linux-ppc64le
+      env: RUN_ON_CONTAINER=clang
 
 install:
     - docker build --pull -t ${RUN_ON_CONTAINER} -f opal-ci/Dockerfile-${RUN_ON_CONTAINER} .
diff --git a/opal-ci/Dockerfile-clang b/opal-ci/Dockerfile-clang
new file mode 100644
index 000000000000..02a0bf54e6df
--- /dev/null
+++ b/opal-ci/Dockerfile-clang
@@ -0,0 +1,6 @@
+FROM ubuntu:rolling
+ENV DEBIAN_FRONTEND    noninteractive
+RUN apt-get update -qq
+RUN apt-get install -y clang device-tree-compiler
+COPY . /build/
+WORKDIR /build
diff --git a/opal-ci/Dockerfile-debian-unstable b/opal-ci/Dockerfile-debian-unstable
index 04ff179b5e9d..13c157fe7c75 100644
--- a/opal-ci/Dockerfile-debian-unstable
+++ b/opal-ci/Dockerfile-debian-unstable
@@ -5,7 +5,7 @@ RUN apt-get update -qq && apt-get install -y gcc-arm-linux-gnueabi || true
 RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget \
 	    curl xterm device-tree-compiler build-essential gcc python g++ pkg-config \
 	    libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind \
-	    libtcl8.6 clang qemu-system-ppc opal-utils
+	    libtcl8.6 qemu-system-ppc opal-utils
 RUN if [ `arch` = "x86_64" ]; then curl -O http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0-trusty_amd64.deb; dpkg -i systemsim-p9-1.1-0-trusty_amd64.deb; fi
 COPY . /build/
 WORKDIR /build
diff --git a/opal-ci/Dockerfile-ubuntu-18.04 b/opal-ci/Dockerfile-ubuntu-18.04
index 1743df2f507e..3a031c3e9e76 100644
--- a/opal-ci/Dockerfile-ubuntu-18.04
+++ b/opal-ci/Dockerfile-ubuntu-18.04
@@ -2,7 +2,7 @@ FROM ubuntu:18.04
 ENV DEBIAN_FRONTEND    noninteractive
 RUN if [ `arch` != "ppc64le" ]; then apt-get update -qq && apt-get install -y gcc-powerpc64le-linux-gnu; fi
 RUN apt-get update -qq && apt-get install -y gcc-arm-linux-gnueabi || true
-RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 clang qemu-system-ppc
+RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 qemu-system-ppc
 RUN if [ `arch` = "x86_64" ]; then curl -L -O http://public.dhe.ibm.com/software/server/powerfuncsim/p8/packages/v1.0-2/systemsim-p8_1.0-2_amd64.deb; dpkg -i systemsim-p8_1.0-2_amd64.deb; fi
 RUN if [ `arch` = "x86_64" ]; then curl -O http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0-trusty_amd64.deb; dpkg -i systemsim-p9-1.1-0-trusty_amd64.deb; fi
 COPY . /build/
diff --git a/opal-ci/Dockerfile-ubuntu-20.04 b/opal-ci/Dockerfile-ubuntu-20.04
index 2770951667f8..515ec5c9a3f3 100644
--- a/opal-ci/Dockerfile-ubuntu-20.04
+++ b/opal-ci/Dockerfile-ubuntu-20.04
@@ -3,7 +3,7 @@ ENV DEBIAN_FRONTEND    noninteractive
 RUN apt-get update -qq
 RUN if [ `arch` != "ppc64le" ]; then apt-get update -qq && apt-get install -y gcc-powerpc64le-linux-gnu; fi
 RUN apt-get update -qq && apt-get install -y gcc-arm-linux-gnueabi || true
-RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 clang qemu-system-ppc
+RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 qemu-system-ppc
 RUN if [ `arch` = "x86_64" ]; then curl -O http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0-trusty_amd64.deb; dpkg -i systemsim-p9-1.1-0-trusty_amd64.deb; fi
 COPY . /build/
 WORKDIR /build
diff --git a/opal-ci/Dockerfile-ubuntu-latest b/opal-ci/Dockerfile-ubuntu-latest
index ce9cbdda371c..577d7a48af2f 100644
--- a/opal-ci/Dockerfile-ubuntu-latest
+++ b/opal-ci/Dockerfile-ubuntu-latest
@@ -2,7 +2,7 @@ FROM ubuntu:rolling
 ENV DEBIAN_FRONTEND    noninteractive
 RUN apt-get update -qq
 RUN if [ `arch` != "ppc64le" ]; then apt-get update -qq && apt-get install -y gcc-powerpc64le-linux-gnu; fi
-RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 clang qemu-system-ppc
+RUN apt-get update -qq && apt-get install -y gcc ccache expect libssl-dev wget curl xterm device-tree-compiler build-essential gcc python g++ pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev git libstdc++6 valgrind libtcl8.6 qemu-system-ppc
 RUN apt-get update -qq && apt-get install -y gcc-arm-linux-gnueabi || true
 RUN if [ `arch` = "x86_64" ]; then curl -O http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0-trusty_amd64.deb; dpkg -i systemsim-p9-1.1-0-trusty_amd64.deb; fi
 COPY . /build/
diff --git a/opal-ci/build-clang.sh b/opal-ci/build-clang.sh
new file mode 100755
index 000000000000..09377c06d5f5
--- /dev/null
+++ b/opal-ci/build-clang.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -uo pipefail
+set -e
+set -vx
+
+MAKE_J=$(nproc)
+
+make -j${MAKE_J} CC=clang
+make -j${MAKE_J} CC=clang check
diff --git a/opal-ci/build-ubuntu-latest.sh b/opal-ci/build-ubuntu-latest.sh
index 16c33a9f39b7..ea27bba3288a 100755
--- a/opal-ci/build-ubuntu-latest.sh
+++ b/opal-ci/build-ubuntu-latest.sh
@@ -28,8 +28,3 @@ rm -rf builddir
 mkdir builddir
 make SRC=$(pwd) -f ../Makefile -C builddir -j${MAKE_J}
 make clean
-
-echo "Building with clang..."
-make clean
-make -j${MAKE_J} CC=clang
-make -j${MAKE_J} CC=clang check
-- 
2.26.2



More information about the Skiboot mailing list