diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 71321055de72f1f193b6a4d453b9d65b5dc7f88f..6d9a8875e3186380075ad6a0f302ee8df5f8c833 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -2599,7 +2599,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [
   AC_MSG_CHECKING([for std::allocator base class])
   GLIBCXX_ENABLE(libstdcxx-allocator,auto,[[[=KIND]]],
     [use KIND for target std::allocator base],
-    [permit new|malloc|mt|bitmap|pool|yes|no|auto])
+    [permit new|malloc|yes|no|auto])
 
   # If they didn't use this option switch, or if they specified --enable
   # with no specific model, we'll have to look for one.  If they
@@ -2631,26 +2631,14 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [
 
   # Set configure bits for specified locale package
   case ${enable_libstdcxx_allocator_flag} in
-    bitmap)
-      ALLOCATOR_H=config/allocator/bitmap_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::bitmap_allocator
-      ;;
     malloc)
       ALLOCATOR_H=config/allocator/malloc_allocator_base.h
       ALLOCATOR_NAME=__gnu_cxx::malloc_allocator
       ;;
-    mt)
-      ALLOCATOR_H=config/allocator/mt_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::__mt_alloc
-      ;;
     new)
       ALLOCATOR_H=config/allocator/new_allocator_base.h
       ALLOCATOR_NAME=__gnu_cxx::new_allocator
       ;;
-    pool)
-      ALLOCATOR_H=config/allocator/pool_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::__pool_alloc
-      ;;
   esac
 
   GLIBCXX_CONDITIONAL(ENABLE_ALLOCATOR_NEW,
diff --git a/libstdc++-v3/config/allocator/bitmap_allocator_base.h b/libstdc++-v3/config/allocator/bitmap_allocator_base.h
deleted file mode 100644
index 40ccbf03449a86a733bd4c50a53198cafa5c3ad8..0000000000000000000000000000000000000000
--- a/libstdc++-v3/config/allocator/bitmap_allocator_base.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Base to std::allocator -*- C++ -*-
-
-// Copyright (C) 2004-2021 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/c++allocator.h
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{memory}
- */
-
-#ifndef _GLIBCXX_CXX_ALLOCATOR_H
-#define _GLIBCXX_CXX_ALLOCATOR_H 1
-
-#include <ext/bitmap_allocator.h>
-
-#if __cplusplus >= 201103L
-namespace std
-{
-  /**
-   *  @brief  An alias to the base class for std::allocator.
-   *  @ingroup allocators
-   *
-   *  Used to set the std::allocator base class to
-   *  __gnu_cxx::bitmap_allocator.
-   *
-   *  @tparam  _Tp  Type of allocated object.
-    */
-  template<typename _Tp>
-    using __allocator_base = __gnu_cxx::bitmap_allocator<_Tp>;
-}
-#else
-// Define bitmap_allocator as the base class to std::allocator.
-# define __allocator_base  __gnu_cxx::bitmap_allocator
-#endif
-
-#endif
diff --git a/libstdc++-v3/config/allocator/mt_allocator_base.h b/libstdc++-v3/config/allocator/mt_allocator_base.h
deleted file mode 100644
index eb45b8dea6da4ed46950ed6d6fbe9e6659a659b4..0000000000000000000000000000000000000000
--- a/libstdc++-v3/config/allocator/mt_allocator_base.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Base to std::allocator -*- C++ -*-
-
-// Copyright (C) 2004-2021 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/c++allocator.h
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{memory}
- */
-
-#ifndef _GLIBCXX_CXX_ALLOCATOR_H
-#define _GLIBCXX_CXX_ALLOCATOR_H 1
-
-#include <ext/mt_allocator.h>
-
-#if __cplusplus >= 201103L
-namespace std
-{
-  /**
-   *  @brief  An alias to the base class for std::allocator.
-   *  @ingroup allocators
-   *
-   *  Used to set the std::allocator base class to
-   *  __gnu_cxx::__mt_alloc.
-   *
-   *  @tparam  _Tp  Type of allocated object.
-    */
-  template<typename _Tp>
-    using __allocator_base = __gnu_cxx::__mt_alloc<_Tp>;
-}
-#else
-// Define __mt_alloc as the base class to std::allocator.
-# define __allocator_base  __gnu_cxx::__mt_alloc
-#endif
-
-#endif
diff --git a/libstdc++-v3/config/allocator/pool_allocator_base.h b/libstdc++-v3/config/allocator/pool_allocator_base.h
deleted file mode 100644
index c3ec8ecce8d240b6c264890009d091fac77097b1..0000000000000000000000000000000000000000
--- a/libstdc++-v3/config/allocator/pool_allocator_base.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Base to std::allocator -*- C++ -*-
-
-// Copyright (C) 2004-2021 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/c++allocator.h
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{memory}
- */
-
-#ifndef _GLIBCXX_CXX_ALLOCATOR_H
-#define _GLIBCXX_CXX_ALLOCATOR_H 1
-
-#include <ext/pool_allocator.h>
-
-#if __cplusplus >= 201103L
-namespace std
-{
-  /**
-   *  @brief  An alias to the base class for std::allocator.
-   *  @ingroup allocators
-   *
-   *  Used to set the std::allocator base class to
-   *  __gnu_cxx::__pool_alloc.
-   *
-   *  @tparam  _Tp  Type of allocated object.
-    */
-  template<typename _Tp>
-    using __allocator_base = __gnu_cxx::__pool_alloc<_Tp>;
-}
-#else
-// Define __pool_alloc as the base class to std::allocator.
-# define __allocator_base  __gnu_cxx::__pool_alloc
-#endif
-
-#endif
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 9049e4b9864bb963e424925ba9301f8db3ac6dca..61a14a2cb3b9f5ff8e3b73d49c7173e070c477a1 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -16848,7 +16848,7 @@ $as_echo_n "checking for std::allocator base class... " >&6; }
 if test "${enable_libstdcxx_allocator+set}" = set; then :
   enableval=$enable_libstdcxx_allocator;
       case "$enableval" in
