@@ -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} .
new file mode 100644
@@ -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
@@ -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
@@ -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/
@@ -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
@@ -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/
new file mode 100755
@@ -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
@@ -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
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@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