commit:     e9da09d6482d95ea8353fe243d2fc8d69535a118
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  1 18:18:23 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jun  1 18:33:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9da09d6

app-forensics/aflplusplus: add 3.13c

Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-forensics/aflplusplus/Manifest                 |  1 +
 app-forensics/aflplusplus/aflplusplus-3.13c.ebuild | 97 +++++++++++++++++++++
 .../files/aflplusplus-3.13c-CFLAGS.patch           | 99 ++++++++++++++++++++++
 3 files changed, 197 insertions(+)

diff --git a/app-forensics/aflplusplus/Manifest 
b/app-forensics/aflplusplus/Manifest
index 81c2a1618a1..981ff63c53a 100644
--- a/app-forensics/aflplusplus/Manifest
+++ b/app-forensics/aflplusplus/Manifest
@@ -1 +1,2 @@
 DIST aflplusplus-3.12c.tar.gz 2065569 BLAKE2B 
ff7a87eb02f7731b5ce8e1a3016239c6fd1cd1bfeb0b9c0fb69f72bdbf079e7700cdb32abe64f64853e5ff82f1c0ecd86d2cadb892e7c40be6bb2a7b089f7387
 SHA512 
a814d61298b60d99388289e742dbedf2ed1ab454a5e1ea20d48bb2f18b36c01553ab1f097a06f733439d67e804d48cb823a82ff249c404fb0b83a281564f3040
+DIST aflplusplus-3.13c.tar.gz 2128787 BLAKE2B 
40fa65654468dc1de7f6e1b63d2266915a40d145b7cb91b8b95488bc975804f70887bc1c3718fbd12c76872a0126f3bcc36134eb55ef729060b5efcf93dad424
 SHA512 
916a714deaf67969c9ac6e90bd2d8015a1e5188c8a8122f4d5d64ce4b841822de65458e469a47d4244358fab5e31ef4e52b8ec1432dcbd60d29aedf15e4c36fe

diff --git a/app-forensics/aflplusplus/aflplusplus-3.13c.ebuild 
b/app-forensics/aflplusplus/aflplusplus-3.13c.ebuild
new file mode 100644
index 00000000000..c665a60d41b
--- /dev/null
+++ b/app-forensics/aflplusplus/aflplusplus-3.13c.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8,9} )
+LLVM_MAX_SLOT=12
+inherit toolchain-funcs llvm optfeature python-single-r1
+
+DESCRIPTION="A fork of AFL, the popular compile-time instrumentation fuzzer"
+HOMEPAGE="https://github.com/AFLplusplus/AFLplusplus";
+SRC_URI="https://github.com/AFLplusplus/AFLplusplus/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/AFLplusplus-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# Tests involve heavy use of LD_PRELOAD in some cases
+# This isn't compatible with sandbox
+RESTRICT="test"
+
+# It turns out we need Clang too
+RDEPEND="
+       ${PYTHON_DEPS}
+       >=sys-devel/llvm-10:=
+       || (
+               sys-devel/clang:10
+               sys-devel/clang:11
+               sys-devel/clang:12
+       )
+"
+DEPEND="
+       ${RDEPEND}
+       test? ( dev-util/cmocka )
+"
+
+QA_PREBUILT="/usr/share/afl/testcases/others/elf/small_exec.elf"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-3.0c-LDFLAGS.patch"
+       "${FILESDIR}/${PN}-3.13c-CFLAGS.patch"
+)
+
+llvm_check_deps() {
+       has_version -b "sys-devel/clang:${LLVM_SLOT}" && \
+               has_version -b "sys-devel/llvm:${LLVM_SLOT}"
+}
+
+pkg_setup() {
+       llvm_pkg_setup
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       sed -i -e 's/-O3 -fno-unroll-loops//' GNUmakefile || die
+}
+
+src_compile() {
+       emake \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               CFLAGS_FLTO="" \
+               PREFIX="${EPREFIX}/usr" \
+               HELPER_PATH="${EPREFIX}/usr/$(get_libdir)/afl" \
+               DOC_PATH="${EPREFIX}/usr/share/doc/${PF}" \
+               MAN_PATH="${EPREFIX}/usr/share/man/man8"
+}
+
+src_test() {
+       emake \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)"
+}
+
+src_install() {
+       emake \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               DESTDIR="${D}" \
+               PREFIX="${EPREFIX}/usr" \
+               HELPER_PATH="${EPREFIX}/usr/$(get_libdir)/afl" \
+               DOC_PATH="${EPREFIX}/usr/share/doc/${PF}" \
+               MAN_PATH="${EPREFIX}/usr/share/man/man8" \
+               install
+}
+
+pkg_postinst() {
+       # TODO: Any others?
+       optfeature "fuzzing with AFL_USE_ASAN" 
sys-libs/compiler-rt-sanitizers[asan]
+       optfeature "fuzzing with AFL_USE_MSAN" 
sys-libs/compiler-rt-sanitizers[msan]
+}

