From 65b4141cd385da7ec9e55e2687fc3063b3046ecc Mon Sep 17 00:00:00 2001 From: van Hauser Date: Sat, 28 Dec 2019 19:04:05 +0100 Subject: make clean beautification --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 1bfa3f77..d06b1462 100644 --- a/Makefile +++ b/Makefile @@ -325,7 +325,7 @@ clean: $(MAKE) -C qemu_mode/unsigaction clean $(MAKE) -C qemu_mode/libcompcov clean $(MAKE) -C src/third_party/libradamsa/ clean - -$(MAKE) -C unicorn_mode/unicorn clean + -test -d unicorn_mode/unicorn && $(MAKE) -C unicorn_mode/unicorn clean distrib: all radamsa -$(MAKE) -C llvm_mode -- cgit 1.4.1 From 9829c5eb955c118db3923a8626addd7a19319f8a Mon Sep 17 00:00:00 2001 From: van Hauser Date: Mon, 30 Dec 2019 15:14:00 +0100 Subject: really ensure that all .test files are removed after they are not needed anymore --- Makefile | 7 ++++--- gcc_plugin/Makefile | 2 +- llvm_mode/Makefile | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index d06b1462..93aefddd 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,7 @@ endif COMM_HDR = include/alloc-inl.h include/config.h include/debug.h include/types.h -ifeq "$(shell echo '\#include @int main() {return 0; }' | tr @ '\n' | $(CC) -x c - -o .test -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) 2>/dev/null && echo 1 || echo 0 )" "1" +ifeq "$(shell echo '\#include @int main() {return 0; }' | tr @ '\n' | $(CC) -x c - -o .test -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) 2>/dev/null && echo 1 || echo 0 ; rm -f .test )" "1" PYTHON_OK=1 PYFLAGS=-DUSE_PYTHON -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) else @@ -122,7 +122,7 @@ ifdef STATIC LDFLAGS += -lm -lrt -lpthread -lz -lutil endif -ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 )" "1" +ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1" SHMAT_OK=1 else SHMAT_OK=0 @@ -325,7 +325,8 @@ clean: $(MAKE) -C qemu_mode/unsigaction clean $(MAKE) -C qemu_mode/libcompcov clean $(MAKE) -C src/third_party/libradamsa/ clean - -test -d unicorn_mode/unicorn && $(MAKE) -C unicorn_mode/unicorn clean + -test -e unicorn_mode/unicorn/Makefile && $(MAKE) -C unicorn_mode/unicorn clean + -rm -rf unicorn_mode/unicorn distrib: all radamsa -$(MAKE) -C llvm_mode diff --git a/gcc_plugin/Makefile b/gcc_plugin/Makefile index 07e679bc..b6b44a98 100644 --- a/gcc_plugin/Makefile +++ b/gcc_plugin/Makefile @@ -35,7 +35,7 @@ CXX ?= g++ PLUGIN_FLAGS = -fPIC -fno-rtti -I"$(shell $(CC) -print-file-name=plugin)/include" -ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 )" "1" +ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1" SHMAT_OK=1 else SHMAT_OK=0 diff --git a/llvm_mode/Makefile b/llvm_mode/Makefile index 5a836a0e..0e3da147 100644 --- a/llvm_mode/Makefile +++ b/llvm_mode/Makefile @@ -115,7 +115,7 @@ endif CLANGVER = $(shell $(CC) --version | sed -E -ne '/^.*version\ ([0-9]\.[0-9]\.[0-9]).*/s//\1/p') -ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 )" "1" +ifeq "$(shell echo '\#include @\#include @int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1" SHMAT_OK=1 else SHMAT_OK=0 -- cgit 1.4.1 From c3bb0a3421c91c5eab0cb86f24f6f19c10f2e469 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Mon, 30 Dec 2019 22:21:51 +0100 Subject: added testcases for afl-tmin and afl-cmin --- Makefile | 1 + docs/ChangeLog | 1 + test/test.sh | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 45 insertions(+), 13 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 93aefddd..36f6d4c5 100644 --- a/Makefile +++ b/Makefile @@ -145,6 +145,7 @@ man: $(MANPAGES) tests: source-only @cd test ; ./test.sh + @rm -f test/errors performance-tests: performance-test test-performance: performance-test diff --git a/docs/ChangeLog b/docs/ChangeLog index 3fd29e29..8492d7fd 100644 --- a/docs/ChangeLog +++ b/docs/ChangeLog @@ -18,6 +18,7 @@ Version ++2.59d (develop): -------------------------- - fixed a critical bug in afl-tmin that was introduced during ++2.53d + - added test cases for afl-cmin and afl-tmin to test/test.sh - added ./experimental/argv_fuzzing ld_preload library by Kjell Braden - added preeny's desock_dup ld_preload library as ./experimental/socket_fuzzing for network fuzzing diff --git a/test/test.sh b/test/test.sh index a75f991d..44cced08 100755 --- a/test/test.sh +++ b/test/test.sh @@ -25,6 +25,7 @@ $ECHO \\101 2>&1 | grep -qE '^A' || { test -z "$ECHO" && { printf Error: printf command does not support octal character codes ; exit 1 ; } CODE=0 +INCOMPLETE=0 export AFL_EXIT_WHEN_DONE=1 export AFL_SKIP_CPUFREQ=1 @@ -69,9 +70,9 @@ export PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin $ECHO "${RESET}${GREY}[*] starting afl++ test framework ..." -test -z "$SYS" && $ECHO "$YELLOW[!] uname -m did not succeed" +test -z "$SYS" && $ECHO "$YELLOW[-] uname -m did not succeed" -$ECHO "$BLUE[*] Testing: ${AFL_GCC}, afl-showmap and afl-fuzz" +$ECHO "$BLUE[*] Testing: ${AFL_GCC}, afl-showmap, afl-fuzz, afl-cmin and afl-tmin" test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" && { test -e ../${AFL_GCC} -a -e ../afl-showmap -a -e ../afl-fuzz && { ../${AFL_GCC} -o test-instr.plain ../test-instr.c > /dev/null 2>&1 @@ -122,7 +123,7 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" && { # now we want to be sure that afl-fuzz is working # make sure core_pattern is set to core on linux (test "$(uname -s)" = "Linux" && test "$(sysctl kernel.core_pattern)" != "kernel.core_pattern = core" && { - $ECHO "$YELLOW[!] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" + $ECHO "$YELLOW[-] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" true }) || # make sure crash reporter is disabled on Mac OS X @@ -145,11 +146,28 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" && { $ECHO "$RED[!] afl-fuzz is not working correctly with ${AFL_GCC}" CODE=1 } - rm -rf in out errors + echo 000000000000000000000000 > in/in2 + mkdir -p in2 + ../afl-cmin -i in -o in2 -- ./test-instr.plain > /dev/null 2>&1 + CNT=`ls in2/ | wc -l` + test "$CNT" = 1 && $ECHO "$GREEN[+] afl-cmin correctly minimized testcase numbers" + test "$CNT" = 1 || { + $ECHO "$RED[!] afl-cmin did not correctly minimize testcase numbers" + CODE=1 + } + ../afl-tmin -i in/in2 -o in2/in2 -- ./test-instr.plain > /dev/null 2>&1 + SIZE=`ls -l in2/in2 2> /dev/null | awk '{print$5}'` + test "$SIZE" = 1 && $ECHO "$GREEN[+] afl-tmin correctly minimized the testcase" + test "$SIZE" = 1 || { + $ECHO "$RED[!] afl-tmin did incorrectly minimize the testcase to $SIZE" + CODE=1 + } + rm -rf in out errors in2 } rm -f test-instr.plain } || { $ECHO "$YELLOW[-] afl is not compiled, cannot test" + INCOMPLETE=1 } } || { $ECHO "$YELLOW[-] not an intel platform, cannot test afl-gcc" @@ -206,7 +224,7 @@ test -e ../afl-clang-fast -a -e ../split-switches-pass.so && { } # now we want to be sure that afl-fuzz is working (test "$(uname -s)" = "Linux" && test "$(sysctl kernel.core_pattern)" != "kernel.core_pattern = core" && { - $ECHO "$YELLOW[!] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" + $ECHO "$YELLOW[-] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" true }) || # make sure crash reporter is disabled on Mac OS X @@ -290,6 +308,7 @@ test -e ../afl-clang-fast -a -e ../split-switches-pass.so && { rm -f test-persistent } || { $ECHO "$YELLOW[-] llvm_mode not compiled, cannot test" + INCOMPLETE=1 } $ECHO "$BLUE[*] Testing: gcc_plugin" @@ -312,7 +331,7 @@ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && { $ECHO "$GREEN[+] gcc_plugin run reported $TUPLES instrumented locations which is fine" } || { $ECHO "$RED[!] gcc_plugin instrumentation produces a weird number of instrumented locations: $TUPLES" - $ECHO "$YELLOW[!] the gcc_plugin instrumentation issue is not flagged as an error because travis builds would all fail otherwise :-(" + $ECHO "$YELLOW[-] the gcc_plugin instrumentation issue is not flagged as an error because travis builds would all fail otherwise :-(" #CODE=1 } } @@ -340,7 +359,7 @@ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && { } # now we want to be sure that afl-fuzz is working (test "$(uname -s)" = "Linux" && test "$(sysctl kernel.core_pattern)" != "kernel.core_pattern = core" && { - $ECHO "$YELLOW[!] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" + $ECHO "$YELLOW[-] we should not run afl-fuzz with enabled core dumps. Run 'sudo sh afl-system-config'.$RESET" true }) || # make sure crash reporter is disabled on Mac OS X @@ -398,6 +417,7 @@ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && { rm -f test-persistent } || { $ECHO "$YELLOW[-] gcc_plugin not compiled, cannot test" + INCOMPLETE=1 } $ECHO "$BLUE[*] Testing: shared library extensions" @@ -413,6 +433,7 @@ test -e ../libtokencap.so && { rm -f token.out } || { $ECHO "$YELLOW[-] libtokencap is not compiled, cannot test" + INCOMPLETE=1 } test -e ../libdislocator.so && { { @@ -429,6 +450,7 @@ test -e ../libdislocator.so && { rm -f test.out core test-compcov.core core.test-compcov } || { $ECHO "$YELLOW[-] libdislocator is not compiled, cannot test" + INCOMPLETE=1 } rm -f test-compcov test -e ../libradamsa.so && { @@ -454,9 +476,11 @@ test -e ../libradamsa.so && { rm -rf in out errors test-instr.plain } || { $ECHO "$YELLOW[-] compilation of test target failed, cannot test libradamsa" + INCOMPLETE=1 } } || { $ECHO "$YELLOW[-] libradamsa is not compiled, cannot test" + INCOMPLETE=1 } $ECHO "$BLUE[*] Testing: qemu_mode" @@ -501,6 +525,7 @@ test -e ../afl-qemu-trace && { } } || { $ECHO "$YELLOW[-] we cannot test qemu_mode libcompcov because it is not present" + INCOMPLETE=1 } rm -f errors @@ -519,10 +544,10 @@ test -e ../afl-qemu-trace && { test "$SLOW" -lt "$FAST" && { $ECHO "$GREEN[+] persistent qemu_mode was noticeable faster than standard qemu_mode" } || { - $ECHO "$YELLOW[?] persistent qemu_mode was not noticeable faster than standard qemu_mode" + $ECHO "$YELLOW[-] persistent qemu_mode was not noticeable faster than standard qemu_mode" } } || { - $ECHO "$YELLOW[?] we got no data on executions performed? weird!" + $ECHO "$YELLOW[-] we got no data on executions performed? weird!" } } || { echo CUT------------------------------------------------------------------CUT @@ -532,17 +557,18 @@ test -e ../afl-qemu-trace && { CODE=1 exit 1 } - $ECHO "$YELLOW[?] we need a test case for qemu_mode unsigaction library" + $ECHO "$YELLOW[-] we need a test case for qemu_mode unsigaction library" rm -rf in out errors } } || { - $ECHO "$RED[-] gcc compilation of test targets failed - what is going on??" + $ECHO "$RED[!] gcc compilation of test targets failed - what is going on??" CODE=1 } rm -f test-instr test-compcov } || { $ECHO "$YELLOW[-] qemu_mode is not compiled, cannot test" + INCOMPLETE=1 } $ECHO "$BLUE[*] Testing: unicorn_mode" @@ -557,6 +583,7 @@ test -d ../unicorn_mode/unicorn && { $ECHO "$GREY[*] Using python binary $PY" if ! $PY -c 'import unicornafl' 2> /dev/null ; then $ECHO "$YELLOW[-] we cannot test unicorn_mode because it is not present" + INCOMPLETE=1 else { $ECHO "$GREY[*] running afl-fuzz for unicorn_mode, this will take approx 25 seconds" @@ -596,15 +623,18 @@ test -d ../unicorn_mode/unicorn && { fi } } || { - $ECHO "$RED[-] missing sample binaries in unicorn_mode/samples/ - what is going on??" + $ECHO "$RED[!] missing sample binaries in unicorn_mode/samples/ - what is going on??" CODE=1 } } || { $ECHO "$YELLOW[-] unicorn_mode is not compiled, cannot test" + INCOMPLETE=1 } $ECHO "$GREY[*] all test cases completed.$RESET" +test "$INCOMPLETE" = "0" && $ECHO "$GREEN[+] all test cases executed" +test "$INCOMPLETE" = "1" && $ECHO "$YELLOW[-] not all test cases were executed" test "$CODE" = "0" && $ECHO "$GREEN[+] all tests were successful :-)$RESET" -test "$CODE" = "0" || $ECHO "$RED[-] failure in tests :-($RESET" +test "$CODE" = "0" || $ECHO "$RED[!] failure in tests :-($RESET" exit $CODE -- cgit 1.4.1 From 842cd9dec3c4c83d660d96dcdb3f5cf0c6e6f4fb Mon Sep 17 00:00:00 2001 From: van Hauser Date: Tue, 31 Dec 2019 12:52:10 +0100 Subject: final touches before 2.60 --- Makefile | 1 - docs/ChangeLog | 2 +- llvm_mode/afl-clang-fast.c | 18 ++++++++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 36f6d4c5..f287a3a0 100644 --- a/Makefile +++ b/Makefile @@ -326,7 +326,6 @@ clean: $(MAKE) -C qemu_mode/unsigaction clean $(MAKE) -C qemu_mode/libcompcov clean $(MAKE) -C src/third_party/libradamsa/ clean - -test -e unicorn_mode/unicorn/Makefile && $(MAKE) -C unicorn_mode/unicorn clean -rm -rf unicorn_mode/unicorn distrib: all radamsa diff --git a/docs/ChangeLog b/docs/ChangeLog index 8492d7fd..a5e3efcd 100644 --- a/docs/ChangeLog +++ b/docs/ChangeLog @@ -23,7 +23,7 @@ Version ++2.59d (develop): - added preeny's desock_dup ld_preload library as ./experimental/socket_fuzzing for network fuzzing - added AFL_AS_FORCE_INSTRUMENT environment variable for afl-as - this is - for retrorewrite project + for the retrorewrite project - we now set QEMU_SET_ENV from AFL_PRELOAD when qemu_mode is used diff --git a/llvm_mode/afl-clang-fast.c b/llvm_mode/afl-clang-fast.c index fe91a01b..a1da83b2 100644 --- a/llvm_mode/afl-clang-fast.c +++ b/llvm_mode/afl-clang-fast.c @@ -49,7 +49,11 @@ static void find_obj(u8* argv0) { if (afl_path) { +#ifdef __ANDROID__ + tmp = alloc_printf("%s/afl-llvm-rt.so", afl_path); +#else tmp = alloc_printf("%s/afl-llvm-rt.o", afl_path); +#endif if (!access(tmp, R_OK)) { @@ -73,7 +77,11 @@ static void find_obj(u8* argv0) { dir = ck_strdup(argv0); *slash = '/'; +#ifdef __ANDROID__ + tmp = alloc_printf("%s/afl-llvm-rt.so", afl_path); +#else tmp = alloc_printf("%s/afl-llvm-rt.o", dir); +#endif if (!access(tmp, R_OK)) { @@ -88,8 +96,14 @@ static void find_obj(u8* argv0) { } +#ifdef __ANDROID__ + if (!access(AFL_PATH "/afl-llvm-rt.so", R_OK)) { + +#else if (!access(AFL_PATH "/afl-llvm-rt.o", R_OK)) { +#endif + obj_path = AFL_PATH; return; @@ -358,7 +372,7 @@ static void edit_params(u32 argc, char** argv) { } - //#ifndef __ANDROID__ // not sure, we might need these ifdefs for Android +#ifndef __ANDROID__ switch (bit_mode) { case 0: @@ -383,7 +397,7 @@ static void edit_params(u32 argc, char** argv) { } - //#endif +#endif } -- cgit 1.4.1 From 6dea693441c5b4f7177573383464fabfbde12a74 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Tue, 31 Dec 2019 13:19:47 +0100 Subject: show correct python version and readme name --- Makefile | 2 +- src/afl-fuzz.c | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index f287a3a0..db65e9ad 100644 --- a/Makefile +++ b/Makefile @@ -106,7 +106,7 @@ COMM_HDR = include/alloc-inl.h include/config.h include/debug.h include/types ifeq "$(shell echo '\#include @int main() {return 0; }' | tr @ '\n' | $(CC) -x c - -o .test -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) 2>/dev/null && echo 1 || echo 0 ; rm -f .test )" "1" PYTHON_OK=1 - PYFLAGS=-DUSE_PYTHON -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) + PYFLAGS=-DUSE_PYTHON -I$(PYTHON_INCLUDE) $(LDFLAGS) $(PYTHON_LIB) -DPYTHON_VERSION=\"$(PYTHON_VERSION)\" else PYTHON_OK=0 PYFLAGS= diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 0bb8b9a9..dd80202b 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -84,13 +84,6 @@ static u8* get_libradamsa_path(u8* own_loc) { static void usage(u8* argv0) { -#ifdef USE_PYTHON -#define PHYTON_SUPPORT \ - "Compiled with Python 2.7 module support, see docs/python_mutators.txt\n" -#else -#define PHYTON_SUPPORT "" -#endif - SAYF( "\n%s [ options ] -- /path/to/fuzzed_app [ ... ]\n\n" @@ -146,13 +139,15 @@ static void usage(u8* argv0) { "file\n" " -C - crash exploration mode (the peruvian rabbit thing)\n" " -e ext - File extension for the temporarily generated test " - "case\n\n" + "case\n\n", - PHYTON_SUPPORT + argv0, EXEC_TIMEOUT, MEM_LIMIT); - "For additional tips, please consult %s/README\n\n", +#ifdef USE_PYTHON + SAYF("Compiled with Python %s module support, see docs/python_mutators.txt\n", (char*)PYTHON_VERSION); +#endif - argv0, EXEC_TIMEOUT, MEM_LIMIT, doc_path); + SAYF("For additional information please consult %s/README.md\n\n", doc_path); exit(1); #undef PHYTON_SUPPORT -- cgit 1.4.1 From e7fc1ef49e8c9d8fa563f321f5e5906ce8fad69d Mon Sep 17 00:00:00 2001 From: van Hauser Date: Mon, 6 Jan 2020 10:05:33 +0100 Subject: minor fix for man page install --- Android.bp | 1 + Makefile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Android.bp b/Android.bp index 9fdf6f04..e59129db 100644 --- a/Android.bp +++ b/Android.bp @@ -129,6 +129,7 @@ cc_library_static { vendor_available: true, host_supported: true, recovery_available: true, + sdk_version: "9", defaults: [ "afl-defaults", diff --git a/Makefile b/Makefile index db65e9ad..a2df4caf 100644 --- a/Makefile +++ b/Makefile @@ -400,7 +400,7 @@ endif set -e; if [ -f afl-clang-fast ] ; then ln -sf afl-clang-fast $${DESTDIR}$(BIN_PATH)/afl-clang ; ln -sf afl-clang-fast $${DESTDIR}$(BIN_PATH)/afl-clang++ ; else ln -sf afl-gcc $${DESTDIR}$(BIN_PATH)/afl-clang ; ln -sf afl-gcc $${DESTDIR}$(BIN_PATH)/afl-clang++; fi mkdir -m 0755 -p ${DESTDIR}$(MAN_PATH) - install -m0644 -D *.8 ${DESTDIR}$(MAN_PATH) + install -m0644 *.8 ${DESTDIR}$(MAN_PATH) install -m 755 afl-as $${DESTDIR}$(HELPER_PATH) ln -sf afl-as $${DESTDIR}$(HELPER_PATH)/as -- cgit 1.4.1