This commit is contained in:
van Hauser
2020-12-15 09:37:52 +01:00
parent df7c72fd66
commit e0ab846f7f
3 changed files with 26 additions and 4 deletions

View File

@ -4,7 +4,7 @@
![Travis State](https://api.travis-ci.com/AFLplusplus/AFLplusplus.svg?branch=stable) ![Travis State](https://api.travis-ci.com/AFLplusplus/AFLplusplus.svg?branch=stable)
Release Version: [2.68c](https://github.com/AFLplusplus/AFLplusplus/releases) Release Version: [3.00c](https://github.com/AFLplusplus/AFLplusplus/releases)
Github Version: 3.00a Github Version: 3.00a

View File

@ -28,7 +28,7 @@
/* Version string: */ /* Version string: */
// c = release, d = volatile github dev, e = experimental branch // c = release, d = volatile github dev, e = experimental branch
#define VERSION "++3.00a" #define VERSION "++3.00c"
/****************************************************** /******************************************************
* * * *

View File

@ -69,6 +69,7 @@ enum {
INSTRUMENT_INSTRIM = 3, INSTRUMENT_INSTRIM = 3,
INSTRUMENT_CFG = 3, INSTRUMENT_CFG = 3,
INSTRUMENT_LTO = 4, INSTRUMENT_LTO = 4,
INSTRUMENT_LLVMNATIVE = 5,
INSTRUMENT_OPT_CTX = 8, INSTRUMENT_OPT_CTX = 8,
INSTRUMENT_OPT_NGRAM = 16 INSTRUMENT_OPT_NGRAM = 16
@ -76,8 +77,9 @@ enum {
char instrument_mode_string[18][18] = { char instrument_mode_string[18][18] = {
"DEFAULT", "CLASSIC", "PCGUARD", "CFG", "LTO", "", "", "", "CTX", "", "DEFAULT", "CLASSIC", "PCGUARD", "CFG", "LTO", "", "PCGUARD-NATIVE",
"", "", "", "", "", "", "NGRAM", "" "", "CTX", "", "", "", "", "",
"", "", "NGRAM", ""
}; };
@ -580,6 +582,14 @@ static void edit_params(u32 argc, char **argv, char **envp) {
#endif #endif
#endif #endif
} else if (instrument_mode == INSTRUMENT_LLVMNATIVE) {
#if LLVM_MAJOR >= 4
cc_params[cc_par_cnt++] = "-fsanitize-coverage=trace-pc-guard";
#else
FATAL("pcguard instrumentation requires llvm 4.0.1+");
#endif
} else { } else {
cc_params[cc_par_cnt++] = "-Xclang"; cc_params[cc_par_cnt++] = "-Xclang";
@ -1162,6 +1172,18 @@ int main(int argc, char **argv, char **envp) {
} }
// this is a hidden option
if (strncasecmp(ptr, "llvmnative", strlen("llvmnative")) == 0 ||
strncasecmp(ptr, "llvm-native", strlen("llvm-native")) == 0) {
if (!instrument_mode || instrument_mode == INSTRUMENT_LLVMNATIVE)
instrument_mode = INSTRUMENT_LLVMNATIVE;
else
FATAL("main instrumentation mode already set with %s",
instrument_mode_string[instrument_mode]);
}
if (strncasecmp(ptr, "cfg", strlen("cfg")) == 0 || if (strncasecmp(ptr, "cfg", strlen("cfg")) == 0 ||
strncasecmp(ptr, "instrim", strlen("instrim")) == 0) { strncasecmp(ptr, "instrim", strlen("instrim")) == 0) {