configure.in (libtool_VERSION): To 6:0:0.
authorBenjamin Kosnik <bkoz@redhat.com>
Thu, 23 Jan 2003 17:21:11 +0000 (17:21 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 23 Jan 2003 17:21:11 +0000 (17:21 +0000)
2003-01-23  Benjamin Kosnik  <bkoz@redhat.com>

* configure.in (libtool_VERSION): To 6:0:0.
* configure: Regenerated.
* config/linker-map.gnu: Clean.

* src/misc-inst.cc: Remove instantiations.

* include/bits/stl_alloc.h (__malloc_alloc_template):
To __malloc_alloc.
(__default_alloc_template): To __pool_alloc.
* src/stl-inst.cc: Same.
* include/backward/alloc.h: Update.
* testsuite/ext/allocators.cc: Update.

* src/globals.cc (__gnu_cxx): Remove _GLIBCPP_ASM_SYMVER. Should
really try to remove these if possible.
* src/locale.cc (std): Same.

* testsuite/abi_check.cc (check_version): Add.

From-SVN: r61658

12 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/config/linker-map.gnu
libstdc++-v3/configure
libstdc++-v3/configure.in
libstdc++-v3/include/backward/alloc.h
libstdc++-v3/include/bits/stl_alloc.h
libstdc++-v3/src/globals.cc
libstdc++-v3/src/locale.cc
libstdc++-v3/src/misc-inst.cc
libstdc++-v3/src/stl-inst.cc
libstdc++-v3/testsuite/abi_check.cc
libstdc++-v3/testsuite/ext/allocators.cc

index 2b1e3a3..5b5e8c7 100644 (file)
@@ -1,3 +1,24 @@
+2003-01-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * configure.in (libtool_VERSION): To 6:0:0.
+       * configure: Regenerated.
+       * config/linker-map.gnu: Clean.
+       
+       * src/misc-inst.cc: Remove instantiations.
+
+       * include/bits/stl_alloc.h (__malloc_alloc_template): 
+       To __malloc_alloc.
+       (__default_alloc_template): To __pool_alloc.
+       * src/stl-inst.cc: Same.
+       * include/backward/alloc.h: Update.
+       * testsuite/ext/allocators.cc: Update.
+       
+       * src/globals.cc (__gnu_cxx): Remove _GLIBCPP_ASM_SYMVER. Should
+       really try to remove these if possible.
+       * src/locale.cc (std): Same.
+
+       * testsuite/abi_check.cc (check_version): Add.
+
 2003-01-22  Benjamin Kosnik  <bkoz@redhat.com>
            Sysoltsev Slawa  <Vyatcheslav.Sysoltsev@intel.com>
            Mark Mitchell  <mark@codesourcery.com>
index 8f48c9f..cd38a2d 100644 (file)
@@ -1,6 +1,6 @@
 ## Linker script for GNU ld 2.11.94+ only.
 ##
-## Copyright (C) 2002 Free Software Foundation, Inc.
+## Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 ##
 ## This file is part of the libstdc++ version 3 distribution.
 ##
@@ -20,7 +20,7 @@
 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 ## USA.
 
-GLIBCPP_3.2 {
+GLIBCPP_3.4 {
 
   global:
 
@@ -37,31 +37,24 @@ GLIBCPP_3.2 {
       std::basic_[t-z]*;
       std::ba[t-z]*;
       std::b[b-z]*;
-      std::c[a-n]*;
-      std::co[a-c]*;
-      std::codecvt_byname*;
-      std::codecvt::[A-Za-b]*;
-      std::codecvt::[A-Zd-z]*;
-      std::codecvt_c;
-      std::codecvt_w;
-      std::co[e-z]*;
-      std::c[p-z]*;
-      std::c_[a-z]*;   
-      std::[A-Zd-k]*;
+      std::[A-Zc-k]*;
       std::length_error*;
       std::logic_error*;
       std::locale::[A-Za-e]*;
       std::locale::facet::[A-Za-z]*;
       std::locale::facet::_M*;
-      std::locale::facet::_S_c_locale;
+      std::locale::facet::_S_c_locale; 
       std::locale::facet::_S_clone_c_locale*;
       std::locale::facet::_S_create_c_locale*;
       std::locale::facet::_S_destroy_c_locale*;
-      std::locale::[A-Zg-z]*;
-      std::locale::_[A-Ra-z]*;
-      std::locale::_S_classic;
-      std::locale::_S_global;
-      std::locale::_S_num_categories;
+      std::locale::[A-Zg-h]*;
+      std::locale::id::[A-Za-z]*;
+      std::locale::id::_S_highwater;
+      std::locale::[A-Zj-z]*;
+      std::locale::_[A-Ha-z]*;
+      std::locale::_Impl::[A-Za-z]*;
+      std::locale::_Impl::_M_[A-Za-z]*;
+      std::locale::_[J-Ra-z]*;
       std::locale::_S_normalize_category*;
       std::locale::_[T-Za-z]*;
       std::[A-Zm-z]*;
@@ -70,110 +63,60 @@ GLIBCPP_3.2 {
       std::__num_base*;
       std::__timepunct*;
       std::__numeric_limits_base*;
-      std::_S_bit_count;
-      std::_S_first_one
+      std::_S_bit_count
     };
 
     # Names not in an 'extern' block are mangled names.
 
-    # std::string minus binary operator plus
-    _ZNKSs*;
-    _ZNKSb*;
-    _ZNSs[A-Za-z]*;
-    _ZNSs[0-9][A-Za-z]*;
-    _ZNSs[0-9][0-9][A-Za-z]*;
-    _ZNSs[0-9]_[A-Ra-z]*;
-    _ZNSs[0-9][0-9]_[A-Ra-z]*;
-    _ZNSs12_S_empty_repEv;
-    _ZNSs20_S_empty_rep_storageE;
-    _ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE;
-    _ZNSs12_S_constructE*;
-    _ZNSs13_S_copy_charsE*;
-    _ZNSbIwSt11char_traitsIwESaIwEE[A-Ra-z]*;
-    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][A-Ra-z]*;
-    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9][A-Ra-z]*;
-    _ZNSbIwSt11char_traitsIwESaIwEE[0-9]_[A-Ra-z]*;
-    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_[A-Ra-z]*;
-    _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*;
-    _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jm]wRKS1_;
-    _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv;
-    _ZSt24__uninitialized_copy_auxIN9*;
-    _ZSt26__uninitialized_fill_n_aux*;
-    _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_;
-    _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_;
-    _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_;
-    _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_;
-
     # std::locale destructors
     _ZNSt6localeD*;
        
     # std::locale::facet destructors
     _ZNSt6locale5facetD*;
         
-    # std::codecvt<char> members.
-    _ZNKSt7codecvtIcc11__mbstate_tE*;
-    # std::codecvt<char>::~codecvt
-    _ZNSt7codecvtIcc11__mbstate_tED*;
-    # std::codecvt<char>::codecvt(size_t), where size_t variable.
-    _ZNSt7codecvtIcc11__mbstate_tEC[12]E[jm];
-    # std::codecvt<char>::id
-    _ZNSt7codecvtIcc11__mbstate_tE2idE;
-
-    # std::codecvt<wchar_t> members.
-    _ZNKSt7codecvtIwc11__mbstate_tE*;
-    # std::codecvt<wchar_t>::~codecvt
-    _ZNSt7codecvtIwc11__mbstate_tED*;
-    # std::codecvt<wchar_t>::codecvt(size_t), where size_t variable.
-    _ZNSt7codecvtIwc11__mbstate_tEC[12]E[jm];
-    # std::codecvt<wchar_t>::id
-    _ZNSt7codecvtIwc11__mbstate_tE2idE;
-
-     # std::use_facet<codecvt>
-    _ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale;
-    _ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale;
+    # std::locale::_Impl constructors, destrutors
+    _ZNSt6locale5_ImplC*;
+    _ZNSt6locale5_ImplD*;
 
-    # std::has_facet*
+    # bool has_facet 
     _ZSt9has_facet*;
 
-    # std::__default_alloc_template
-    _ZNSt24__default_alloc_templateILb1ELi0EE10deallocate*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE8allocate*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE;
-    _ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE;
-    _ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillE*;
-
-    # std::__default_alloc_template to be removed in the future
-    _ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPv*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upE*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocE*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexE*;
-    _ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE;
-    _ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE;
-    _ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE;
-    _ZNSt24__default_alloc_templateILb1ELi0EE5_Lock*;
-
-    # operator new(unsigned)
-    _Znwj;
-    # operator new(unsigned, std::nothrow_t const&)
-    _ZnwjRKSt9nothrow_t;
-    # operator new(unsigned long)
-    _Znwm;
-    # operator new(unsigned long, std::nothrow_t const&)
-    _ZnwmRKSt9nothrow_t;
+    # std::string, std::wstring minus static data members
+    _ZNKS[sb]*;
+    _ZNS[sb]D*;
+    _ZNS[sb]C*;
+    _ZStplI[cw]St11char_traitsI[cw]ESaI[cw]EESbIT_T0_T1_EPKS3_RKS6_;
+    _ZStplI[cw]St11char_traitsI[cw]ESaI[cw]EESbIT_T0_T1_ES3_RKS6_;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE[A-Ra-z]*;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][A-Ra-z]*;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][0-9][A-Ra-z]*;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9]_[A-Ra-z]*;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][0-9]_[A-Ra-z]*;
+    _ZNS[sb]I[cw]St11char_traitsI[cw]ESaI[cw]EE20_S_empty_rep_storageE;
+
+    # std::__pool_alloc
+    _ZNSt12__pool_allocILb1ELi0EE10deallocateEPvj*;
+    _ZNSt12__pool_allocILb1ELi0EE8allocateEj*;
+    _ZNSt12__pool_allocILb1ELi0EE5_Lock*;
+    _ZNSt12__pool_allocILb1ELi0EE12_S_force_newE;
+    _ZNSt12__pool_allocILb1ELi0EE12_S_free_listE;
+    _ZNSt12__pool_allocILb1ELi0EE7_S_lockE;
+    _ZNSt12__pool_allocILb1ELi0EE9_S_refillE[jm];
+
+    # operator new(size_t)
+    _Znw[jm];
+    # operator new(size_t, std::nothrow_t const&)
+    _Znw[jm]RKSt9nothrow_t;
 
     # operator delete(void*)
     _ZdlPv;
     # operator delete(void*, std::nothrow_t const&)
     _ZdlPvRKSt9nothrow_t;
 
