Index: lib/sanitizer_common/sanitizer_linux_libcdep.cc =================================================================== --- lib/sanitizer_common/sanitizer_linux_libcdep.cc +++ lib/sanitizer_common/sanitizer_linux_libcdep.cc @@ -770,11 +770,14 @@ // vDSO function pointers haven't been initialized yet. __progname is // initialized after the vDSO function pointers, so if it exists, is not null // and is not empty, we can use clock_gettime. +namespace __interception { int (*real_clock_gettime)(u32 clk_id, void *tp); } extern "C" SANITIZER_WEAK_ATTRIBUTE char *__progname; INLINE bool CanUseVDSO() { // Bionic is safe, it checks for the vDSO function pointers to be initialized. if (SANITIZER_ANDROID) return true; + if (!__interception::real_clock_gettime) + return false; if (&__progname && __progname && *__progname) return true; return false;