Index: include/memory
===================================================================
--- include/memory	(revision 173248)
+++ include/memory	(working copy)
@@ -3629,10 +3629,9 @@
     long use_count() const _NOEXCEPT {return __shared_count::use_count();}
     __shared_weak_count* lock() _NOEXCEPT;
 
-    // purposefully not protected with #ifndef _LIBCPP_NO_RTTI because doing so
-    //  breaks ABI for those clients who need to compile their projects with
-    //    -fno-rtti and yet link against a libc++.dylib compiled without -fno-rtti.
+#ifndef _LIBCPP_NO_RTTI
     virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;
+#endif _LIBCPP_NO_RTTI
 private:
     virtual void __on_zero_shared_weak() _NOEXCEPT = 0;
 };
Index: src/exception.cpp
===================================================================
--- src/exception.cpp	(revision 173248)
+++ src/exception.cpp	(working copy)
@@ -97,6 +97,16 @@
     }
 #endif  // _LIBCPP_NO_EXCEPTIONS
 }
+
+#else // !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
+
+_LIBCPP_NORETURN
+void
+terminate() _NOEXCEPT
+{
+        ::abort ();
+}
+
 #endif // !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
 
 #if !defined(LIBCXXRT) && !defined(__GLIBCXX__)
@@ -123,7 +133,26 @@
 }
 
 #endif  // _LIBCPPABI_VERSION
-#endif //LIBCXXRT
+#else //LIBCXXRT
+
+bool uncaught_exception() _NOEXCEPT {
+    #warning uncaught_exception not yet implemented
+    ::abort();
+}
+
+#ifndef _LIBCPPABI_VERSION
+exception::~exception() _NOEXCEPT
+{
+}
+
+const char* exception::what() const _NOEXCEPT
+{
+  return "std::exception";
+}
+#endif  // _LIBCPPABI_VERSION
+
+#endif  // LIBCXXRT
+
 #if !defined(_LIBCPPABI_VERSION) && !defined(__GLIBCXX__)
 
 bad_exception::~bad_exception() _NOEXCEPT