-    # operator new[](unsigned)
-    _Znaj;
-    # operator new[](unsigned, std::nothrow_t const&)
-    _ZnajRKSt9nothrow_t;
-    # operator new[](unsigned long)
-    _Znam;
-    # operator new[](unsigned long, std::nothrow_t const&)
-    _ZnamRKSt9nothrow_t;
+    # operator new[](size_t)
+    _Zna[jm];
+    # operator new[](size_t, std::nothrow_t const&)
+    _Zna[jm]RKSt9nothrow_t;
 
     # operator delete[](void*)
     _ZdaPv;
@@ -199,66 +142,47 @@ GLIBCPP_3.2 {
     # std::__convert_to_v
     _ZSt14__convert_to_v*;
 
+    # stub functions from libmath
+    sinf;
+    sinl;
+    sinhf;
+    sinhl;
+    cosf;
+    cosl;
+    coshf;
+    coshl;
+    tanf;
+    tanl;
+    tanhf;
+    tanhl;
+    atan2f;
+    atan2l;
+    expf;
+    expl;
+    hypotf;
+    hypotl;
+    hypot;
+    logf;
+    logl;
+    log10f;
+    log10l;
+    powf;
+    powl;
+    sqrtf;
+    sqrtl;
+    copysignf;
+    nan;
+    __signbit;
+    __signbitf;
+    __signbitl;
+
   local:
     *;
 };
 
