aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-10-27 07:56:36 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-10-27 13:29:00 +0100
commit96e03c1c31a7f2e7f80b2d8b9f3df117df5030d1 (patch)
tree2dafb140523b1c4ceeb4f9f315ee0334b4cf876d
parent353b1a5cf9686f6fc17c4d35086ae6e004879a53 (diff)
.github/workflows: switch fuzzit to syz-old-env
Use syz-old-env because it contains Go 1.14. syz-env contains Go 1.15 and go-fuzz is broken with Go 1.15: https://github.com/dvyukov/go-fuzz/issues/294
-rw-r--r--.github/workflows/ci.yml7
-rw-r--r--tools/docker/old-env/Dockerfile16
2 files changed, 17 insertions, 6 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d1cdda31b..e6da2454b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -115,9 +115,12 @@ jobs:
key: cache
- name: regression
if: ${{ github.event_name == 'pull_request' }}
- run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env tools/fuzzit.sh local-regression
+ # We use syz-old-env because it contains Go 1.14.
+ # syz-env contains Go 1.15 and go-fuzz is broken with Go 1.15:
+ # https://github.com/dvyukov/go-fuzz/issues/294
+ run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-old-env tools/fuzzit.sh local-regression
- name: fuzzing
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
env:
FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}
- run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env tools/fuzzit.sh fuzzing
+ run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-old-env tools/fuzzit.sh fuzzing
diff --git a/tools/docker/old-env/Dockerfile b/tools/docker/old-env/Dockerfile
index 08c3f215e..2089b3038 100644
--- a/tools/docker/old-env/Dockerfile
+++ b/tools/docker/old-env/Dockerfile
@@ -7,10 +7,10 @@ FROM ubuntu:16.04
LABEL homepage="https://github.com/google/syzkaller"
-RUN dpkg --add-architecture i386 && \
- apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends \
- sudo make nano git curl ca-certificates g++ \
+RUN dpkg --add-architecture i386 && apt-get update
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends \
+ sudo make nano git curl ca-certificates gnupg \
+ apt-transport-https software-properties-common g++ \
g++-arm-linux-gnueabi g++-aarch64-linux-gnu g++-powerpc64le-linux-gnu \
g++-mips64el-linux-gnuabi64 g++-s390x-linux-gnu \
linux-libc-dev:i386 lib32gcc-5-dev lib32stdc++-5-dev \
@@ -23,6 +23,14 @@ RUN curl https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz | tar -C /usr/loca
ENV PATH /usr/local/go/bin:/gopath/bin:$PATH
ENV GOPATH /gopath
+# Install clang-10 from llvm.org.
+# The distro-provided clang is too old for Go fuzzing.
+RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
+RUN add-apt-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main"
+RUN apt-get update
+RUN apt-get install -y -q --no-install-recommends clang-10
+RUN ln -s /usr/bin/clang-10 /usr/bin/clang
+
# Pre-create dirs for syz-env.
# This is necessary to make docker work with the current user,
# otherwise --volume will create these dirs under root and then