summaryrefslogtreecommitdiffstats
path: root/contrib/libstdc++/config
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-12-04 16:53:59 +0000
committerobrien <obrien@FreeBSD.org>2002-12-04 16:53:59 +0000
commitee820e9f244fb13f3dd7773478f525ddcbeac501 (patch)
tree23d47b19d8ecbb91f1615f358dbb41e09e05fc12 /contrib/libstdc++/config
parent7a1080fa5c329ea8a9505e51ce151719955bcfa2 (diff)
downloadFreeBSD-src-ee820e9f244fb13f3dd7773478f525ddcbeac501.zip
FreeBSD-src-ee820e9f244fb13f3dd7773478f525ddcbeac501.tar.gz
Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)
Diffstat (limited to 'contrib/libstdc++/config')
-rw-r--r--contrib/libstdc++/config/linker-map.gnu160
-rw-r--r--contrib/libstdc++/config/locale/generic/c_locale.cc11
-rw-r--r--contrib/libstdc++/config/locale/generic/c_locale.h2
-rw-r--r--contrib/libstdc++/config/locale/generic/time_members.cc14
-rw-r--r--contrib/libstdc++/config/locale/gnu/c_locale.cc22
-rw-r--r--contrib/libstdc++/config/locale/gnu/c_locale.h2
-rw-r--r--contrib/libstdc++/config/locale/gnu/ctype_members.cc3
-rw-r--r--contrib/libstdc++/config/locale/gnu/monetary_members.cc19
-rw-r--r--contrib/libstdc++/config/locale/gnu/numeric_members.cc4
-rw-r--r--contrib/libstdc++/config/locale/gnu/time_members.cc24
-rw-r--r--contrib/libstdc++/config/os/gnu-linux/bits/ctype_noninline.h5
11 files changed, 206 insertions, 60 deletions
diff --git a/contrib/libstdc++/config/linker-map.gnu b/contrib/libstdc++/config/linker-map.gnu
index d4346b1..f82002a 100644
--- a/contrib/libstdc++/config/linker-map.gnu
+++ b/contrib/libstdc++/config/linker-map.gnu
@@ -20,7 +20,6 @@
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.
-
GLIBCPP_3.2 {
global:
@@ -29,21 +28,120 @@ GLIBCPP_3.2 {
# All but the last are terminated with a semicolon.
extern "C++"
{
- std::[A-Za-z]*;
+ std::[A-Za]*;
+ std::ba[a-r]*;
+ std::basic_[a-r]*;
+ std::basic_streambuf*;
+ std::basic_stringbuf*;
+ std::basic_stringstream*;
+ 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::length_error*;
+ std::logic_error*;
+ std::locale::[A-Za-z]*;
+ std::locale::_[A-Ra-z]*;
+ std::locale::_S_classic;
+ std::locale::_S_global;
+ std::locale::_S_num_categories;
+ std::locale::_S_normalize_category*;
+ std::locale::_[T-Za-z]*;
+ std::[A-Zm-z]*;
std::__throw_*;
std::__basic_file*;
std::__num_base*;
std::__timepunct*;
std::__numeric_limits_base*;
std::_S_bit_count;
- std::_S_first_one;
- std::__default_alloc_template*;
- std::__malloc_alloc_template*
+ std::_S_first_one
};
# 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::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::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&)
@@ -72,8 +170,8 @@ GLIBCPP_3.2 {
# operator delete[](void*, std::nothrow_t const&)
_ZdaPvRKSt9nothrow_t;
- # vtable
- _ZTV*;
+ # vtable
+ _ZTV*;
_ZTT*;
# typeinfo
@@ -95,6 +193,54 @@ GLIBCPP_3.2 {
*;
};
+# 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_;
+
+ _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
+
+ # 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;
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.2 {
diff --git a/contrib/libstdc++/config/locale/generic/c_locale.cc b/contrib/libstdc++/config/locale/generic/c_locale.cc
index e274836..689bbf5 100644
--- a/contrib/libstdc++/config/locale/generic/c_locale.cc
+++ b/contrib/libstdc++/config/locale/generic/c_locale.cc
@@ -223,4 +223,15 @@ namespace std
__c_locale
locale::facet::_S_clone_c_locale(__c_locale&)
{ return __c_locale(); }
+
+ const char* locale::_S_categories[_S_categories_size
+ + _S_extra_categories_size] =
+ {
+ "LC_CTYPE",
+ "LC_NUMERIC",
+ "LC_COLLATE",
+ "LC_TIME",
+ "LC_MONETARY",
+ "LC_MESSAGES"
+ };
} // namespace std
diff --git a/contrib/libstdc++/config/locale/generic/c_locale.h b/contrib/libstdc++/config/locale/generic/c_locale.h
index bfd9bf0..9627d86 100644
--- a/contrib/libstdc++/config/locale/generic/c_locale.h
+++ b/contrib/libstdc++/config/locale/generic/c_locale.h
@@ -35,6 +35,8 @@
#include <clocale>
+#define _GLIBCPP_NUM_CATEGORIES 0
+
namespace std
{
typedef int* __c_locale;
diff --git a/contrib/libstdc++/config/locale/generic/time_members.cc b/contrib/libstdc++/config/locale/generic/time_members.cc
index d02f0c3..fd45645 100644
--- a/contrib/libstdc++/config/locale/generic/time_members.cc
+++ b/contrib/libstdc++/config/locale/generic/time_members.cc
@@ -39,13 +39,6 @@
namespace std
{
template<>
- __timepunct<char>::~__timepunct()
- {
- if (_M_c_locale_timepunct != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
-
- template<>
void
__timepunct<char>::
_M_put(char* __s, size_t __maxlen, const char* __format,
@@ -122,13 +115,6 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
template<>
- __timepunct<wchar_t>::~__timepunct()
- {
- if (_M_c_locale_timepunct != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
-
- template<>
void
__timepunct<wchar_t>::
_M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
diff --git a/contrib/libstdc++/config/locale/gnu/c_locale.cc b/contrib/libstdc++/config/locale/gnu/c_locale.cc
index 3982a65..188f3a2 100644
--- a/contrib/libstdc++/config/locale/gnu/c_locale.cc
+++ b/contrib/libstdc++/config/locale/gnu/c_locale.cc
@@ -178,9 +178,29 @@ namespace std
void
locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
- { __freelocale(__cloc); }
+ {
+ if (_S_c_locale != __cloc)
+ __freelocale(__cloc);
+ }
__c_locale
locale::facet::_S_clone_c_locale(__c_locale& __cloc)
{ return __duplocale(__cloc); }
+
+ const char* locale::_S_categories[_S_categories_size
+ + _S_extra_categories_size] =
+ {
+ "LC_CTYPE",
+ "LC_NUMERIC",
+ "LC_COLLATE",
+ "LC_TIME",
+ "LC_MONETARY",
+ "LC_MESSAGES",
+ "LC_PAPER",
+ "LC_NAME",
+ "LC_ADDRESS",
+ "LC_TELEPHONE",
+ "LC_MEASUREMENT",
+ "LC_IDENTIFICATION"
+ };
} // namespace std
diff --git a/contrib/libstdc++/config/locale/gnu/c_locale.h b/contrib/libstdc++/config/locale/gnu/c_locale.h
index aabbe6a..130b843 100644
--- a/contrib/libstdc++/config/locale/gnu/c_locale.h
+++ b/contrib/libstdc++/config/locale/gnu/c_locale.h
@@ -40,6 +40,8 @@
#define _GLIBCPP_C_LOCALE_GNU 1
+#define _GLIBCPP_NUM_CATEGORIES 6
+
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
namespace __gnu_cxx
{
diff --git a/contrib/libstdc++/config/locale/gnu/ctype_members.cc b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
index db1e356..3b78c60 100644
--- a/contrib/libstdc++/config/locale/gnu/ctype_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
@@ -44,8 +44,7 @@ namespace std
ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
: ctype<char>(0, false, __refs)
{
- if (_M_c_locale_ctype != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_ctype);
+ _S_destroy_c_locale(_M_c_locale_ctype);
_S_create_c_locale(_M_c_locale_ctype, __s);
_M_toupper = _M_c_locale_ctype->__ctype_toupper;
_M_tolower = _M_c_locale_ctype->__ctype_tolower;
diff --git a/contrib/libstdc++/config/locale/gnu/monetary_members.cc b/contrib/libstdc++/config/locale/gnu/monetary_members.cc
index 68b154b..0386ab6 100644
--- a/contrib/libstdc++/config/locale/gnu/monetary_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/monetary_members.cc
@@ -220,7 +220,7 @@ namespace std
moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
const char*)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = '.';
@@ -265,7 +265,7 @@ namespace std
moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
const char*)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = '.';
@@ -319,7 +319,7 @@ namespace std
moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
const char* __name)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = L'.';
@@ -348,14 +348,12 @@ namespace std
_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
- mbstate_t __state;
- size_t __len;
const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
- // NB: Should swich to __cloc's ctype info first.
- __len = strlen(__cpossign);
+ mbstate_t __state;
+ size_t __len = strlen(__cpossign);
if (__len)
{
++__len;
@@ -418,7 +416,7 @@ namespace std
moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
const char* __name)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = L'.';
@@ -446,13 +444,12 @@ namespace std
_M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
- mbstate_t __state;
- size_t __len;
const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
- // NB: Should swich to __cloc's ctype info first.
+ mbstate_t __state;
+ size_t __len;
__len = strlen(__cpossign);
if (__len)
{
diff --git a/contrib/libstdc++/config/locale/gnu/numeric_members.cc b/contrib/libstdc++/config/locale/gnu/numeric_members.cc
index b71374c..a502bfb 100644
--- a/contrib/libstdc++/config/locale/gnu/numeric_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/numeric_members.cc
@@ -42,7 +42,7 @@ namespace std
void
numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = '.';
@@ -76,7 +76,7 @@ namespace std
void
numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
_M_decimal_point = L'.';
diff --git a/contrib/libstdc++/config/locale/gnu/time_members.cc b/contrib/libstdc++/config/locale/gnu/time_members.cc
index ce3d9bf..7df10b8 100644
--- a/contrib/libstdc++/config/locale/gnu/time_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/time_members.cc
@@ -40,13 +40,6 @@
namespace std
{
template<>
- __timepunct<char>::~__timepunct()
- {
- if (_M_c_locale_timepunct != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
-
- template<>
void
__timepunct<char>::
_M_put(char* __s, size_t __maxlen, const char* __format,
@@ -67,11 +60,10 @@ namespace std
void
__timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
-
- _M_c_locale_timepunct = _S_c_locale;
+ _M_c_locale_timepunct = _S_c_locale;
_M_date_format = "%m/%d/%y";
_M_date_era_format = "%m/%d/%y";
@@ -193,13 +185,6 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
template<>
- __timepunct<wchar_t>::~__timepunct()
- {
- if (_M_c_locale_timepunct != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
-
- template<>
void
__timepunct<wchar_t>::
_M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
@@ -220,11 +205,10 @@ namespace std
void
__timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
{
- if (__cloc == _S_c_locale)
+ if (!__cloc)
{
// "C" locale
-
- _M_c_locale_timepunct = _S_c_locale;
+ _M_c_locale_timepunct = _S_c_locale;
_M_date_format = L"%m/%d/%y";
_M_date_era_format = L"%m/%d/%y";
diff --git a/contrib/libstdc++/config/os/gnu-linux/bits/ctype_noninline.h b/contrib/libstdc++/config/os/gnu-linux/bits/ctype_noninline.h
index 1578828..8f06d13 100644
--- a/contrib/libstdc++/config/os/gnu-linux/bits/ctype_noninline.h
+++ b/contrib/libstdc++/config/os/gnu-linux/bits/ctype_noninline.h
@@ -38,8 +38,7 @@
const ctype_base::mask*
ctype<char>::classic_table() throw()
{
- if (!_S_c_locale)
- _S_create_c_locale(_S_c_locale, "C");
+ locale::classic();
return _S_c_locale->__ctype_b;
}
#else
@@ -96,7 +95,7 @@
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) :
__ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
{
- _M_c_locale_ctype = _S_c_locale;
+ _M_c_locale_ctype = _S_c_locale;
_M_toupper = _M_c_locale_ctype->__ctype_toupper;
_M_tolower = _M_c_locale_ctype->__ctype_tolower;
_M_table = __table ? __table : _M_c_locale_ctype->__ctype_b;
OpenPOWER on IntegriCloud