-# Symbols added after GLIBCPP_3.2
-GLIBCPP_3.2.1 {
-
-  _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj;
-  _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj;
-  _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj;
-  _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj;
-
-  _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_;
-  _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_;
-
-  # stub functions from libmath
-  sinf;
-  sinl;
-  sinhf;
-  sinhl;
-  cosf;
-  cosl;
-  coshf;
-  coshl;
-  tanf;
-  tanl;
-  tanhf;
-  tanhl;
-  atan2f;
-  atan2l;
-  expf;
-  expl;
-  hypotf;
-  hypotl;
-  hypot;
-  logf;
-  logl;
-  log10f;
-  log10l;
-  powf;
-  powl;
-  sqrtf;
-  sqrtl;
-  copysignf;
-  nan;
-  __signbit;
-  __signbitf;
-  __signbitl;
-
-} GLIBCPP_3.2;
-
-
-GLIBCPP_3.2.2 {
-
-  _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
-
-} GLIBCPP_3.2.1;
 
 # Symbols in the support library (libsupc++) have their own tag.
-CXXABI_1.2 {
+CXXABI_1.3 {
 
   global:
     __cxa_allocate_exception;
@@ -272,6 +196,9 @@ CXXABI_1.2 {
     __cxa_free_exception;
     __cxa_get_globals;
     __cxa_get_globals_fast;
+    __cxa_guard_abort;
+    __cxa_guard_acquire;
+    __cxa_guard_release;
     __cxa_pure_virtual;
     __cxa_rethrow;
     __cxa_throw;
@@ -292,35 +219,6 @@ CXXABI_1.2 {
     # __gnu_cxx::_verbose_terminate_handler()
     _ZN9__gnu_cxx27__verbose_terminate_handlerEv;
 
-    # XXX Should not be exported.
-    __cxa_dyn_string_append_char;
-    __cxa_dyn_string_append_cstr;
-    __cxa_dyn_string_append;
-    __cxa_dyn_string_clear;
-    __cxa_dyn_string_copy_cstr;
-    __cxa_dyn_string_copy;
-    __cxa_dyn_string_delete;
-    __cxa_dyn_string_eq;
-    __cxa_dyn_string_init;
-    __cxa_dyn_string_insert_char;
-    __cxa_dyn_string_insert_cstr;
-    __cxa_dyn_string_insert;
-    __cxa_dyn_string_new;
-    __cxa_dyn_string_prepend_cstr;
-    __cxa_dyn_string_prepend;
-    __cxa_dyn_string_release;
-    __cxa_dyn_string_resize;
-    __cxa_dyn_string_substring;
-
   local:
     *;
 };
-
-# Symbols added after CXXABI_1.2
-CXXABI_1.2.1 {
-
-    __cxa_guard_acquire;
-    __cxa_guard_release;
-    __cxa_guard_abort;
-
-} CXXABI_1.2;
\ No newline at end of file
index 87442c7..0ee2e2b 100755 (executable)
@@ -591,7 +591,7 @@ ORIGINAL_LD_FOR_MULTILIBS=$LD
 PACKAGE=libstdc++
 
 # For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=6:0:0
 
 
 
index 6bc8656..0c3c09e 100644 (file)
@@ -13,7 +13,7 @@ ORIGINAL_LD_FOR_MULTILIBS=$LD
 PACKAGE=libstdc++
 AC_SUBST(PACKAGE)
 # For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=6:0:0
 AC_SUBST(libtool_VERSION)
 
 GLIBCPP_TOPREL_CONFIGURE
index 9482e4c..6bcc421 100644 (file)
@@ -1,6 +1,6 @@
 // Backward-compat support -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 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
 #include <bits/c++config.h>
 #include <bits/stl_alloc.h>
 
-using std::__malloc_alloc_template
+using std::__malloc_alloc; 
 using std::__simple_alloc; 
 using std::__debug_alloc; 
 using std::__alloc; 
 using std::__single_client_alloc; 
+using std::__pool_alloc; 
 using std::allocator;
-using std::__default_alloc_template; 
+
 
 #endif 
index d05ff6e..a40f7c1 100644 (file)
@@ -1,6 +1,6 @@
 // Allocators -*- C++ -*-
 
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -113,15 +113,15 @@ namespace std
   /**
    *  @if maint
    *  A malloc-based allocator.  Typically slower than the
-   *  __default_alloc_template (below).  Typically thread-safe and more
+   *  __pool_alloc (below).  Typically thread-safe and more
    *  storage efficient.  The template argument is unused and is only present
-   *  to permit multiple instantiations (but see __default_alloc_template
+   *  to permit multiple instantiations (but see __pool_alloc
    *  for caveats).  "SGI" style, plus __set_malloc_handler for OOM conditions.
    *  @endif
    *  (See @link Allocators allocators info @endlink for more.)
    */
   template<int __inst>
-    class __malloc_alloc_template
+    class __malloc_alloc
     {
     private:
       static void* _S_oom_malloc(size_t);
@@ -151,11 +151,11 @@ namespace std
 
   // malloc_alloc out-of-memory handling
   template<int __inst>
-    void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0;
+    void (* __malloc_alloc<__inst>::__malloc_alloc_oom_handler)() = 0;
 
   template<int __inst>
     void*
-    __malloc_alloc_template<__inst>::
+    __malloc_alloc<__inst>::
     _S_oom_malloc(size_t __n)
     {
       void (* __my_malloc_handler)();
@@ -286,7 +286,7 @@ namespace std
    *  (See @link Allocators allocators info @endlink for more.)
    */
   template<bool __threads, int __inst>
-    class __default_alloc_template
+    class __pool_alloc
     {
     private:
       enum {_ALIGN = 8};
@@ -306,7 +306,8 @@ namespace std
       static char*                  _S_end_free;
       static size_t                 _S_heap_size;
 
-      static _STL_mutex_lock        _S_node_allocator_lock;
+      static _STL_mutex_lock        _S_lock;
+      static _Atomic_word          _S_force_new;
 
       static size_t
       _S_round_up(size_t __bytes)
@@ -330,13 +331,11 @@ namespace std
       // test whether threads are in use.
       struct _Lock
       {
-        _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); }
-        ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); }
+        _Lock() { if (__threads) _S_lock._M_acquire_lock(); }
+        ~_Lock() { if (__threads) _S_lock._M_release_lock(); }
       } __attribute__ ((__unused__));
       friend struct _Lock;
 
-      static _Atomic_word _S_force_new;
-
     public:
       // __n must be > 0
       static void*
@@ -404,18 +403,18 @@ namespace std
     };
 
   template<bool __threads, int __inst> _Atomic_word
-  __default_alloc_template<__threads, __inst>::_S_force_new = 0;
+  __pool_alloc<__threads, __inst>::_S_force_new = 0;
 
   template<bool __threads, int __inst>
     inline bool
-    operator==(const __default_alloc_template<__threads,__inst>&,
-               const __default_alloc_template<__threads,__inst>&)
+    operator==(const __pool_alloc<__threads,__inst>&, 
+              const __pool_alloc<__threads,__inst>&)
     { return true; }
 
   template<bool __threads, int __inst>
     inline bool
-    operator!=(const __default_alloc_template<__threads,__inst>&,
-               const __default_alloc_template<__threads,__inst>&)
+    operator!=(const __pool_alloc<__threads,__inst>&,
+               const __pool_alloc<__threads,__inst>&)
     { return false; }
 
 
@@ -424,7 +423,7 @@ namespace std
   // the allocation lock.
   template<bool __threads, int __inst>
     char*
-    __default_alloc_template<__threads, __inst>::
+    __pool_alloc<__threads, __inst>::
     _S_chunk_alloc(size_t __size, int& __nobjs)
     {
       char* __result;
@@ -499,7 +498,7 @@ namespace std
   // hold the allocation lock.
   template<bool __threads, int __inst>
     void*
-    __default_alloc_template<__threads, __inst>::_S_refill(size_t __n)
+    __pool_alloc<__threads, __inst>::_S_refill(size_t __n)
     {
       int __nobjs = 20;
       char* __chunk = _S_chunk_alloc(__n, __nobjs);
@@ -534,24 +533,23 @@ namespace std
 
   template<bool __threads, int __inst>
     _STL_mutex_lock
-    __default_alloc_template<__threads,__inst>::_S_node_allocator_lock
-    __STL_MUTEX_INITIALIZER;
+    __pool_alloc<__threads,__inst>::_S_lock __STL_MUTEX_INITIALIZER;
 
   template<bool __threads, int __inst>
-    char* __default_alloc_template<__threads,__inst>::_S_start_free = 0;
+    char* __pool_alloc<__threads,__inst>::_S_start_free = 0;
 
   template<bool __threads, int __inst>
-    char* __default_alloc_template<__threads,__inst>::_S_end_free = 0;
+    char* __pool_alloc<__threads,__inst>::_S_end_free = 0;
 
   template<bool __threads, int __inst>
-    size_t __default_alloc_template<__threads,__inst>::_S_heap_size = 0;
+    size_t __pool_alloc<__threads,__inst>::_S_heap_size = 0;
 
   template<bool __threads, int __inst>
-    typename __default_alloc_template<__threads,__inst>::_Obj* volatile
-    __default_alloc_template<__threads,__inst>::_S_free_list[_NFREELISTS];
+    typename __pool_alloc<__threads,__inst>::_Obj* volatile
+    __pool_alloc<__threads,__inst>::_S_free_list[_NFREELISTS];
 
-  typedef __default_alloc_template<true,0>    __alloc;
-  typedef __default_alloc_template<false,0>   __single_client_alloc;
+  typedef __pool_alloc<true,0>    __alloc;
+  typedef __pool_alloc<false,0>   __single_client_alloc;
 
 
   /**
@@ -561,7 +559,7 @@ namespace std
    *  of stl_alloc.h.)
    *
    *  The underlying allocator behaves as follows.
-   *    - __default_alloc_template is used via two typedefs
+   *    - __pool_alloc is used via two typedefs
    *    - "__single_client_alloc" typedef does no locking for threads
    *    - "__alloc" typedef is threadsafe via the locks
    *    - __new_alloc is used for memory requests
@@ -655,7 +653,7 @@ namespace std
   /**
    *  @if maint
    *  Allocator adaptor to turn an "SGI" style allocator (e.g.,
-   *  __alloc, __malloc_alloc_template) into a "standard" conforming
+   *  __alloc, __malloc_alloc) into a "standard" conforming
    *  allocator.  Note that this adaptor does *not* assume that all
    *  objects of the underlying alloc class are identical, nor does it
    *  assume that all of the underlying alloc's member functions are
@@ -757,14 +755,14 @@ namespace std
    */
   template<int inst>
     inline bool
-    operator==(const __malloc_alloc_template<inst>&,
-               const __malloc_alloc_template<inst>&)
+    operator==(const __malloc_alloc<inst>&,
+               const __malloc_alloc<inst>&)
     { return true; }
 
   template<int __inst>
     inline bool
-    operator!=(const __malloc_alloc_template<__inst>&,
-               const __malloc_alloc_template<__inst>&)
+    operator!=(const __malloc_alloc<__inst>&,
+               const __malloc_alloc<__inst>&)
     { return false; }
 
   template<typename _Alloc>
@@ -840,20 +838,20 @@ namespace std
   //@{
   /// Versions for the predefined "SGI" style allocators.
   template<typename _Tp, int __inst>
-    struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> >
+    struct _Alloc_traits<_Tp, __malloc_alloc<__inst> >
     {
       static const bool _S_instanceless = true;
-      typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type;
-      typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type;
+      typedef __simple_alloc<_Tp, __malloc_alloc<__inst> > _Alloc_type;
+      typedef __allocator<_Tp, __malloc_alloc<__inst> > allocator_type;
     };
 
   template<typename _Tp, bool __threads, int __inst>
-    struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> >
+    struct _Alloc_traits<_Tp, __pool_alloc<__threads, __inst> >
     {
       static const bool _S_instanceless = true;
-      typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> >
+      typedef __simple_alloc<_Tp, __pool_alloc<__threads, __inst> >
       _Alloc_type;
-      typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> >
+      typedef __allocator<_Tp, __pool_alloc<__threads, __inst> >
       allocator_type;
     };
 
@@ -871,20 +869,20 @@ namespace std
   /// "SGI" style allocators.
   template<typename _Tp, typename _Tp1, int __inst>
     struct _Alloc_traits<_Tp,
-                         __allocator<_Tp1, __malloc_alloc_template<__inst> > >
+                         __allocator<_Tp1, __malloc_alloc<__inst> > >
     {
       static const bool _S_instanceless = true;
-      typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type;
-      typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type;
+      typedef __simple_alloc<_Tp, __malloc_alloc<__inst> > _Alloc_type;
+      typedef __allocator<_Tp, __malloc_alloc<__inst> > allocator_type;
     };
 
   template<typename _Tp, typename _Tp1, bool __thr, int __inst>
-    struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > >
+    struct _Alloc_traits<_Tp, __allocator<_Tp1, __pool_alloc<__thr, __inst> > >
     {
       static const bool _S_instanceless = true;
-      typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> >
+      typedef __simple_alloc<_Tp, __pool_alloc<__thr,__inst> >
       _Alloc_type;
-      typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> >
+      typedef __allocator<_Tp, __pool_alloc<__thr,__inst> >
       allocator_type;
     };
 
@@ -902,7 +900,7 @@ namespace std
   // NB: This syntax is a GNU extension.
   extern template class allocator<char>;
   extern template class allocator<wchar_t>;
-  extern template class __default_alloc_template<true,0>;
+  extern template class __pool_alloc<true,0>;
 } // namespace std
 
 #endif
index d85bf3a..7d4949c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -68,7 +68,6 @@ namespace __gnu_cxx
   typedef char fake_locale[sizeof(locale)]
   __attribute__ ((aligned(__alignof__(locale))));
   fake_locale c_locale;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8c_localeE, _ZSt8c_locale, GLIBCPP_3.2)
 
   // GLIBCXX_ABI > 5 will not need this symbol at all.
   // It's here just as a placeholder, as the size of this exported
@@ -77,151 +76,117 @@ namespace __gnu_cxx
   typedef char fake_locale_Impl_compat[o]
   __attribute__ ((aligned(__alignof__(o))));
   fake_locale_Impl_compat  c_locale_impl_compat;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx20c_locale_impl_compatE, _ZSt13c_locale_impl, GLIBCPP_3.2)
 
   typedef char fake_facet_vec[sizeof(locale::facet*)]
   __attribute__ ((aligned(__alignof__(locale::facet*))));
   fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS];
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9facet_vecE, _ZSt9facet_vec, GLIBCPP_3.2)
 
   typedef char fake_ctype_c[sizeof(std::ctype<char>)]
   __attribute__ ((aligned(__alignof__(std::ctype<char>))));
   fake_ctype_c ctype_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_cE, _ZSt7ctype_c, GLIBCPP_3.2)
 
   typedef char fake_collate_c[sizeof(std::collate<char>)]
   __attribute__ ((aligned(__alignof__(std::collate<char>))));
   fake_collate_c collate_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_cE, _ZSt9collate_c, GLIBCPP_3.2)
 
   typedef char fake_numpunct_c[sizeof(numpunct<char>)]
   __attribute__ ((aligned(__alignof__(numpunct<char>))));
   fake_numpunct_c numpunct_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_cE, _ZSt10numpunct_c, GLIBCPP_3.2)
 
   typedef char fake_num_get_c[sizeof(num_get<char>)]
   __attribute__ ((aligned(__alignof__(num_get<char>))));
   fake_num_get_c num_get_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_cE, _ZSt9num_get_c, GLIBCPP_3.2)
 
   typedef char fake_num_put_c[sizeof(num_put<char>)]
   __attribute__ ((aligned(__alignof__(num_put<char>))));
   fake_num_put_c num_put_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_cE, _ZSt9num_put_c, GLIBCPP_3.2)
 
   typedef char fake_codecvt_c[sizeof(codecvt<char, char, mbstate_t>)]
   __attribute__ ((aligned(__alignof__(codecvt<char, char, mbstate_t>))));
   fake_codecvt_c codecvt_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_cE, _ZSt9codecvt_c, GLIBCPP_3.2)
 
   typedef char fake_moneypunct_c[sizeof(moneypunct<char, true>)]
   __attribute__ ((aligned(__alignof__(moneypunct<char, true>))));
   fake_moneypunct_c moneypunct_tc;
   fake_moneypunct_c moneypunct_fc;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_tcE,\