-       new|malloc|mt|bitmap|pool|yes|no|auto) ;;
+       new|malloc|yes|no|auto) ;;
        *) as_fn_error $? "Unknown argument to enable/disable libstdcxx-allocator" "$LINENO" 5 ;;
 	  	        esac
 
@@ -16889,26 +16889,14 @@ $as_echo "$enable_libstdcxx_allocator_flag" >&6; }
 
   # Set configure bits for specified locale package
   case ${enable_libstdcxx_allocator_flag} in
-    bitmap)
-      ALLOCATOR_H=config/allocator/bitmap_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::bitmap_allocator
-      ;;
     malloc)
       ALLOCATOR_H=config/allocator/malloc_allocator_base.h
       ALLOCATOR_NAME=__gnu_cxx::malloc_allocator
       ;;
-    mt)
-      ALLOCATOR_H=config/allocator/mt_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::__mt_alloc
-      ;;
     new)
       ALLOCATOR_H=config/allocator/new_allocator_base.h
       ALLOCATOR_NAME=__gnu_cxx::new_allocator
       ;;
-    pool)
-      ALLOCATOR_H=config/allocator/pool_allocator_base.h
-      ALLOCATOR_NAME=__gnu_cxx::__pool_alloc
-      ;;
   esac
 
 
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 32810788bf22012b25a1f1e057e88cb74972b199..2cc44aed4e36aa504b9e9d1aaf0b5f25f4bd2532 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -444,4 +444,7 @@ can be used instead.
 The <code class="function">std::unexpected</code> function and related typedef and
 accessors for the unexpected handler are deprecated for C++11 and later.
 Dynamic exception specifications should be replaced with <code class="code">noexcept</code>.
+</p><p>
+The <code class="literal">bitmap</code>, <code class="literal">mt</code>, and <code class="literal">pool</code>
+options for <code class="option">--enable-libstdcxx-allocator</code> were removed.
 </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ABI Policy and Guidelines </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Backwards Compatibility</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html
index 9e2e9dcb18ec9fa272a01445068639f0b134fc3b..31c4da8a5e3a1ca8697a0719152dc1e752f007e3 100644
--- a/libstdc++-v3/doc/html/manual/configure.html
+++ b/libstdc++-v3/doc/html/manual/configure.html
@@ -64,12 +64,10 @@
 	<code class="code">'--enable-libstdcxx-allocator=auto'</code> (described
 	next).
      </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-allocator=OPTION  </code></span></dt><dd><p>Select a target-specific underlying std::allocator.  The
