aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-05-22 20:59:32 +0200
committervan Hauser <vh@thc.org>2020-05-22 20:59:32 +0200
commit38fe1c60666d9e8cb3d7b825e5a926111b2160d5 (patch)
treecd6fd9bef181c3d0b235f6145fec7457a6fe2660
parent74f01881e36e45005ed2080e351323367532ee01 (diff)
downloadafl++-38fe1c60666d9e8cb3d7b825e5a926111b2160d5.tar.gz
more help for LTO issues
-rw-r--r--llvm_mode/README.lto.md11
-rw-r--r--src/afl-forkserver.c2
2 files changed, 10 insertions, 3 deletions
diff --git a/llvm_mode/README.lto.md b/llvm_mode/README.lto.md
index fa5b8665..88b1517d 100644
--- a/llvm_mode/README.lto.md
+++ b/llvm_mode/README.lto.md
@@ -6,8 +6,6 @@ This version requires a current llvm 11 compiled from the github master.
1. Use afl-clang-lto/afl-clang-lto++ because it is faster and gives better
coverage than anything else that is out there in the AFL world
- 1a. Set AFL_LLVM_INSTRUMENT=CFG if you want the InsTrimLTO version
- (recommended)
2. You can use it together with llvm_mode: laf-intel and whitelisting
features and can be combined with cmplog/Redqueen
@@ -20,6 +18,8 @@ This version requires a current llvm 11 compiled from the github master.
note that if that target uses _init functions or early constructors then
also set `AFL_LLVM_MAP_DYNAMIC=1` as your target will crash otherwise
+6. If you get the error `error: Invalid record` at link time you must decide
+ between LTO or cmplog/laf-intel
## Introduction and problem description
@@ -134,6 +134,13 @@ and on some target you have to to AR=/RANLIB= even for make as the configure scr
Other targets ignore environment variables and need the parameters set via
`./configure --cc=... --cxx= --ranlib= ...` etc. (I am looking at you ffmpeg!).
+### error: Invalid record
+
+This error only occurs if cmplog or laf-intel were activated.
+If you see the error `error: Invalid record` at link time then an
+instrumentation went wrong. You now must choose, either use afl-clang-fast
+and keep cmplog/laf-intel, or drop cmplog/laf-intel and keep using afl-clang-lto.
+
### compiling programs still fail
afl-clang-lto is still work in progress.
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 1c0ba349..076fa392 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -679,7 +679,7 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
"Hmm, looks like the target binary terminated before we could"
"complete a handshake with the injected code.\n"
"If the target was compiled with afl-clang-lto then recompiling with"
- "AFL_LLVM_MAP_DYNAMIC might solve your problem.\n"
+ " AFL_LLVM_MAP_DYNAMIC might solve your problem.\n"
"Otherwise there is a horrible bug in the fuzzer.\n"
"Poke <afl-users@googlegroups.com> for troubleshooting tips.\n");