-        _ZSt13moneypunct_tc, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fcE,\
-        _ZSt13moneypunct_fc, GLIBCPP_3.2)
 
   typedef char fake_money_get_c[sizeof(money_get<char>)]
   __attribute__ ((aligned(__alignof__(money_get<char>))));
   fake_money_get_c money_get_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_cE, _ZSt11money_get_c, GLIBCPP_3.2)
   
   typedef char fake_money_put_c[sizeof(money_put<char>)]
   __attribute__ ((aligned(__alignof__(money_put<char>))));
   fake_money_put_c money_put_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_cE, _ZSt11money_put_c, GLIBCPP_3.2)
 
   typedef char fake_timepunct_c[sizeof(__timepunct<char>)]
   __attribute__ ((aligned(__alignof__(__timepunct<char>))));
   fake_timepunct_c timepunct_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_cE, _ZSt11timepunct_c, GLIBCPP_3.2)
 
   typedef char fake_time_get_c[sizeof(time_get<char>)]
   __attribute__ ((aligned(__alignof__(time_get<char>))));
   fake_time_get_c time_get_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_cE, _ZSt10time_get_c, GLIBCPP_3.2)
 
   typedef char fake_time_put_c[sizeof(time_put<char>)]
   __attribute__ ((aligned(__alignof__(time_put<char>))));
   fake_time_put_c time_put_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_cE, _ZSt10time_put_c, GLIBCPP_3.2)
 
   typedef char fake_messages_c[sizeof(messages<char>)]
   __attribute__ ((aligned(__alignof__(messages<char>))));
   fake_messages_c messages_c;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_cE, _ZSt10messages_c, GLIBCPP_3.2)
 
 #ifdef  _GLIBCPP_USE_WCHAR_T
   typedef char fake_wtype_w[sizeof(std::ctype<wchar_t>)]
   __attribute__ ((aligned(__alignof__(std::ctype<wchar_t>))));
   fake_wtype_w ctype_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_wE, _ZSt7ctype_w, GLIBCPP_3.2)
 
   typedef char fake_wollate_w[sizeof(std::collate<wchar_t>)]
   __attribute__ ((aligned(__alignof__(std::collate<wchar_t>))));
   fake_wollate_w collate_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_wE, _ZSt9collate_w, GLIBCPP_3.2)
 
   typedef char fake_numpunct_w[sizeof(numpunct<wchar_t>)]
   __attribute__ ((aligned(__alignof__(numpunct<wchar_t>))));
   fake_numpunct_w numpunct_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_wE, _ZSt10numpunct_w, GLIBCPP_3.2)
 
   typedef char fake_num_get_w[sizeof(num_get<wchar_t>)]
   __attribute__ ((aligned(__alignof__(num_get<wchar_t>))));
   fake_num_get_w num_get_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_wE, _ZSt9num_get_w, GLIBCPP_3.2)
 
   typedef char fake_num_put_w[sizeof(num_put<wchar_t>)]
   __attribute__ ((aligned(__alignof__(num_put<wchar_t>))));
   fake_num_put_w num_put_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_wE, _ZSt9num_put_w, GLIBCPP_3.2)
 
   typedef char fake_wodecvt_w[sizeof(codecvt<wchar_t, char, mbstate_t>)]
   __attribute__ ((aligned(__alignof__(codecvt<wchar_t, char, mbstate_t>))));
   fake_wodecvt_w codecvt_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_wE, _ZSt9codecvt_w, GLIBCPP_3.2)
 
   typedef char fake_moneypunct_w[sizeof(moneypunct<wchar_t, true>)]
   __attribute__ ((aligned(__alignof__(moneypunct<wchar_t, true>))));
   fake_moneypunct_w moneypunct_tw;
   fake_moneypunct_w moneypunct_fw;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_twE,\
