[PATCH] D37716: Runtime detection of android_set_abort_message.

Evgenii Stepanov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 11 16:29:32 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL312973: Runtime detection of android_set_abort_message. (authored by eugenis).

Changed prior to commit:
  https://reviews.llvm.org/D37716?vs=114718&id=114733#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D37716

Files:
  compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  compiler-rt/trunk/lib/ubsan_minimal/ubsan_minimal_handlers.cc


Index: compiler-rt/trunk/lib/ubsan_minimal/ubsan_minimal_handlers.cc
===================================================================
--- compiler-rt/trunk/lib/ubsan_minimal/ubsan_minimal_handlers.cc
+++ compiler-rt/trunk/lib/ubsan_minimal/ubsan_minimal_handlers.cc
@@ -44,11 +44,9 @@
 }
 
 #if defined(__ANDROID__)
-extern "C" void android_set_abort_message(const char *msg);
+extern "C" __attribute__((weak)) void android_set_abort_message(const char *);
 static void abort_with_message(const char *msg) {
-#if __ANDROID_API__ >= 21
-  android_set_abort_message(msg);
-#endif
+  if (&android_set_abort_message) android_set_abort_message(msg);
   abort();
 }
 #else
Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc
===================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc
@@ -553,9 +553,11 @@
     WriteToSyslog(str);
 }
 
-#if SANITIZER_ANDROID && __ANDROID_API__ >= 21
-extern "C" void android_set_abort_message(const char *msg);
-void SetAbortMessage(const char *str) { android_set_abort_message(str); }
+#if SANITIZER_ANDROID
+extern "C" __attribute__((weak)) void android_set_abort_message(const char *);
+void SetAbortMessage(const char *str) {
+  if (&android_set_abort_message) android_set_abort_message(str);
+}
 #else
 void SetAbortMessage(const char *str) {}
 #endif


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37716.114733.patch
Type: text/x-patch
Size: 1457 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170911/9c02efeb/attachment.bin>


More information about the llvm-commits mailing list