@@ -24,7 +24,7 @@ BIN_PATH = $(PREFIX)/bin
24
24
HELPER_PATH = $(PREFIX ) /lib/afl
25
25
DOC_PATH = $(PREFIX ) /share/doc/afl
26
26
MISC_PATH = $(PREFIX ) /share/afl
27
- MAN_PATH = $(PREFIX ) /man/man8
27
+ MAN_PATH = $(PREFIX ) /share/ man/man8
28
28
29
29
PROGNAME = afl
30
30
VERSION = $(shell grep '^$(HASH ) define VERSION ' ../config.h | cut -d '"' -f2)
@@ -33,7 +33,7 @@ VERSION = $(shell grep '^$(HASH)define VERSION ' ../config.h | cut -d '"' -f
33
33
34
34
PROGS = afl-gcc afl-fuzz afl-showmap afl-tmin afl-gotcpu afl-analyze
35
35
SH_PROGS = afl-plot afl-cmin afl-cmin.bash afl-whatsup afl-system-config
36
- MANPAGES =$(foreach p, $(PROGS ) $(SH_PROGS ) , $(p ) .8) afl-as.8
36
+ MANPAGES =$(foreach p, $(PROGS ) $(SH_PROGS ) , $(p ) .8) afl-as.8 afl-g++.8
37
37
ASAN_OPTIONS=detect_leaks =0
38
38
39
39
ifeq "$(findstring android, $(shell $(CC ) --version 2>/dev/null) ) " ""
@@ -62,7 +62,10 @@ ifneq "$(shell uname)" "Darwin"
62
62
endif
63
63
endif
64
64
# OS X does not like _FORTIFY_SOURCE=2
65
- CFLAGS_OPT += -D_FORTIFY_SOURCE=2
65
+ # _FORTIFY_SOURCE=2 does not like -O0
66
+ ifndef DEBUG
67
+ CFLAGS_OPT += -D_FORTIFY_SOURCE=2
68
+ endif
66
69
endif
67
70
68
71
ifeq "$(shell uname) " "SunOS"
@@ -204,7 +207,10 @@ else
204
207
endif
205
208
206
209
ifneq "$(filter Linux GNU% ,$(shell uname) ) " ""
210
+ # _FORTIFY_SOURCE=2 does not like -O0
211
+ ifndef DEBUG
207
212
override CFLAGS += -D_FORTIFY_SOURCE=2
213
+ endif
208
214
LDFLAGS += -ldl -lrt
209
215
endif
210
216
@@ -368,78 +374,78 @@ ready:
368
374
@echo " [+] Everything seems to be working, ready to compile."
369
375
370
376
afl-gcc : src/afl-gcc.c $(COMM_HDR ) | test_x86
371
- $(CC ) $(CFLAGS ) src/$@ .c -o $@ $(LDFLAGS )
377
+ $(CC ) $(CFLAGS ) $( CPPFLAGS ) src/$@ .c -o $@ $(LDFLAGS )
372
378
set -e; for i in afl-g++ afl-clang afl-clang++; do ln -sf afl-gcc $$ i; done
373
379
374
380
afl-as : src/afl-as.c include/afl-as.h $(COMM_HDR ) | test_x86
375
- $(CC ) $(CFLAGS ) src/$@ .c -o $@ $(LDFLAGS )
381
+ $(CC ) $(CFLAGS ) $( CPPFLAGS ) src/$@ .c -o $@ $(LDFLAGS )
376
382
ln -sf afl-as as
377
383
378
384
src/afl-performance.o : $(COMM_HDR ) src/afl-performance.c include/hash.h
379
- $(CC ) -Iinclude $(SPECIAL_PERFORMANCE ) -O3 -fno-unroll-loops -c src/afl-performance.c -o src/afl-performance.o
385
+ $(CC ) $( CFLAGS ) $( CPPFLAGS ) -Iinclude $(SPECIAL_PERFORMANCE ) -O3 -fno-unroll-loops -c src/afl-performance.c -o src/afl-performance.o
380
386
381
387
src/afl-common.o : $(COMM_HDR ) src/afl-common.c include/common.h
382
- $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) -c src/afl-common.c -o src/afl-common.o
388
+ $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) $( CPPFLAGS ) -c src/afl-common.c -o src/afl-common.o
383
389
384
390
src/afl-forkserver.o : $(COMM_HDR ) src/afl-forkserver.c include/forkserver.h
385
- $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) -c src/afl-forkserver.c -o src/afl-forkserver.o
391
+ $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) $( CPPFLAGS ) -c src/afl-forkserver.c -o src/afl-forkserver.o
386
392
387
393
src/afl-sharedmem.o : $(COMM_HDR ) src/afl-sharedmem.c include/sharedmem.h
388
- $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) -c src/afl-sharedmem.c -o src/afl-sharedmem.o
394
+ $(CC ) $(CFLAGS ) $(CFLAGS_FLTO ) $( CPPFLAGS ) -c src/afl-sharedmem.c -o src/afl-sharedmem.o
389
395
390
396
afl-fuzz : $(COMM_HDR ) include/afl-fuzz.h $(AFL_FUZZ_FILES ) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o | test_x86
391
- $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $(AFL_FUZZ_FILES ) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o -o $@ $(PYFLAGS ) $(LDFLAGS )
397
+ $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $(AFL_FUZZ_FILES ) $( CPPFLAGS ) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o -o $@ $(PYFLAGS ) $(LDFLAGS )
392
398
393
399
afl-showmap : src/afl-showmap.c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o $(COMM_HDR ) | test_x86
394
- $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o -o $@ $(LDFLAGS )
400
+ $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $( CPPFLAGS ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o -o $@ $(LDFLAGS )
395
401
396
402
afl-tmin : src/afl-tmin.c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o $(COMM_HDR ) | test_x86
397
- $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o -o $@ $(LDFLAGS )
403
+ $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $( CPPFLAGS ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o src/afl-performance.o -o $@ $(LDFLAGS )
398
404
399
405
afl-analyze : src/afl-analyze.c src/afl-common.o src/afl-sharedmem.o src/afl-performance.o $(COMM_HDR ) | test_x86
400
- $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-performance.o -o $@ $(LDFLAGS )
406
+ $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $( CPPFLAGS ) src/$@ .c src/afl-common.o src/afl-sharedmem.o src/afl-performance.o -o $@ $(LDFLAGS )
401
407
402
408
afl-gotcpu : src/afl-gotcpu.c src/afl-common.o $(COMM_HDR ) | test_x86
403
- $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) src/$@ .c src/afl-common.o -o $@ $(LDFLAGS )
409
+ $(CC ) $(CFLAGS ) $(COMPILE_STATIC ) $(CFLAGS_FLTO ) $( CPPFLAGS ) src/$@ .c src/afl-common.o -o $@ $(LDFLAGS )
404
410
405
411
406
412
# document all mutations and only do one run (use with only one input file!)
407
413
document : $(COMM_HDR ) include/afl-fuzz.h $(AFL_FUZZ_FILES ) src/afl-common.o src/afl-sharedmem.o src/afl-performance.o | test_x86
408
- $(CC ) -D_DEBUG=\" 1\" -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS ) $(CFLAGS_FLTO ) $(AFL_FUZZ_FILES ) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.c src/afl-performance.o -o afl-fuzz-document $(PYFLAGS ) $(LDFLAGS )
414
+ $(CC ) -D_DEBUG=\" 1\" -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS ) $(CFLAGS_FLTO ) $(AFL_FUZZ_FILES ) $( CPPFLAGS ) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.c src/afl-performance.o -o afl-fuzz-document $(PYFLAGS ) $(LDFLAGS )
409
415
410
416
test/unittests/unit_maybe_alloc.o : $(COMM_HDR ) include/alloc-inl.h test/unittests/unit_maybe_alloc.c $(AFL_FUZZ_FILES )
411
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -c test/unittests/unit_maybe_alloc.c -o test/unittests/unit_maybe_alloc.o
417
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -c test/unittests/unit_maybe_alloc.c -o test/unittests/unit_maybe_alloc.o
412
418
413
419
unit_maybe_alloc : test/unittests/unit_maybe_alloc.o
414
- @$(CC ) $(CFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_maybe_alloc.o -o test/unittests/unit_maybe_alloc $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
420
+ @$(CC ) $(CFLAGS ) $( CPPFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_maybe_alloc.o -o test/unittests/unit_maybe_alloc $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
415
421
./test/unittests/unit_maybe_alloc
416
422
417
423
test/unittests/unit_hash.o : $(COMM_HDR ) include/alloc-inl.h test/unittests/unit_hash.c $(AFL_FUZZ_FILES ) src/afl-performance.o
418
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -c test/unittests/unit_hash.c -o test/unittests/unit_hash.o
424
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -c test/unittests/unit_hash.c -o test/unittests/unit_hash.o
419
425
420
426
unit_hash : test/unittests/unit_hash.o src/afl-performance.o
421
- @$(CC ) $(CFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf $^ -o test/unittests/unit_hash $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
427
+ @$(CC ) $(CFLAGS ) $( CPPFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf $^ -o test/unittests/unit_hash $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
422
428
./test/unittests/unit_hash
423
429
424
430
test/unittests/unit_rand.o : $(COMM_HDR ) include/alloc-inl.h test/unittests/unit_rand.c $(AFL_FUZZ_FILES ) src/afl-performance.o
425
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -c test/unittests/unit_rand.c -o test/unittests/unit_rand.o
431
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -c test/unittests/unit_rand.c -o test/unittests/unit_rand.o
426
432
427
433
unit_rand : test/unittests/unit_rand.o src/afl-common.o src/afl-performance.o
428
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf $^ -o test/unittests/unit_rand $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
434
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf $^ -o test/unittests/unit_rand $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
429
435
./test/unittests/unit_rand
430
436
431
437
test/unittests/unit_list.o : $(COMM_HDR ) include/list.h test/unittests/unit_list.c $(AFL_FUZZ_FILES )
432
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -c test/unittests/unit_list.c -o test/unittests/unit_list.o
438
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -c test/unittests/unit_list.c -o test/unittests/unit_list.o
433
439
434
440
unit_list : test/unittests/unit_list.o
435
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_list.o -o test/unittests/unit_list $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
441
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_list.o -o test/unittests/unit_list $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
436
442
./test/unittests/unit_list
437
443
438
444
test/unittests/unit_preallocable.o : $(COMM_HDR ) include/alloc-inl.h test/unittests/unit_preallocable.c $(AFL_FUZZ_FILES )
439
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -c test/unittests/unit_preallocable.c -o test/unittests/unit_preallocable.o
445
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -c test/unittests/unit_preallocable.c -o test/unittests/unit_preallocable.o
440
446
441
447
unit_preallocable : test/unittests/unit_preallocable.o
442
- @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_preallocable.o -o test/unittests/unit_preallocable $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
448
+ @$(CC ) $(CFLAGS ) $(ASAN_CFLAGS ) $( CPPFLAGS ) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_preallocable.o -o test/unittests/unit_preallocable $(LDFLAGS ) $(ASAN_LDFLAGS ) -lcmocka
443
449
./test/unittests/unit_preallocable
444
450
445
451
unit_clean :
@@ -566,7 +572,8 @@ source-only: all
566
572
% .8 : %
567
573
@echo .TH $* 8 $(BUILD_DATE ) " afl++" > $@
568
574
@echo .SH NAME >> $@
569
- @echo .B $* >> $@
575
+ @echo -n " .B $* \- " >> $@
576
+ @./$* -h 2>&1 | head -n 1 | sed -e " s/$$ (printf '\e')[^m]*m//g" >> $@
570
577
@echo >> $@
571
578
@echo .SH SYNOPSIS >> $@
572
579
@./$* -h 2>&1 | head -n 3 | tail -n 1 | sed ' s/^\.\///' >> $@
0 commit comments