aboutsummaryrefslogtreecommitdiffstats
path: root/tools/docker/syzbot/Dockerfile
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2023-01-06 15:59:54 -0800
committerAleksandr Nogikh <wp32pw@gmail.com>2023-01-19 12:02:04 +0100
commit1b826a2fe2446ed915700676b74498c15b35c44d (patch)
tree36c4155ceb3ab36a3b7a2bf5ce03a3a8ae8cee41 /tools/docker/syzbot/Dockerfile
parent7374c4e509b18f2c3fbcd98d7228c4f940a6d00b (diff)
tools/docker: adjust the syzbot dockerfile for arm64
Signed-off-by: Andrei Vagin <avagin@google.com>
Diffstat (limited to 'tools/docker/syzbot/Dockerfile')
-rw-r--r--tools/docker/syzbot/Dockerfile24
1 files changed, 12 insertions, 12 deletions
diff --git a/tools/docker/syzbot/Dockerfile b/tools/docker/syzbot/Dockerfile
index a553c738e..af1f19772 100644
--- a/tools/docker/syzbot/Dockerfile
+++ b/tools/docker/syzbot/Dockerfile
@@ -19,18 +19,20 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
zlib1g-dev libelf-dev libncurses-dev libmpc-dev libssl-dev \
# This is required to run alien arch binaries in pkg/cover tests:
qemu-user \
- # These are required to run foreign arch kernels:
- qemu-utils qemu-system-misc qemu-system-x86 qemu-system-arm qemu-system-aarch64 \
- qemu-system-s390x qemu-system-mips qemu-system-ppc \
- # Cross-compilation:
- g++-arm-linux-gnueabi g++-aarch64-linux-gnu g++-powerpc64le-linux-gnu \
- g++-mips64el-linux-gnuabi64 g++-s390x-linux-gnu g++-riscv64-linux-gnu \
- libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-10-dev lib32stdc++-10-dev \
apt-transport-https curl gnupg python-is-python3 \
# Needed for building Cuttlefish images.
rsync libarchive-tools
+RUN test "$(uname -m)" != x86_64 && exit 0 || \
+ DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
+ libc6-dev-i386 libc6-dev-i386-amd64-cross lib32gcc-10-dev lib32stdc++-10-dev \
+ # These are required to run foreign arch kernels:
+ qemu-utils qemu-system-misc qemu-system-x86 qemu-system-arm qemu-system-aarch64 \
+ qemu-system-s390x qemu-system-mips qemu-system-ppc \
+ # Cross-compilation:
+ g++-arm-linux-gnueabi g++-aarch64-linux-gnu g++-powerpc64le-linux-gnu \
+ g++-mips64el-linux-gnuabi64 g++-s390x-linux-gnu g++-riscv64-linux-gnu
-RUN curl https://dl.google.com/go/go1.17.linux-amd64.tar.gz | tar -C /usr/local -xz
+RUN curl https://dl.google.com/go/go1.17.linux-$(uname -m | sed 's/aarch64/arm64/;s/x86_64/amd64/').tar.gz | tar -C /usr/local -xz
ENV PATH /usr/local/go/bin:$PATH
# The default clang-11 is too old, install the latest one.
@@ -57,10 +59,8 @@ RUN ln -s /usr/local/clang-${CLANG_KMSAN_VER} /usr/local/clang-kmsan
RUN mkdir -p /usr/grte/v5/bin && ln -s /usr/bin/python3 /usr/grte/v5/bin/python2.7
# Install bazel
-RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | \
- sudo tee /etc/apt/sources.list.d/bazel.list && \
- curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
-RUN apt-get update --allow-releaseinfo-change && DEBIAN_FRONTEND=noninteractive apt-get install -y -q bazel
+# Download the official bazel binary. The APT repository isn't used because there is not packages for arm64.
+RUN sh -c 'curl -o /usr/local/bin/bazel https://releases.bazel.build/5.3.2/release/bazel-5.3.2-linux-$(uname -m | sed s/aarch64/arm64/) && chmod ugo+x /usr/local/bin/bazel'
# pkg/osutil uses syzkaller user for sandboxing.
RUN useradd --create-home syzkaller