mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
app-forensics/aflplusplus: initial import
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
1
app-forensics/aflplusplus/Manifest
Normal file
1
app-forensics/aflplusplus/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST aflplusplus-3.12c.tar.gz 2065569 BLAKE2B ff7a87eb02f7731b5ce8e1a3016239c6fd1cd1bfeb0b9c0fb69f72bdbf079e7700cdb32abe64f64853e5ff82f1c0ecd86d2cadb892e7c40be6bb2a7b089f7387 SHA512 a814d61298b60d99388289e742dbedf2ed1ab454a5e1ea20d48bb2f18b36c01553ab1f097a06f733439d67e804d48cb823a82ff249c404fb0b83a281564f3040
|
||||
75
app-forensics/aflplusplus/aflplusplus-3.12c.ebuild
Normal file
75
app-forensics/aflplusplus/aflplusplus-3.12c.ebuild
Normal file
@@ -0,0 +1,75 @@
|
||||
# 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=11
|
||||
inherit toolchain-funcs llvm 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"
|
||||
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"
|
||||
|
||||
RDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
|| (
|
||||
sys-devel/llvm:10
|
||||
sys-devel/llvm:11
|
||||
sys-devel/llvm: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.0c-CFLAGS.patch"
|
||||
)
|
||||
|
||||
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)" \
|
||||
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_install() {
|
||||
emake \
|
||||
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
|
||||
}
|
||||
110
app-forensics/aflplusplus/files/aflplusplus-3.0c-CFLAGS.patch
Normal file
110
app-forensics/aflplusplus/files/aflplusplus-3.0c-CFLAGS.patch
Normal file
@@ -0,0 +1,110 @@
|
||||
--- 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
|
||||
--- a/utils/custom_mutators/Makefile
|
||||
+++ b/utils/custom_mutators/Makefile
|
||||
@@ -1,7 +1,7 @@
|
||||
all: libexamplemutator.so
|
||||
|
||||
libexamplemutator.so:
|
||||
- $(CC) $(CFLAGS) -D_FORTIFY_SOURCE=2 -O3 -fPIC -shared -g -I ../../include example.c -o libexamplemutator.so
|
||||
+ $(CC) $(CFLAGS) -D_FORTIFY_SOURCE=2 -fPIC -shared -g -I ../../include example.c -o libexamplemutator.so
|
||||
|
||||
clean:
|
||||
rm -rf libexamplemutator.so
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/GNUmakefile.gcc_plugin
|
||||
+++ b/GNUmakefile.gcc_plugin
|
||||
@@ -129,7 +129,7 @@ afl-common.o: ./src/afl-common.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ $(LDFLAGS)
|
||||
|
||||
./afl-gcc-pass.so: instrumentation/afl-gcc-pass.so.cc | test_deps
|
||||
- $(CXX) $(CXXEFLAGS) $(PLUGIN_FLAGS) -shared $< -o $@
|
||||
+ $(CXX) $(CXXEFLAGS) $(PLUGIN_FLAGS) -shared $< -o $@ $(LDFLAGS)
|
||||
ln -sf afl-cc afl-gcc-fast
|
||||
ln -sf afl-cc afl-g++-fast
|
||||
ln -sf afl-cc.8 afl-gcc-fast.8
|
||||
11
app-forensics/aflplusplus/metadata.xml
Normal file
11
app-forensics/aflplusplus/metadata.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>sam@gentoo.org</email>
|
||||
<name>Sam James</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">AFLplusplus/AFLplusplus</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user