-        _ZSt13moneypunct_tw, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fwE,\
-        _ZSt13moneypunct_fw, GLIBCPP_3.2)
 
   typedef char fake_money_get_w[sizeof(money_get<wchar_t>)]
   __attribute__ ((aligned(__alignof__(money_get<wchar_t>))));
   fake_money_get_w money_get_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_wE, _ZSt11money_get_w, GLIBCPP_3.2)
   
   typedef char fake_money_put_w[sizeof(money_put<wchar_t>)]
   __attribute__ ((aligned(__alignof__(money_put<wchar_t>))));
   fake_money_put_w money_put_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_wE, _ZSt11money_put_w, GLIBCPP_3.2)
 
   typedef char fake_timepunct_w[sizeof(__timepunct<wchar_t>)]
   __attribute__ ((aligned(__alignof__(__timepunct<wchar_t>))));
   fake_timepunct_w timepunct_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_wE, _ZSt11timepunct_w, GLIBCPP_3.2)
 
   typedef char fake_time_get_w[sizeof(time_get<wchar_t>)]
   __attribute__ ((aligned(__alignof__(time_get<wchar_t>))));
   fake_time_get_w time_get_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_wE, _ZSt10time_get_w, GLIBCPP_3.2)
 
   typedef char fake_time_put_w[sizeof(time_put<wchar_t>)]
   __attribute__ ((aligned(__alignof__(time_put<wchar_t>))));
   fake_time_put_w time_put_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_wE, _ZSt10time_put_w, GLIBCPP_3.2)
 
   typedef char fake_messages_w[sizeof(messages<wchar_t>)]
   __attribute__ ((aligned(__alignof__(messages<wchar_t>))));
   fake_messages_w messages_w;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2)
 #endif
 
   typedef char fake_filebuf[sizeof(stdio_filebuf<char>)]
