From 96e03c1c31a7f2e7f80b2d8b9f3df117df5030d1 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 27 Oct 2020 07:56:36 +0100 Subject: .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 --- .github/workflows/ci.yml | 7 +++++-- tools/docker/old-env/Dockerfile | 16 ++++++++++++---- 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 -- cgit mrf-deployment