aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJesse Schwartzentruber <truber@mozilla.com>2023-10-19 17:14:31 -0400
committerJesse Schwartzentruber <truber@mozilla.com>2023-10-23 21:57:21 -0400
commitcf458a7d25dc3448b94ffe08d3d89531fc8d4818 (patch)
treebfa47476716ba9d5760c86b3221c93307da0bd8c /src
parenteaa6a1754a2efa54903959a5b3ce3d433dcdea37 (diff)
downloadafl++-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.c27
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)