Switch to the new bionic fatal logging interface.

This is more general and will work for anyone's custom logging
code, as long as they use ANDROID_LOG_FATAL priority.

Change-Id: Iaf7fc0858fce04f3af407882a58ee5a827d50ddd
diff --git a/liblog/logd_write_kern.c b/liblog/logd_write_kern.c
index 8c707ad..982beaa 100644
--- a/liblog/logd_write_kern.c
+++ b/liblog/logd_write_kern.c
@@ -173,6 +173,13 @@
             tag = tmp_tag;
     }
 
+#if __BIONIC__
+    if (prio == ANDROID_LOG_FATAL) {
+        extern void __android_set_abort_message(const char*);
+        __android_set_abort_message(msg);
+    }
+#endif
+
     vec[0].iov_base   = (unsigned char *) &prio;
     vec[0].iov_len    = 1;
     vec[1].iov_base   = (void *) tag;
@@ -272,14 +279,8 @@
             strcpy(buf, "Unspecified assertion failed");
     }
 
-#if __BIONIC__
-    // Ensure debuggerd gets to see what went wrong by keeping the C library in the loop.
-    extern __noreturn void __android_fatal(const char* tag, const char* format, ...) __printflike(2, 3);
-    __android_fatal(tag ? tag : "", "%s", buf);
-#else
     __android_log_write(ANDROID_LOG_FATAL, tag, buf);
     __builtin_trap(); /* trap so we have a chance to debug the situation */
-#endif
     /* NOTREACHED */
 }