Implement Runtime::Abort and switch LOG(FATAL) over to it.

Runtime::Abort takes arguments so it can provide less misleading log output,
but this shouldn't matter to callers because they should be using LOG(FATAL)
anyway.

This patch also fixes an errno/errno_ mixup in the logging code.

Change-Id: If24b66b7bbf0bf7c0ecb93dd806d82b1d21ee239
diff --git a/src/logging_android.cc b/src/logging_android.cc
index 9d97dbb..56e2dae 100644
--- a/src/logging_android.cc
+++ b/src/logging_android.cc
@@ -7,24 +7,25 @@
 #include <unistd.h>
 
 #include "cutils/log.h"
+#include "runtime.h"
 
 static const int kLogSeverityToAndroidLogPriority[] = {
   ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL
 };
 
 LogMessage::LogMessage(const char* file, int line, LogSeverity severity, int error)
-: severity_(severity), errno_(error)
+: file_(file), line_(line), severity_(severity), errno_(error)
 {
 }
 
 LogMessage::~LogMessage() {
   if (errno_ != -1) {
-    stream() << ": " << strerror(errno);
+    stream() << ": " << strerror(errno_);
   }
   int priority = kLogSeverityToAndroidLogPriority[severity_];
   LOG_PRI(priority, LOG_TAG, "%s", buffer_.str().c_str());
   if (severity_ == FATAL) {
-    abort();  // TODO: dvmAbort
+    art::Runtime::Abort(file_, line_);
   }
 }