Index: head/security/afl++/Makefile =================================================================== --- head/security/afl++/Makefile (revision 518764) +++ head/security/afl++/Makefile (revision 518765) @@ -1,133 +1,117 @@ # Created by: Fabian Keil # $FreeBSD$ PORTNAME= afl PORTVERSION= 2.58c CATEGORIES= security PKGNAMESUFFIX= ++ MAINTAINER= tobik@FreeBSD.org COMMENT= Fast instrumented fuzzer LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/docs/COPYING # In theory afl supports non-x86 architectures with the LLVM plugin. # This has only been run tested on aarch64 so far. ONLY_FOR_ARCHS= aarch64 amd64 i386 ONLY_FOR_ARCHS_REASON= uses x86-only instrumentation or requires complete LLVM support USES= gmake tar:tgz USE_GITHUB= yes GH_ACCOUNT= vanhauser-thc GH_PROJECT= AFLplusplus +MAKE_ARGS= STRIP_CMD="${STRIP_CMD}" ALL_TARGET= all libdislocator +INSTALL_TARGET= install-strip TEST_TARGET= test_build CONFLICTS_INSTALL= afl OPTIONS_DEFINE= DEBUG DOCS GCC LLVM OPTIONS_DEFAULT= LLVM # On non-x86 architectures LLVM is mandatory OPTIONS_SLAVE= ${ARCH:Namd64:Ni386:S/${ARCH}/LLVM/} OPTIONS_SUB= yes GCC_DESC= Build GCC plugin and afl-gcc-fast LLVM_DESC= LLVM-based instrumentation GCC_BUILD_DEPENDS= gcc${GCC_DEFAULT}:lang/gcc${GCC_DEFAULT} GCC_RUN_DEPENDS= gcc${GCC_DEFAULT}:lang/gcc${GCC_DEFAULT} +GCC_MAKE_ARGS= GCC=gcc${GCC_DEFAULT} \ + GXX=g++${GCC_DEFAULT} +GCC_ALL_TARGET= gcc_plugin +GCC_TEST_TARGET= test_gcc_plugin LLVM_BUILD_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} LLVM_RUN_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} LLVM_MAKE_ARGS= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} LLVM_ALL_TARGET= llvm_mode LLVM_TEST_TARGET= test_llvm_mode LLVM_BINARY_ALIAS= llvm-config=llvm-config${LLVM_DEFAULT} LLVM_VARS= CC=clang${LLVM_DEFAULT} \ CXX=clang++${LLVM_DEFAULT} .include .if ${ARCH} == "i386" || ${ARCH} == "amd64" PLIST_SUB+= X86="" .else MAKE_ARGS+= AFL_NO_X86=1 PLIST_SUB+= X86="@comment " .endif .if ${ARCH} == "i386" # Clang i386 emits .cfi_sections which base as(1) doesn't understand BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils .endif post-patch: # Disable the instrumentation tests to make sure building packages in # jails works by default. afl needs shmget() which usually isn't # available in jails. @${REINPLACE_CMD} 's@^\(all.*\) test_build@\1@' \ - ${WRKSRC}/Makefile ${WRKSRC}/llvm_mode/Makefile + ${WRKSRC}/Makefile \ + ${WRKSRC}/gcc_plugin/Makefile \ + ${WRKSRC}/llvm_mode/Makefile .if ${ARCH} == "i386" @${REINPLACE_CMD} 's@\( as_params\[0\] = afl_as ? afl_as : \)\(.*\)@\1(u8*)"${LOCALBASE}/bin/as";@' \ ${WRKSRC}/src/afl-as.c .endif - @${CAT} ${FILESDIR}/Makefile.extra >> ${WRKSRC}/Makefile + @${REINPLACE_CMD} '/export AFL_CC/d' ${WRKSRC}/test/test.sh + @${ECHO_CMD} "include ${FILESDIR}/Makefile.extra" >> ${WRKSRC}/Makefile post-patch-GCC-on: @${REINPLACE_CMD} \ -e 's|"gcc"|"gcc${GCC_DEFAULT}"|g' \ -e 's|"g\+\+"|"g\+\+${GCC_DEFAULT}"|g' \ ${WRKSRC}/gcc_plugin/afl-gcc-fast.c post-patch-LLVM-on: @${REINPLACE_CMD} \ -e 's|"clang"|"clang${LLVM_DEFAULT}"|g' \ -e 's|"clang\+\+"|"clang\+\+${LLVM_DEFAULT}"|g' \ ${WRKSRC}/llvm_mode/afl-clang-fast.c -post-build-GCC-on: - @${DO_MAKE_BUILD} -C ${WRKSRC}/gcc_plugin CC=gcc${GCC_DEFAULT} \ - CXX=g++${GCC_DEFAULT} - post-install: -.for script in afl-cmin afl-plot afl-whatsup - ${INSTALL_SCRIPT} ${WRKSRC}/${script} ${STAGEDIR}${PREFIX}/bin -.endfor - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/afl/afl-as -.for prog in afl-analyze afl-fuzz afl-gcc afl-gotcpu afl-showmap afl-tmin - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${prog} -.endfor - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/afl/*.so @${MKDIR} ${STAGEDIR}${DOCSDIR}/libdislocator ${INSTALL_MAN} ${WRKSRC}/libdislocator/README.md \ ${STAGEDIR}${DOCSDIR}/libdislocator post-install-GCC-on: - ${INSTALL_PROGRAM} ${WRKSRC}/afl-g++-fast \ - ${WRKSRC}/afl-gcc-fast \ - ${STAGEDIR}${PREFIX}/bin - ${INSTALL_MAN} ${WRKSRC}/afl-g++-fast.8 \ - ${WRKSRC}/afl-gcc-fast.8 \ - ${STAGEDIR}${PREFIX}/man/man8 - ${INSTALL_LIB} ${WRKSRC}/afl-gcc-pass.so \ - ${STAGEDIR}${PREFIX}/lib/afl - ${INSTALL_DATA} ${WRKSRC}/afl-gcc-rt.o \ - ${STAGEDIR}${PREFIX}/lib/afl @${MKDIR} ${STAGEDIR}${DOCSDIR}/gcc_plugin ${INSTALL_MAN} ${WRKSRC}/gcc_plugin/README.* \ ${STAGEDIR}${DOCSDIR}/gcc_plugin post-install-LLVM-on: - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/afl/*.so \ - ${STAGEDIR}${PREFIX}/bin/afl-clang-fast ${MKDIR} ${STAGEDIR}${DOCSDIR}/llvm_mode ${INSTALL_MAN} ${WRKSRC}/llvm_mode/README.* \ ${STAGEDIR}${DOCSDIR}/llvm_mode -post-test-GCC-on: - @${DO_MAKE_BUILD} -C ${WRKSRC}/gcc_plugin CC=gcc${GCC_DEFAULT} \ - CXX=g++${GCC_DEFAULT} test_build +post-test: + @cd ${WRKSRC}/test && ./test.sh .include Index: head/security/afl++/files/Makefile.extra =================================================================== --- head/security/afl++/files/Makefile.extra (revision 518764) +++ head/security/afl++/files/Makefile.extra (revision 518765) @@ -1,10 +1,22 @@ -.PHONY: libdislocator llvm_mode test_llvm_mode +.PHONY: gcc_plugin install-strip libdislocator llvm_mode test_gcc_plugin test_llvm_mode +install-strip: install + @cd ${DESTDIR}${BIN_PATH} && ${STRIP_CMD} ${PROGS} + @-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-clang-fast + @-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-gcc-fast + @cd ${DESTDIR}${HELPER_PATH} && ${STRIP_CMD} afl-as *.so + libdislocator: $(MAKE) -C libdislocator CFLAGS="-I../include ${CFLAGS}" llvm_mode: $(MAKE) -C llvm_mode test_llvm_mode: $(MAKE) -C llvm_mode test_build + +gcc_plugin: + $(MAKE) -C gcc_plugin CC="${GCC}" CXX="${GXX}" + +test_gcc_plugin: + $(MAKE) -C gcc_plugin CC="${GCC}" CXX="${GXX}" test_build