about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-08-19 17:02:17 +0200
committervanhauser-thc <vh@thc.org>2021-08-19 17:02:17 +0200
commit591d6c59c758d1043f8690e4e9dda22dbbefbc1c (patch)
tree1df877b5654cfa065b37a1796d2f077a2540308a /src
parent1959812e83becb0895b924d0398d634055cd0c10 (diff)
downloadafl++-591d6c59c758d1043f8690e4e9dda22dbbefbc1c.tar.gz
fix shared linking on macos
Diffstat (limited to 'src')
-rw-r--r--src/afl-cc.c13
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__)