@@ -229,9 +194,6 @@ namespace __gnu_cxx
   fake_filebuf buf_cout;
   fake_filebuf buf_cin;
   fake_filebuf buf_cerr;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_coutE, _ZSt8buf_cout, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7buf_cinE, _ZSt7buf_cin, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_cerrE, _ZSt8buf_cerr, GLIBCPP_3.2)
 
 #ifdef _GLIBCPP_USE_WCHAR_T
   typedef char fake_wfilebuf[sizeof(stdio_filebuf<wchar_t>)]
@@ -239,9 +201,6 @@ namespace __gnu_cxx
   fake_wfilebuf buf_wcout;
   fake_wfilebuf buf_wcin;
   fake_wfilebuf buf_wcerr;
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcoutE, _ZSt9buf_wcout, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_wcinE, _ZSt8buf_wcin, GLIBCPP_3.2)
-  _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcerrE, _ZSt9buf_wcerr, GLIBCPP_3.2)
 #endif
 
   // Globals for once-only runtime initialization of mutex objects.  This
index 3b6302e..8246f4a 100644 (file)
@@ -58,10 +58,11 @@ namespace std
   // In the future, GLIBCXX_ABI > 5 should remove all uses of
   // _GLIBCPP_ASM_SYMVER in this file, and remove exports of any
   // static data members of locale.
