[ASan] One more attempt to fix Android build
authorAlexey Samsonov <samsonov@google.com>
Wed, 2 Apr 2014 09:36:36 +0000 (09:36 +0000)
committerAlexey Samsonov <samsonov@google.com>
Wed, 2 Apr 2014 09:36:36 +0000 (09:36 +0000)
llvm-svn: 205411

compiler-rt/lib/asan/asan_linux.cc

index 962a0abc07b213c5aec11295b9e822dbd2f830bb..8ad9de781a491dd05b86e9a95dd8452f18ddc67a 100644 (file)
@@ -76,7 +76,11 @@ void *AsanDoesNotSupportStaticLinkage() {
   return &_DYNAMIC;  // defined in link.h
 }
 
-#if !SANITIZER_ANDROID
+#if SANITIZER_ANDROID
+// FIXME: should we do anything for Android?
+void AsanCheckDynamicRTPrereqs() {}
+void AsanCheckIncompatibleRT() {}
+#else
 static int FindFirstDSOCallback(struct dl_phdr_info *info, size_t size,
                                 void *data) {
   // Continue until the first dynamic library is found
@@ -86,7 +90,6 @@ static int FindFirstDSOCallback(struct dl_phdr_info *info, size_t size,
   *(const char **)data = info->dlpi_name;
   return 1;
 }
-#endif
 
 static bool IsDynamicRTName(const char *libname) {
   return internal_strstr(libname, "libclang_rt.asan") ||
@@ -94,8 +97,6 @@ static bool IsDynamicRTName(const char *libname) {
 }
 
 void AsanCheckDynamicRTPrereqs() {
-  // FIXME: can we do something like this for Android?
-#if !SANITIZER_ANDROID
   // Ensure that dynamic RT is the first DSO in the list
   const char *first_dso_name = 0;
   dl_iterate_phdr(FindFirstDSOCallback, &first_dso_name);
@@ -105,11 +106,9 @@ void AsanCheckDynamicRTPrereqs() {
            "manually preload it with LD_PRELOAD.\n");
     Die();
   }
-#endif
 }
 
 void AsanCheckIncompatibleRT() {
-#if !SANITIZER_ANDROID
   if (ASAN_DYNAMIC) {
     if (__asan_rt_version == ASAN_RT_VERSION_UNDEFINED) {
       __asan_rt_version = ASAN_RT_VERSION_DYNAMIC;
@@ -136,8 +135,8 @@ void AsanCheckIncompatibleRT() {
     CHECK_NE(__asan_rt_version, ASAN_RT_VERSION_DYNAMIC);
     __asan_rt_version = ASAN_RT_VERSION_STATIC;
   }
-#endif
 }
+#endif  // SANITIZER_ANDROID
 
 void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) {
 #if defined(__arm__)