about summary refs log tree commit diff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile81
1 files changed, 53 insertions, 28 deletions
diff --git a/Dockerfile b/Dockerfile
index c8bfaf33..905e8265 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,37 +1,62 @@
-FROM ubuntu
-MAINTAINER David Carlier <devnexen@gmail.com>
+#
+# This Dockerfile for AFLplusplus uses Ubuntu 20.04 focal and
+# installs LLVM 11 from llvm.org for afl-clang-lto support :-)
+# It also installs gcc/g++ 10 from the Ubuntu development platform
+# has focal has gcc-10 but not g++-10 ...
+#
+
+FROM ubuntu:20.04
+MAINTAINER afl++ team <afl@aflplus.plus>
 LABEL "about"="AFLplusplus docker image"
-RUN apt-get update && apt-get -y install \
-    --no-install-suggests --no-install-recommends \
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && apt-get upgrade -y && \
+    apt-get -y install --no-install-suggests --no-install-recommends \
     automake \
-    bison \
+    bison flex \
     build-essential \
-    clang \
-    clang-9 \
-    flex \
     git \
-    python3 \
-    python3-dev \
-    python3-setuptools \
-    python-is-python3 \
-    gcc-9 \
-    gcc-9-plugin-dev \
-    gcc-9-multilib \
-    libc++-9-dev \
-    libtool \
-    libtool-bin \
+    python3 python3-dev python3-setuptools python-is-python3 \
+    libtool libtool-bin \
     libglib2.0-dev \
-    llvm-9-dev \
-    wget \
-    ca-certificates \
-    libpixman-1-dev \
-    && rm -rf /var/lib/apt/lists/*
+    wget vim jupp nano \
+    apt-utils apt-transport-https ca-certificates gnupg dialog \
+    libpixman-1-dev
+
+RUN echo deb http://apt.llvm.org/focal/ llvm-toolchain-focal main >> /etc/apt/sources.list && \
+    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - 
+  
+RUN echo deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal main >> /etc/apt/sources.list && \
+    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1E9377A2BA9EF27F
+    
+RUN apt-get update && apt-get upgrade -y
+
+RUN apt-get install -y gcc-10 g++-10 gcc-10-plugin-dev gcc-10-multilib \
+    libc++-10-dev gdb lcov
 
-ARG CC=gcc-9
-ARG CXX=g++-9
-ARG LLVM_CONFIG=llvm-config-9
+RUN apt-get install -y clang-11 clang-tools-11 libc++1-11 libc++-11-dev \
+    libc++abi1-11 libc++abi-11-dev libclang1-11 libclang-11-dev \
+    libclang-common-11-dev libclang-cpp11 libclang-cpp11-dev liblld-11 \
+    liblld-11-dev liblldb-11 liblldb-11-dev libllvm11 libomp-11-dev \
+    libomp5-11 lld-11 lldb-11 llvm-11 llvm-11-dev llvm-11-runtime llvm-11-tools
+
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 0
+RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 0
+
+RUN rm -rf /var/cache/apt/archives/*
+
+ARG CC=gcc-10
+ARG CXX=g++-10
+ARG LLVM_CONFIG=llvm-config-11
 
 RUN git clone https://github.com/AFLplusplus/AFLplusplus
+RUN cd AFLplusplus && export REAL_CXX=g++-10 && make distrib && \
+    make install && make clean
+
+RUN git clone https://github.com/vanhauser-thc/afl-cov afl-cov
+RUN cd afl-cov && make install
+
+RUN echo 'alias joe="jupp --wordwrap"' >> ~/.bashrc
 
-RUN cd AFLplusplus && make clean && make distrib && \
-    make install && cd .. && rm -rf AFLplusplus
+ENV AFL_SKIP_CPUFREQ=1