+
+  // These are no longer exported.
   locale::_Impl*               locale::_S_classic;
   locale::_Impl*               locale::_S_global; 
   const size_t                         locale::_S_categories_size;
-  _GLIBCPP_ASM_SYMVER(_ZNSt6locale18_S_categories_sizeE, _ZNSt6locale17_S_num_categoriesE, GLIBCPP_3.2)
   const size_t                         locale::_S_extra_categories_size;
 
   // Definitions for static const data members of locale::id
index 74224b1..e612aa4 100644 (file)
@@ -1,6 +1,6 @@
 // Explicit instantiation file.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -71,19 +71,4 @@ namespace std
 #ifdef _GLIBCPP_INST_ATOMICITY_LOCK
   template volatile int __Atomicity_lock<0>::_S_atomicity_lock;
 #endif
-
-#if 1
-  // XXX
-  // 2002-05-24 These are no longer needed and should eventually be deleted.
-  template 
-    string* 
-    __uninitialized_fill_n_aux<string*, size_t, string>
-    (string*, size_t, string const &, __false_type);
-
-  template 
-    string* 
-    __uninitialized_copy_aux<vector<string>::const_iterator, string *>
-    (vector<string>::const_iterator, vector<string>::const_iterator, 
-     string*, __false_type);
-#endif
 } // namespace std