diff --git a/app-forensics/aflplusplus/files/aflplusplus-3.13c-CFLAGS.patch 
b/app-forensics/aflplusplus/files/aflplusplus-3.13c-CFLAGS.patch
new file mode 100644
index 00000000000..a3f54b437b8
--- /dev/null
+++ b/app-forensics/aflplusplus/files/aflplusplus-3.13c-CFLAGS.patch
@@ -0,0 +1,99 @@
+--- a/GNUmakefile.gcc_plugin
++++ b/GNUmakefile.gcc_plugin
+@@ -28,14 +28,14 @@ MAN_PATH    ?= $(PREFIX)/share/man/man8
+ 
+ VERSION     = $(shell grep '^$(HASH)define VERSION ' ./config.h | cut -d '"' 
-f2)
+ 
+-CFLAGS          ?= -O3 -g -funroll-loops -D_FORTIFY_SOURCE=2
++CFLAGS          ?= -D_FORTIFY_SOURCE=2
+ CFLAGS_SAFE     := -Wall -Iinclude -Wno-pointer-sign \
+                    -DAFL_PATH=\"$(HELPER_PATH)\" -DBIN_PATH=\"$(BIN_PATH)\" \
+                    -DGCC_VERSION=\"$(GCCVER)\" -DGCC_BINDIR=\"$(GCCBINDIR)\" \
+                    -Wno-unused-function
+ override CFLAGS += $(CFLAGS_SAFE)
+ 
+-CXXFLAGS    ?= -O3 -g -funroll-loops -D_FORTIFY_SOURCE=2
++CXXFLAGS    ?= -D_FORTIFY_SOURCE=2
+ CXXEFLAGS   := $(CXXFLAGS) -Wall -std=c++11
+ 
+ CC          ?= gcc
+--- a/GNUmakefile.llvm
++++ b/GNUmakefile.llvm
+@@ -237,7 +237,7 @@ else
+         AFL_CLANG_DEBUG_PREFIX =
+ endif
+ 
+-CFLAGS          ?= -O3 -funroll-loops -fPIC -D_FORTIFY_SOURCE=2
++CFLAGS          ?= -fPIC -D_FORTIFY_SOURCE=2
+ CFLAGS_SAFE     := -Wall -g -Wno-cast-qual -Wno-variadic-macros 
-Wno-pointer-sign -I ./include/ -I ./instrumentation/ \
+                    -DAFL_PATH=\"$(HELPER_PATH)\" -DBIN_PATH=\"$(BIN_PATH)\" \
+                    -DLLVM_BINDIR=\"$(LLVM_BINDIR)\" -DVERSION=\"$(VERSION)\" \
+@@ -254,7 +254,7 @@ ifdef AFL_TRACE_PC
+   $(info Compile option AFL_TRACE_PC is deprecated, just set 
AFL_LLVM_INSTRUMENT=PCGUARD to activate when compiling targets )
+ endif
+ 
+-CXXFLAGS          ?= -O3 -funroll-loops -fPIC -D_FORTIFY_SOURCE=2
++CXXFLAGS          ?= -fPIC -D_FORTIFY_SOURCE=2
+ override CXXFLAGS += -Wall -g -I ./include/ \
+                      -DVERSION=\"$(VERSION)\" -Wno-variadic-macros \
+                      -DLLVM_MINOR=$(LLVM_MINOR) -DLLVM_MAJOR=$(LLVM_MAJOR)
+@@ -434,20 +434,20 @@ afl-llvm-dict2file.so:   
instrumentation/afl-llvm-dict2file.so.cc instrumentation/
+ 
+ .PHONY: document
+ document:
+-      $(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -O3 -Wno-unused-result -fPIC -c 
instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt.o
+-      @$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -O3 -Wno-unused-result -m32 -fPIC -c 
instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt-32.o 2>/dev/null; if [ 
"$$?" = "0" ]; then echo "success!"; else echo "failed (that's fine)"; fi
+-      @$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -O3 -Wno-unused-result -m64 -fPIC -c 
instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt-64.o 2>/dev/null; if [ 
"$$?" = "0" ]; then echo "success!"; else echo "failed (that's fine)"; fi
++      $(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -Wno-unused-result -fPIC -c instrumentation/afl-compiler-rt.o.c -o 
./afl-compiler-rt.o
++      @$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -Wno-unused-result -m32 -fPIC -c 
instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt-32.o 2>/dev/null; if [ 
"$$?" = "0" ]; then echo "success!"; else echo "failed (that's fine)"; fi
++      @$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) 
$(CLANG_CFL) -Wno-unused-result -m64 -fPIC -c 
instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt-64.o 2>/dev/null; if [ 
"$$?" = "0" ]; then echo "success!"; else echo "failed (that's fine)"; fi
+ 
+ ./afl-compiler-rt.o: instrumentation/afl-compiler-rt.o.c
+-      $(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -O3 -Wno-unused-result 
-fPIC -c $< -o $@
++      $(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -Wno-unused-result -fPIC 
-c $< -o $@
+ 
+ ./afl-compiler-rt-32.o: instrumentation/afl-compiler-rt.o.c
+       @printf "[*] Building 32-bit variant of the runtime (-m32)... "
+-      @$(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -O3 -Wno-unused-result 
-m32 -fPIC -c $< -o $@ 2>/dev/null; if [ "$$?" = "0" ]; then echo "success!"; 
ln -sf afl-compiler-rt-32.o afl-llvm-rt-32.o; else echo "failed (that's fine)"; 
fi
++      @$(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -Wno-unused-result -m32 
-fPIC -c $< -o $@ 2>/dev/null; if [ "$$?" = "0" ]; then echo "success!"; ln -sf 
afl-compiler-rt-32.o afl-llvm-rt-32.o; else echo "failed (that's fine)"; fi
+ 
+ ./afl-compiler-rt-64.o: instrumentation/afl-compiler-rt.o.c
+       @printf "[*] Building 64-bit variant of the runtime (-m64)... "
+-      @$(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -O3 -Wno-unused-result 
-m64 -fPIC -c $< -o $@ 2>/dev/null; if [ "$$?" = "0" ]; then echo "success!"; 
ln -sf afl-compiler-rt-64.o afl-llvm-rt-64.o; else echo "failed (that's fine)"; 
fi
++      @$(CC) $(CLANG_CFL) $(CFLAGS_SAFE) $(CPPFLAGS) -Wno-unused-result -m64 
-fPIC -c $< -o $@ 2>/dev/null; if [ "$$?" = "0" ]; then echo "success!"; ln -sf 
afl-compiler-rt-64.o afl-llvm-rt-64.o; else echo "failed (that's fine)"; fi
+ 
+ .PHONY: test_build
+ test_build: $(PROGS)
+--- a/unicorn_mode/samples/c/Makefile
++++ b/unicorn_mode/samples/c/Makefile
+@@ -35,7 +35,7 @@ clean:
+       rm -rf *.o harness harness-debug
+ 
+ harness.o: harness.c ../../unicornafl/include/unicorn/*.h
+-      ${MYCC} ${CFLAGS} -O3 -c harness.c
++      ${MYCC} ${CFLAGS} -c harness.c
+ 
+ harness-debug.o: harness.c ../../unicornafl/include/unicorn/*.h
+       ${MYCC} ${CFLAGS} -g -c harness.c -o $@
+--- a/unicorn_mode/samples/persistent/Makefile
++++ b/unicorn_mode/samples/persistent/Makefile
+@@ -35,7 +35,7 @@ clean:
+       rm -rf *.o harness harness-debug
+ 
+ harness.o: harness.c ../../unicornafl/include/unicorn/*.h
+-      ${MYCC} ${CFLAGS} -O3 -c harness.c
++      ${MYCC} ${CFLAGS} -c harness.c
+ 
+ harness-debug.o: harness.c ../../unicornafl/include/unicorn/*.h
+       ${MYCC} ${CFLAGS} -DAFL_DEBUG=1 -g -c harness.c -o $@
+--- a/utils/afl_untracer/Makefile
++++ b/utils/afl_untracer/Makefile
+@@ -1,7 +1,7 @@
+ ifdef DEBUG
+   OPT=-O0
+ else
+-  OPT=-O3
++  OPT?=-O2
+ endif
+ 
+ all:  afl-untracer libtestinstr.so

Reply via email to