Report errors to the log, not just stderr.

In particular this affects assert(3) and __cxa_pure_virtual, both of
which have managed to confuse people this week by apparently aborting
without reason. (Because stderr goes nowhere, normally.)

Bug: 6852995
Bug: 6840813
Change-Id: I7f5d17d5ddda439e217b7932096702dc013b9142
diff --git a/libstdc++/src/pure_virtual.cpp b/libstdc++/src/pure_virtual.cpp
index 663c1e9..affb80f 100644
--- a/libstdc++/src/pure_virtual.cpp
+++ b/libstdc++/src/pure_virtual.cpp
@@ -1,10 +1,8 @@
+#undef NDEBUG
+#include <assert.h>
 
-#include <stdio.h>
-#include <stdlib.h>
-
-extern "C" void __cxa_pure_virtual()
-{
-    fprintf(stderr, "Pure virtual function called.  Are you calling virtual methods from a destructor?\n");
-    abort();
+extern "C" void __cxa_pure_virtual() {
+  // We can't call __libc_android_log_write from libstdc++ because it's private, so cheat.
+  assert(!"Pure virtual function called. Are you calling virtual methods from a destructor?");
+  /* NOTREACHED */
 }
-