Index: lib/xray/xray_x86_64.cc =================================================================== --- lib/xray/xray_x86_64.cc +++ lib/xray/xray_x86_64.cc @@ -6,6 +6,8 @@ #if SANITIZER_FREEBSD || SANITIZER_NETBSD #include #include +#elif SANITIZER_MAC +#include #endif #include @@ -92,6 +94,19 @@ return 0; } +#elif SANITIZER_MAC +static const mach_timebase_info_data_t TI = [] { + mach_timebase_info_data_t LocalTI; + mach_timebase_info(&LocalTI); + return LocalTI; +}(); + +uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { + uint64_t currentTime = mach_absolute_time(); + currentTime *= TI.numer; + currentTime /= TI.denom; + return currentTime; +} #else uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { /* Not supported */