diff options
author | Jesse Schwartzentruber <truber@mozilla.com> | 2023-10-19 17:14:31 -0400 |
---|---|---|
committer | Jesse Schwartzentruber <truber@mozilla.com> | 2023-10-23 21:57:21 -0400 |
commit | cf458a7d25dc3448b94ffe08d3d89531fc8d4818 (patch) | |
tree | bfa47476716ba9d5760c86b3221c93307da0bd8c /src | |
parent | eaa6a1754a2efa54903959a5b3ce3d433dcdea37 (diff) | |
download | afl++-cf458a7d25dc3448b94ffe08d3d89531fc8d4818.tar.gz |
Add an env to afl-clang-fast to disable setting rpath if LLVM path isn't
recognized
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-cc.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c index 037a5c30..5f8f278f 100644 --- a/src/afl-cc.c +++ b/src/afl-cc.c @@ -1144,19 +1144,22 @@ static void edit_params(u32 argc, char **argv, char **envp) { if (!have_pic) { cc_params[cc_par_cnt++] = "-fPIC"; } - // in case LLVM is installed not via a package manager or "make install" - // e.g. compiled download or compiled from github then its ./lib directory - // might not be in the search path. Add it if so. - u8 *libdir = strdup(LLVM_LIBDIR); - if (plusplus_mode && strlen(libdir) && strncmp(libdir, "/usr", 4) && - strncmp(libdir, "/lib", 4)) { + if (!getenv("AFL_LLVM_NO_RPATH")) { + // in case LLVM is installed not via a package manager or "make install" + // e.g. compiled download or compiled from github then its ./lib directory + // might not be in the search path. Add it if so. + u8 *libdir = strdup(LLVM_LIBDIR); + if (plusplus_mode && strlen(libdir) && strncmp(libdir, "/usr", 4) && + strncmp(libdir, "/lib", 4)) { - cc_params[cc_par_cnt++] = "-Wl,-rpath"; - cc_params[cc_par_cnt++] = libdir; + cc_params[cc_par_cnt++] = "-Wl,-rpath"; + cc_params[cc_par_cnt++] = libdir; - } else { + } else { - free(libdir); + free(libdir); + + } } @@ -2289,7 +2292,9 @@ int main(int argc, char **argv, char **envp) { " AFL_LLVM_CTX: use full context sensitive coverage (for " "CLASSIC)\n" " AFL_LLVM_NGRAM_SIZE: use ngram prev_loc count coverage (for " - "CLASSIC)\n"); + "CLASSIC)\n" + " AFL_LLVM_NO_RPATH: disable rpath setting for custom LLVM " + "locations\n"); #ifdef AFL_CLANG_FLTO if (have_lto) |