diff --git a/libcxx/lib/abi/CHANGELOG.TXT b/libcxx/lib/abi/CHANGELOG.TXT
index 518a212..782a9b7 100644
--- a/libcxx/lib/abi/CHANGELOG.TXT
+++ b/libcxx/lib/abi/CHANGELOG.TXT
@@ -16,6 +16,23 @@
 Version 9.0
 -----------
 
+* rXXXXX - Re-rexport missing symbols from libc++abi
+
+  libc++ now re-exports `__cxa_throw_bad_array_new_length` and `__cxa_uncaught_exceptions`,
+  both of which are provided by libc++abi. This is not an ABI break because
+  we're just adding symbols. Also, this does mean that libc++ can't be linked
+  against an older version of libc++abi that doesn't provide those symbols,
+  however doing so is not supported anyway.
+
+  x86_64-unknown-linux-gnu
+  ------------------------
+  TODO
+
+  x86_64-apple-apple-darwin
+  -------------------------
+  Symbol added: ___cxa_throw_bad_array_new_length
+  Symbol added: ___cxa_uncaught_exceptions
+
 * r356518 - Integrate <filesystem> support into the shared library
 
   This patch introduces support for <filesystem> into the shared library,
diff --git a/libcxx/lib/abi/x86_64-apple-darwin.v1.abilist b/libcxx/lib/abi/x86_64-apple-darwin.v1.abilist
index bfcc5c5..2e405c9 100644
--- a/libcxx/lib/abi/x86_64-apple-darwin.v1.abilist
+++ b/libcxx/lib/abi/x86_64-apple-darwin.v1.abilist
@@ -2321,7 +2321,10 @@
 {'is_defined': False, 'name': '___cxa_rethrow_primary_exception', 'type': 'U'}
 {'is_defined': False, 'name': '___cxa_throw', 'type': 'U'}
 {'is_defined': True, 'name': '___cxa_throw', 'type': 'I'}
+{'is_defined': False, 'name': '___cxa_throw_bad_array_new_length', 'type': 'U'}
+{'is_defined': True, 'name': '___cxa_throw_bad_array_new_length', 'type': 'I'}
 {'is_defined': False, 'name': '___cxa_uncaught_exceptions', 'type': 'U'}
+{'is_defined': True, 'name': '___cxa_uncaught_exceptions', 'type': 'I'}
 {'is_defined': False, 'name': '___cxa_vec_cctor', 'type': 'U'}
 {'is_defined': True, 'name': '___cxa_vec_cctor', 'type': 'I'}
 {'is_defined': False, 'name': '___cxa_vec_cleanup', 'type': 'U'}
diff --git a/libcxx/lib/libc++abi.v2.exp b/libcxx/lib/libc++abi.v2.exp
index 40c055d..dfc308f 100644
--- a/libcxx/lib/libc++abi.v2.exp
+++ b/libcxx/lib/libc++abi.v2.exp
@@ -15,6 +15,8 @@
 ___cxa_deleted_virtual
 ___cxa_begin_catch
 ___cxa_throw
+___cxa_throw_bad_array_new_length
+___cxa_uncaught_exceptions
 ___cxa_vec_cctor
 ___cxa_vec_cleanup
 ___cxa_vec_ctor
diff --git a/libcxx/utils/libcxx/test/target_info.py b/libcxx/utils/libcxx/test/target_info.py
index 2f2e395..6da30e6 100644
--- a/libcxx/utils/libcxx/test/target_info.py
+++ b/libcxx/utils/libcxx/test/target_info.py
@@ -156,15 +156,6 @@
             env['DYLD_LIBRARY_PATH'] = ':'.join(library_paths)
 
     def allow_cxxabi_link(self):
-        # FIXME: PR27405
-        # libc++ *should* export all of the symbols found in libc++abi on OS X.
-        # For this reason LibcxxConfiguration will not link libc++abi in OS X.
-        # However __cxa_throw_bad_new_array_length doesn't get exported into
-        # libc++ yet so we still need to explicitly link libc++abi when testing
-        # libc++abi
-        # See PR22654.
-        if(self.full_config.get_lit_conf('name', '') == 'libc++abi'):
-            return True
         # Don't link libc++abi explicitly on OS X because the symbols
         # should be available in libc++ directly.
         return False
diff --git a/libcxxabi/test/uncaught_exception.pass.sh.cpp b/libcxxabi/test/uncaught_exception.pass.sh.cpp
new file mode 100644
index 0000000..ccb10f2
--- /dev/null
+++ b/libcxxabi/test/uncaught_exception.pass.sh.cpp
@@ -0,0 +1,34 @@
+//===------------------- uncaught_exceptions.pass.cpp ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: libcxxabi-no-exceptions
+
+// This tests that libc++abi still provides __cxa_uncaught_exception() for
+// ABI compatibility, even though the Standard doesn't require it to.
+//
+// We need to explicitly link against libc++abi, because libc++ does not
+// re-export this symbol.
+
+// RUN: %build -lc++abi -o %t.exe
+// RUN: %t.exe
+
+#include <cxxabi.h>
+#include <cassert>
+
+// namespace __cxxabiv1 {
+//      extern bool __cxa_uncaught_exception () throw();
+// }
+
+struct A {
+    ~A() { assert( __cxxabiv1::__cxa_uncaught_exception()); }
+};
+
+int main () {
+    try { A a; throw 3; assert(false); }
+    catch (int) {}
+}
diff --git a/libcxxabi/test/uncaught_exceptions.pass.cpp b/libcxxabi/test/uncaught_exceptions.pass.cpp
index 2a19ca3..f4b2d36 100644
--- a/libcxxabi/test/uncaught_exceptions.pass.cpp
+++ b/libcxxabi/test/uncaught_exceptions.pass.cpp
@@ -9,29 +9,19 @@
 // UNSUPPORTED: libcxxabi-no-exceptions
 
 #include <cxxabi.h>
-#include <exception>
 #include <cassert>
 
 // namespace __cxxabiv1 {
-//      extern bool          __cxa_uncaught_exception () throw();
-//      extern unsigned int  __cxa_uncaught_exceptions() throw();
+//      extern unsigned int __cxa_uncaught_exceptions() throw();
 // }
 
 struct A {
-    ~A() { assert( __cxxabiv1::__cxa_uncaught_exception()); }
-    };
-
-struct B {
-    B(unsigned cnt) : data_(cnt) {}
-    ~B() { assert( data_ == __cxxabiv1::__cxa_uncaught_exceptions()); }
+    A(unsigned cnt) : data_(cnt) {}
+    ~A() { assert( data_ == __cxxabiv1::__cxa_uncaught_exceptions()); }
     unsigned data_;
-    };
+};
 
-int main ()
-{
-    try { A a; throw 3; assert (false); }
-    catch (int) {}
-    
-    try { B b(1); throw 3; assert (false); }
+int main () {
+    try { A a(1); throw 3; assert(false); }
     catch (int) {}
 }