-	choices are 'new' to specify a wrapper for new, 'malloc' to
-	specify a wrapper for malloc, 'mt' for a fixed power of two allocator,
-	'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
-	See this page for more information on allocator
-	<a class="link" href="memory.html#allocator.ext" title="Extension Allocators">extensions</a>. This option
-	can change the library ABI.
+	choices are 'new' to specify a wrapper for new, and 'malloc' to
+	specify a wrapper for malloc.
+	See <a class="xref" href="memory.html#allocator.ext" title="Extension Allocators">the section called “Extension Allocators”</a> for more information.
+	This option can change the library ABI.
      </p></dd><dt><span class="term"><code class="code">--enable-cheaders=OPTION</code></span></dt><dd><p>This allows the user to define the approach taken for C header
 	compatibility with C++. Options are c, c_std, and c_global.
 	These correspond to the source directory's include/c,
diff --git a/libstdc++-v3/doc/html/manual/memory.html b/libstdc++-v3/doc/html/manual/memory.html
index 5b28a5a9763702010f4864bea99a866eb424a2d9..1681d9853b0fb042f9c0e3e059f8d3ddc35d9085 100644
--- a/libstdc++-v3/doc/html/manual/memory.html
+++ b/libstdc++-v3/doc/html/manual/memory.html
@@ -103,8 +103,9 @@
    high-speed extension allocators, covered below. Thus, all
    allocation and deallocation depends on the base class.
    </p><p>
-     The base class that <code class="classname">allocator</code> is derived from
-     may not be user-configurable.
+     The choice of base class that <code class="classname">allocator</code>
+     is derived from is fixed at the time when GCC is built,
+     and the different choices are not ABI compatible.
 </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="allocator.default"></a>Selecting Default Allocation Policy</h5></div></div></div><p>
      It's difficult to pick an allocation strategy that will provide
    maximum utility, without excessively penalizing some behavior. In
@@ -198,6 +199,10 @@
      Probably the best place to start would be to copy one of the
    extension allocators: say a simple one like
    <code class="classname">new_allocator</code>.
+   </p><p>
+     Since C++11 the minimal interface require for an allocator is
+     much smaller, as <code class="classname">std::allocator_traits</code>
+     can provide default for much of the interface.
    </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.ext"></a>Extension Allocators</h4></div></div></div><p>
     Several other allocators are provided as part of this
     implementation.  The location of the extension allocators and their
@@ -224,9 +229,10 @@
        </p></li><li class="listitem"><p>
        <code class="classname">debug_allocator</code>
        </p><p>
-	 A wrapper around an arbitrary allocator A.  It passes on
-	 slightly increased size requests to A, and uses the extra
-	 memory to store size information.  When a pointer is passed
+	 A wrapper around an arbitrary allocator <code class="classname">A</code>.
+	 It passes on slightly increased size requests to <code class="classname">A</code>,
+	 and uses the extra memory to store size information.
+	 When a pointer is passed
 	 to <code class="function">deallocate()</code>, the stored size is
 	 checked, and <code class="function">assert()</code> is used to
 	 guarantee they match.
@@ -248,41 +254,14 @@
 	 request is passed to <code class="function">::operator new</code>
 	 directly.
        </p><p>
-	 Older versions of this class take a boolean template
-	 parameter, called <code class="varname">thr</code>, and an integer template
-	 parameter, called <code class="varname">inst</code>.
+	 For thread-enabled configurations, the pool is locked with a
+	 single big lock. In some situations, this implementation detail
+	 may result in severe performance degradation.
        </p><p>
-	 The <code class="varname">inst</code> number is used to track additional memory
-      pools.  The point of the number is to allow multiple
-      instantiations of the classes without changing the semantics at
-      all.  All three of
-       </p><pre class="programlisting">
-    typedef  __pool_alloc&lt;true,0&gt;    normal;
-    typedef  __pool_alloc&lt;true,1&gt;    private;
-    typedef  __pool_alloc&lt;true,42&gt;   also_private;
-   </pre><p>
-     behave exactly the same way.  However, the memory pool for each type
-      (and remember that different instantiations result in different types)
-      remains separate.
-   </p><p>
-     The library uses <span class="emphasis"><em>0</em></span> in all its instantiations.  If you
-      wish to keep separate free lists for a particular purpose, use a
-      different number.
-   </p><p>The <code class="varname">thr</code> boolean determines whether the
-   pool should be manipulated atomically or not.  When
-   <code class="varname">thr</code> = <code class="constant">true</code>, the allocator
-   is thread-safe, while <code class="varname">thr</code> =
-   <code class="constant">false</code>, is slightly faster but unsafe for
-   multiple threads.
-   </p><p>
-     For thread-enabled configurations, the pool is locked with a
-     single big lock. In some situations, this implementation detail
-     may result in severe performance degradation.
-   </p><p>
-     (Note that the GCC thread abstraction layer allows us to provide
-     safe zero-overhead stubs for the threading routines, if threads
-     were disabled at configuration time.)
-   </p></li><li class="listitem"><p>
+	 (Note that the GCC thread abstraction layer allows us to provide
+	 safe zero-overhead stubs for the threading routines, if threads
+	 were disabled at configuration time.)
+       </p></li><li class="listitem"><p>
        <code class="classname">__mt_alloc</code>
        </p><p>
 	 A high-performance fixed-size allocator with