index d80a718..4bcf23f 100644 (file)
@@ -1,6 +1,6 @@
 // Explicit instantiation file.
 
-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003 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
@@ -39,5 +39,5 @@ namespace std
   template class allocator<char>;
   template class allocator<wchar_t>;
 
-  template class __default_alloc_template<true, 0>;
+  template class __pool_alloc<true, 0>;
 } // namespace std
index e956090..4460dd1 100644 (file)
@@ -1,6 +1,6 @@
 // Utility for libstdc++ ABI analysis -*- C++ -*-
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -75,6 +75,38 @@ namespace __gnu_cxx
 typedef std::deque<std::string>                                symbol_names;
 typedef __gnu_cxx::hash_map<std::string, symbol_info>  symbol_infos;
 
+
+bool
+check_version(const symbol_info& test)
+{
+  bool ret = true;
+
+  typedef std::vector<std::string> compat_list;
+  static compat_list known;
+  if (known.empty())
+    {
+      known.push_back("GLIBCPP_3.2");
+      known.push_back("GLIBCPP_3.2.1");
+      known.push_back("GLIBCPP_3.2.2");
+      known.push_back("GLIBCPP_3.4");
+      known.push_back("CXXABI_1.2");
+      known.push_back("CXXABI_1.2.1");
+      known.push_back("CXXABI_1.3");
+    }
+
+  compat_list::iterator end = known.end();
+
+  // Check version names for compatibility...
+  compat_list::iterator it1 = find(known.begin(), end, test.version_name);
+  
+  // Check for weak label.
+  compat_list::iterator it2 = find(known.begin(), end, test.name);
+  if (it1 != end || it2 != end)
+    ret = true;
+
+  return ret;
+}
+
 bool 
 check_compatible(const symbol_info& lhs, const symbol_info& rhs, 
                 bool verbose = false)
@@ -113,7 +145,8 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
        }
     }
 
-  if (lhs.version_name != rhs.version_name)
+  if (lhs.version_name != rhs.version_name 
+      && !check_version(lhs) && !check_version(rhs))
     {
       ret = false;
       if (verbose)
@@ -363,23 +396,8 @@ main(int argc, char** argv)
   // Check added names for compatibility.
   for (size_t i = 0; i < added_names.size(); ++i)
     {
-      vector<string> compatible_versions;
-      compatible_versions.push_back("GLIBCPP_3.2.1");
-      compatible_versions.push_back("GLIBCPP_3.2.2");
-      compatible_versions.push_back("CXXABI_1.2.1");
-
       symbol_info test = test_symbols[added_names[i]];
-      vector<string>::iterator end = compatible_versions.end();
-
-      // Check version names for compatibility...
-      vector<string>::iterator it1 = find(compatible_versions.begin(), end, 
-                                         test.version_name);
-
-      // Check for weak label.
-      vector<string>::iterator it2 = find(compatible_versions.begin(), end, 
-                                         test.name);
-
-      if (it1 == end && it2 == end)
+      if (!check_version(test))
        {
          incompatible.push_back(symbol_pair(test, test));
          cout << test.version_name << endl;
index 5815214..3102c91 100644 (file)
 #include <cstdlib>
 #include <testsuite_hooks.h>
 
-typedef std::__malloc_alloc_template<3>             weird_alloc;
-template class std::__malloc_alloc_template<3>;
+typedef std::__malloc_alloc<3>             weird_alloc;
+template class std::__malloc_alloc<3>;
 
 typedef std::__debug_alloc<weird_alloc>             debug_weird_alloc;
 template class std::__debug_alloc<weird_alloc>;
 
-typedef std::__default_alloc_template<true, 3>      unshared_normal_alloc;
-template class std::__default_alloc_template<true, 3>;
+typedef std::__pool_alloc<true, 3>      unshared_normal_alloc;
+template class std::__pool_alloc<true, 3>;
 
-typedef std::__default_alloc_template<false, 3>     unshared_singlethreaded;
-template class std::__default_alloc_template<false, 3>;
+typedef std::__pool_alloc<false, 3>     unshared_singlethreaded;
+template class std::__pool_alloc<false, 3>;
 
 //std::malloc_alloc test_malloc_alloc;