diff --git a/libafl_targets/build.rs b/libafl_targets/build.rs index 7950fe902e..1ec3934f64 100644 --- a/libafl_targets/build.rs +++ b/libafl_targets/build.rs @@ -19,10 +19,16 @@ fn main() { let mut sancov_cmp = cc::Build::new(); #[cfg(feature = "sancov_value_profile")] - sancov_cmp.define("SANCOV_VALUE_PROFILE", "1"); + { + sancov_cmp.define("SANCOV_VALUE_PROFILE", "1"); + println!("cargo:rerun-if-changed=src/value_profile.h"); + } #[cfg(feature = "sancov_cmplog")] - sancov_cmp.define("SANCOV_CMPLOG", "1"); + { + sancov_cmp.define("SANCOV_CMPLOG", "1"); + println!("cargo:rerun-if-changed=src/cmplog.h"); + } sancov_cmp .file(_src_dir.join("sancov_cmp.c")) diff --git a/libafl_targets/src/sancov_cmp.c b/libafl_targets/src/sancov_cmp.c index 2c2588e913..33cbd31daf 100644 --- a/libafl_targets/src/sancov_cmp.c +++ b/libafl_targets/src/sancov_cmp.c @@ -8,43 +8,6 @@ #include "cmplog.h" #endif -#if defined(__APPLE__) - -void __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2); -void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2) { - __sanitizer_cov_trace_cmp1(arg1, arg2); -} - -void __sanitizer_cov_trace_cmp2(uint16_t arg1, uint16_t arg2); -void __sanitizer_cov_trace_const_cmp2(uint16_t arg1, uint16_t arg2) { - __sanitizer_cov_trace_cmp2(arg1, arg2); -} - -void __sanitizer_cov_trace_cmp4(uint32_t arg1, uint32_t arg2); -void __sanitizer_cov_trace_const_cmp4(uint32_t arg1, uint32_t arg2) { - __sanitizer_cov_trace_cmp4(arg1, arg2); -} - -void __sanitizer_cov_trace_cmp8(uint64_t arg1, uint64_t arg2); -void __sanitizer_cov_trace_const_cmp8(uint64_t arg1, uint64_t arg2) { - __sanitizer_cov_trace_cmp8(arg1, arg2); -} - -#elif defined(_MSC_VER) - #pragma comment(linker, "/alternatename:__sanitizer_cov_trace_const_cmp1=__sanitizer_cov_trace_cmp1") - #pragma comment(linker, "/alternatename:__sanitizer_cov_trace_const_cmp2=__sanitizer_cov_trace_cmp2") - #pragma comment(linker, "/alternatename:__sanitizer_cov_trace_const_cmp4=__sanitizer_cov_trace_cmp4") - #pragma comment(linker, "/alternatename:__sanitizer_cov_trace_const_cmp8=__sanitizer_cov_trace_cmp8") -#else -void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2) __attribute__((alias("__sanitizer_cov_trace_cmp1"))); -void __sanitizer_cov_trace_const_cmp2(uint16_t arg1, uint16_t arg2) - __attribute__((alias("__sanitizer_cov_trace_cmp2"))); -void __sanitizer_cov_trace_const_cmp4(uint32_t arg1, uint32_t arg2) - __attribute__((alias("__sanitizer_cov_trace_cmp4"))); -void __sanitizer_cov_trace_const_cmp8(uint64_t arg1, uint64_t arg2) - __attribute__((alias("__sanitizer_cov_trace_cmp8"))); -#endif - void __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2) { uintptr_t k = RETADDR; @@ -147,3 +110,18 @@ void __sanitizer_cov_trace_switch(uint64_t val, uint64_t *cases) { } +void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2) { + __sanitizer_cov_trace_cmp1(arg1, arg2); +} + +void __sanitizer_cov_trace_const_cmp2(uint16_t arg1, uint16_t arg2) { + __sanitizer_cov_trace_cmp2(arg1, arg2); +} + +void __sanitizer_cov_trace_const_cmp4(uint32_t arg1, uint32_t arg2) { + __sanitizer_cov_trace_cmp4(arg1, arg2); +} + +void __sanitizer_cov_trace_const_cmp8(uint64_t arg1, uint64_t arg2) { + __sanitizer_cov_trace_cmp8(arg1, arg2); +}