about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-05-19 19:22:11 +0200
committervan Hauser <vh@thc.org>2020-05-19 19:22:11 +0200
commitae6c30a71113fbebe3aca7fcdf6e007ae680c34b (patch)
tree07962d121a043207a5b17ee3818a4e527c972184
parentc7b1ed23953700b17ecf322c79148e9a40cc9f18 (diff)
downloadafl++-ae6c30a71113fbebe3aca7fcdf6e007ae680c34b.tar.gz
upgrade Dockerfile to Ubunutu 20.04 with llvm 11 and gcc 10 for afl-clang-lto
-rw-r--r--Dockerfile73
-rw-r--r--docs/Changelog.md8
2 files changed, 52 insertions, 29 deletions
diff --git a/Dockerfile b/Dockerfile
index c8bfaf33..b59e91fb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,37 +1,58 @@
-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"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
 RUN apt-get update && 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 \
+    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
 
-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/lib/apt/lists/*
+
+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 && make clean && make distrib && \
-    make install && cd .. && rm -rf AFLplusplus
+RUN cd AFLplusplus && export REAL_CXX=g++ && make distrib && \
+    make install && cd .. && make clean
+
+ENV AFL_SKIP_CPUFREQ=1
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 4f9c727a..189eca69 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -14,13 +14,15 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
      - -S slaves now only sync from the master to increase performance,
        the -M master stilly syncs from everyone. Added checks that exactly
        one master is present
+  - llvm_mode:
+    - lowered minimum required llvm version to 3.4 (except LLVMInsTrim,
+      which needs 3.8.0)
   - fixed afl-gcc/afl-as that could break on fast systems reusing pids in
     the same second
   - added lots of dictionaries from oss-fuzz, go-fuzz and Jakub Wilk
   - added former post_library examples to examples/custom_mutators/
-  - llvm_mode:
-    - lowered minimum required llvm version to 3.4 (except LLVMInsTrim,
-      which needs 3.8.0)
+  - Dockerfile upgraded to Ubuntu 20.04 Focal and installing llvm 11 and gcc 10
+    so afl-clang-lto can be build
 
 
 ### Version ++2.65c (release):