diff options
author | vanhauser-thc <vh@thc.org> | 2021-08-19 17:02:17 +0200 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2021-08-19 17:02:17 +0200 |
commit | 591d6c59c758d1043f8690e4e9dda22dbbefbc1c (patch) | |
tree | 1df877b5654cfa065b37a1796d2f077a2540308a /src | |
parent | 1959812e83becb0895b924d0398d634055cd0c10 (diff) | |
download | afl++-591d6c59c758d1043f8690e4e9dda22dbbefbc1c.tar.gz |
fix shared linking on macos
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-cc.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c index a61635a2..e49addc4 100644 --- a/src/afl-cc.c +++ b/src/afl-cc.c @@ -793,6 +793,7 @@ static void edit_params(u32 argc, char **argv, char **envp) { if (!strcmp(cur, "-x")) x_set = 1; if (!strcmp(cur, "-E")) preprocessor_only = 1; if (!strcmp(cur, "-shared")) shared_linking = 1; + if (!strcmp(cur, "-dynamiclib")) shared_linking = 1; if (!strcmp(cur, "-Wl,-r")) partial_linking = 1; if (!strcmp(cur, "-Wl,-i")) partial_linking = 1; if (!strcmp(cur, "-Wl,--relocatable")) partial_linking = 1; @@ -1085,6 +1086,18 @@ static void edit_params(u32 argc, char **argv, char **envp) { alloc_printf("-Wl,--dynamic-list=%s/dynamic_list.txt", obj_path); #endif + #if defined(__APPLE__) + if (shared_linking || partial_linking) { + + cc_params[cc_par_cnt++] = "-Wl,-U"; + cc_params[cc_par_cnt++] = "-Wl,___afl_area_ptr"; + cc_params[cc_par_cnt++] = "-Wl,-U"; + cc_params[cc_par_cnt++] = "-Wl,___sanitizer_cov_trace_pc_guard_init"; + + } + + #endif + } #if defined(USEMMAP) && !defined(__HAIKU__) |