fix instrumentlist for LTO with clang < 13

This commit is contained in:
vanhauser-thc
2022-03-30 09:16:47 +02:00
parent b34751efbf
commit a436ef47e5
2 changed files with 5 additions and 0 deletions

View File

@ -577,6 +577,8 @@ static void edit_params(u32 argc, char **argv, char **envp) {
#if defined(AFL_CLANG_LDPATH) && LLVM_MAJOR >= 13 #if defined(AFL_CLANG_LDPATH) && LLVM_MAJOR >= 13
cc_params[cc_par_cnt++] = "-Wl,--lto-legacy-pass-manager"; cc_params[cc_par_cnt++] = "-Wl,--lto-legacy-pass-manager";
#else
cc_params[cc_par_cnt++] = "-fno-experimental-new-pass-manager";
#endif #endif
cc_params[cc_par_cnt++] = "-Wl,--allow-multiple-definition"; cc_params[cc_par_cnt++] = "-Wl,--allow-multiple-definition";

View File

@ -49,6 +49,9 @@ test -e ../afl-clang-lto -a -e ../SanitizerCoverageLTO.so && {
grep -q "No instrumentation targets found" test.out && { grep -q "No instrumentation targets found" test.out && {
$ECHO "$GREEN[+] llvm_mode LTO instrumentlist feature works correctly" $ECHO "$GREEN[+] llvm_mode LTO instrumentlist feature works correctly"
} || { } || {
echo CUT------------------------------------------------------------------CUT
cat test.out
echo CUT------------------------------------------------------------------CUT
$ECHO "$RED[!] llvm_mode LTO instrumentlist feature failed" $ECHO "$RED[!] llvm_mode LTO instrumentlist feature failed"
CODE=1 CODE=1
} }