diff --git a/libstdc++-v3/doc/html/manual/mt_allocator.html b/libstdc++-v3/doc/html/manual/mt_allocator.html
index c7786f02844502d3340fee056e063ea43943b7a4..68e7dccde78e37aefcbdf7e7bf8709278e126edd 100644
--- a/libstdc++-v3/doc/html/manual/mt_allocator.html
+++ b/libstdc++-v3/doc/html/manual/mt_allocator.html
@@ -6,12 +6,12 @@
 </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.intro"></a>Intro</h2></div></div></div><p>
   The mt allocator [hereinafter referred to simply as "the allocator"]
   is a fixed size (power of two) allocator that was initially
-  developed specifically to suit the needs of multi threaded
+  developed specifically to suit the needs of multi-threaded
   applications [hereinafter referred to as an MT application]. Over
   time the allocator has evolved and been improved in many ways, in
-  particular it now also does a good job in single threaded
-  applications [hereinafter referred to as a ST application]. (Note:
-  In this document, when referring to single threaded applications
+  particular it now also does a good job in single-threaded
+  applications [hereinafter referred to as an ST application]. (Note:
+  In this document, when referring to single-threaded applications
   this also includes applications that are compiled with gcc without
   thread support enabled. This is accomplished using ifdef's on
   __GTHREADS). This allocator is tunable, very flexible, and capable
diff --git a/libstdc++-v3/doc/xml/manual/allocator.xml b/libstdc++-v3/doc/xml/manual/allocator.xml
index 1f429410eb0e20e369941e14655db9a296b62aeb..aaab4e29aa75deb07e38090a9755af7d6e9fbb6f 100644
--- a/libstdc++-v3/doc/xml/manual/allocator.xml
+++ b/libstdc++-v3/doc/xml/manual/allocator.xml
@@ -154,8 +154,9 @@
    </para>
 
    <para>
-     The base class that <classname>allocator</classname> is derived from
-     may not be user-configurable.
+     The choice of base class that <classname>allocator</classname>
+     is derived from is fixed at the time when GCC is built,
+     and the different choices are not ABI compatible.
 </para>
 
   </section>
@@ -314,6 +315,13 @@
    <classname>new_allocator</classname>.
    </para>
 
+   <para>
+     Since C++11 the minimal interface require for an allocator is
+     much smaller, as <classname>std::allocator_traits</classname>
+     can provide default for much of the interface.
+   </para>
+
+
 </section>
 
 <section xml:id="allocator.ext"><info><title>Extension Allocators</title></info>
@@ -359,9 +367,10 @@
        <classname>debug_allocator</classname>
        </para>
        <para>
-	 A wrapper around an arbitrary allocator A.  It passes on
-	 slightly increased size requests to A, and uses the extra
-	 memory to store size information.  When a pointer is passed
+	 A wrapper around an arbitrary allocator <classname>A</classname>.
+	 It passes on slightly increased size requests to <classname>A</classname>,
+	 and uses the extra memory to store size information.
+	 When a pointer is passed
 	 to <function>deallocate()</function>, the stored size is
 	 checked, and <function>assert()</function> is used to
 	 guarantee they match.
@@ -393,52 +402,16 @@
        </para>
 
        <para>
-	 Older versions of this class take a boolean template
-	 parameter, called <varname>thr</varname>, and an integer template
-	 parameter, called <varname>inst</varname>.
+	 For thread-enabled configurations, the pool is locked with a
+	 single big lock. In some situations, this implementation detail
+	 may result in severe performance degradation.
        </para>
 
        <para>
-	 The <varname>inst</varname> number is used to track additional memory
-      pools.  The point of the number is to allow multiple
-      instantiations of the classes without changing the semantics at
-      all.  All three of
+	 (Note that the GCC thread abstraction layer allows us to provide
+	 safe zero-overhead stubs for the threading routines, if threads
+	 were disabled at configuration time.)
        </para>
-
-   <programlisting>
-    typedef  __pool_alloc&lt;true,0&gt;    normal;
-    typedef  __pool_alloc&lt;true,1&gt;    private;
-    typedef  __pool_alloc&lt;true,42&gt;   also_private;
-   </programlisting>
-   <para>
-     behave exactly the same way.  However, the memory pool for each type
-      (and remember that different instantiations result in different types)
-      remains separate.
-   </para>
-   <para>
-     The library uses <emphasis>0</emphasis> in all its instantiations.  If you
-      wish to keep separate free lists for a particular purpose, use a
-      different number.
-   </para>
-   <para>The <varname>thr</varname> boolean determines whether the
-   pool should be manipulated atomically or not.  When
-   <varname>thr</varname> = <constant>true</constant>, the allocator
-   is thread-safe, while <varname>thr</varname> =
-   <constant>false</constant>, is slightly faster but unsafe for
-   multiple threads.
-   </para>
-
-   <para>
-     For thread-enabled configurations, the pool is locked with a
-     single big lock. In some situations, this implementation detail
-     may result in severe performance degradation.
-   </para>
-
-   <para>
-     (Note that the GCC thread abstraction layer allows us to provide
-     safe zero-overhead stubs for the threading routines, if threads
-     were disabled at configuration time.)
-   </para>
      </listitem>
 
      <listitem>
diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml
index cc9c8554c6cdef0b6cd9d5093dfe17ed11bdffc2..8c26acc95a798db7d98e50c2238713e6ecf14447 100644
--- a/libstdc++-v3/doc/xml/manual/configure.xml
+++ b/libstdc++-v3/doc/xml/manual/configure.xml
@@ -118,12 +118,10 @@
 
  <varlistentry><term><code>--enable-libstdcxx-allocator=OPTION  </code></term>
  <listitem><para>Select a target-specific underlying std::allocator.  The
-	choices are 'new' to specify a wrapper for new, 'malloc' to
-	specify a wrapper for malloc, 'mt' for a fixed power of two allocator,
-	'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
-	See this page for more information on allocator
-	<link linkend="allocator.ext">extensions</link>. This option
-	can change the library ABI.
+	choices are 'new' to specify a wrapper for new, and 'malloc' to
+	specify a wrapper for malloc.
+	See <xref linkend="allocator.ext"/> for more information.
+	This option can change the library ABI.
      </para>
  </listitem></varlistentry>
 
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml
index 9aef84a09334a1812bcdff562531ac1be043fcf8..271d2225c3a2cfa9385eb127e981373fee648c00 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -1033,6 +1033,11 @@ accessors for the unexpected handler are deprecated for C++11 and later.
 Dynamic exception specifications should be replaced with <code>noexcept</code>.
 </para>
 
+<para>
+The <literal>bitmap</literal>, <literal>mt</literal>, and <literal>pool</literal>
+options for <option>--enable-libstdcxx-allocator</option> were removed.
+</para>
+
 </section>
 
 </section>
diff --git a/libstdc++-v3/doc/xml/manual/mt_allocator.xml b/libstdc++-v3/doc/xml/manual/mt_allocator.xml
index 93504a7d711ae8696363df50a00c1e8f1e85423d..f1c09b3bd8f730bd8747b675ecbf67348a3d1c90 100644
--- a/libstdc++-v3/doc/xml/manual/mt_allocator.xml
+++ b/libstdc++-v3/doc/xml/manual/mt_allocator.xml
@@ -20,12 +20,12 @@
 <para>
   The mt allocator [hereinafter referred to simply as "the allocator"]
   is a fixed size (power of two) allocator that was initially
-  developed specifically to suit the needs of multi threaded
+  developed specifically to suit the needs of multi-threaded
   applications [hereinafter referred to as an MT application]. Over
   time the allocator has evolved and been improved in many ways, in
-  particular it now also does a good job in single threaded
-  applications [hereinafter referred to as a ST application]. (Note:
-  In this document, when referring to single threaded applications
+  particular it now also does a good job in single-threaded
+  applications [hereinafter referred to as an ST application]. (Note:
+  In this document, when referring to single-threaded applications
   this also includes applications that are compiled with gcc without
   thread support enabled. This is accomplished using ifdef's on
   __GTHREADS). This allocator is tunable, very flexible, and capable