asan: fix android build

android does not have dlvsym

llvm-svn: 189781
This commit is contained in:
Dmitry Vyukov 2013-09-03 07:53:49 +00:00
parent 59039dc1bf
commit 23b80ab87f
2 changed files with 4 additions and 0 deletions

View File

@ -24,9 +24,11 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
return real == wrapper;
}
#if !defined(__ANDROID__) // android does not have dlvsym
void *GetFuncAddrVer(const char *func_name, const char *ver) {
return dlvsym(RTLD_NEXT, func_name, ver);
}
#endif // !defined(__ANDROID__)
} // namespace __interception

View File

@ -34,10 +34,12 @@ void *GetFuncAddrVer(const char *func_name, const char *ver);
(::__interception::uptr)&(func), \
(::__interception::uptr)&WRAP(func))
#if !defined(__ANDROID__) // android does not have dlvsym
#define INTERCEPT_FUNCTION_VER(func, funcver, symver) \
__asm__(".symver "#funcver","#func"@"#symver); \
::__interception::real_##funcver = (funcver##_f)(unsigned long) \
::__interception::GetFuncAddrVer(#func, #symver)
#endif // !defined(__ANDROID__)
#endif // INTERCEPTION_LINUX_H
#endif // __linux__