upgrade Dockerfile to Ubunutu 20.04 with llvm 11 and gcc 10 for afl-clang-lto
MODIFY
Dockerfile
Dockerfile
-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
-ARG CC=gcc-9
-ARG CXX=g++-9
-ARG LLVM_CONFIG=llvm-config-9
+RUN apt-get install -y gcc-10 g++-10 gcc-10-plugin-dev gcc-10-multilib \
+ libc++-10-dev gdb
+
+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

MODIFY
docs/Changelog.md
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):

upgrade Dockerfile to Ubunutu 20.04 with llvm 11 and gcc 10 for afl-clang-lto