Index: src/cxa_new_delete.cpp
===================================================================
--- src/cxa_new_delete.cpp	(revision 192592)
+++ src/cxa_new_delete.cpp	(working copy)
@@ -162,6 +162,40 @@
 }
 
 /*
+[new.delete.single]
+
+calls operator delete(ptr)
+*/
+__attribute__((__weak__, __visibility__("default")))
+void
+operator delete(void* ptr, size_t)
+#if __has_feature(cxx_noexcept)
+    noexcept
+#else
+    throw()
+#endif
+{
+    ::operator delete(ptr);
+}
+
+/*
+[new.delete.single]
+
+calls operator delete(ptr)
+*/
+__attribute__((__weak__, __visibility__("default")))
+void
+operator delete(void* ptr, size_t, const std::nothrow_t&)
+#if __has_feature(cxx_noexcept)
+    noexcept
+#else
+    throw()
+#endif
+{
+    ::operator delete(ptr);
+}
+
+/*
 [new.delete.array]
 
 Calls operator delete(ptr)
@@ -195,6 +229,41 @@
     ::operator delete[](ptr);
 }
 
+/*
+[new.delete.array]
+
+calls operator delete[](ptr)
+*/
+__attribute__((__weak__, __visibility__("default")))
+void
+operator delete[] (void* ptr, size_t)
+#if __has_feature(cxx_noexcept)
+    noexcept
+#else
+    throw()
+#endif
+{
+    ::operator delete[](ptr);
+}
+
+/*
+[new.delete.array]
+
+calls operator delete[](ptr)
+*/
+__attribute__((__weak__, __visibility__("default")))
+void
+operator delete[] (void* ptr, size_t, const std::nothrow_t&)
+#if __has_feature(cxx_noexcept)
+    noexcept
+#else
+    throw()
+#endif
+{
+    ::operator delete[](ptr);
+}
+
+
 namespace std
 {
 
