*** gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.cc.bak 2002-04-19 09:59:03.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.cc 2002-09-29 01:08:12.000000000 +0200 *************** *** 39,44 **** --- 39,55 ---- namespace std { + extern "C" __typeof (strtol_l) __strtol_l; + extern "C" __typeof (strtoul_l) __strtoul_l; + extern "C" __typeof (strtoll_l) __strtoll_l; + extern "C" __typeof (strtoull_l) __strtoull_l; + extern "C" __typeof (strtof_l) __strtof_l; + extern "C" __typeof (strtod_l) __strtod_l; + extern "C" __typeof (strtold_l) __strtold_l; + extern "C" __typeof (newlocale) __newlocale; + extern "C" __typeof (freelocale) __freelocale; + extern "C" __typeof (duplocale) __duplocale; + template<> void __convert_to_v(const char* __s, long& __v, ios_base::iostate& __err, *** gcc-3.2/libstdc++-v3/config/locale/gnu/collate_members.cc.bak 2002-04-19 09:59:03.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/collate_members.cc 2002-09-29 01:10:05.000000000 +0200 *************** *** 37,42 **** --- 37,47 ---- namespace std { + extern "C" __typeof (strcoll_l) __strcoll_l; + extern "C" __typeof (strxfrm_l) __strxfrm_l; + extern "C" __typeof (wcscoll_l) __wcscoll_l; + extern "C" __typeof (wcsxfrm_l) __wcsxfrm_l; + // These are basically extensions to char_traits, and perhaps should // be put there instead of here. template<> *** gcc-3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc.bak 2002-05-24 18:15:25.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc 2002-09-29 01:10:46.000000000 +0200 *************** *** 37,42 **** --- 37,47 ---- namespace std { + extern "C" __typeof (wctype_l) __wctype_l; + extern "C" __typeof (towupper_l) __towupper_l; + extern "C" __typeof (towlower_l) __towlower_l; + extern "C" __typeof (iswctype_l) __iswctype_l; + // NB: The other ctype specializations are in src/locale.cc and // various /config/os/* files. template<> *** gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.cc.bak 2002-05-19 00:00:14.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.cc 2002-09-29 01:11:03.000000000 +0200 *************** *** 37,42 **** --- 37,43 ---- namespace std { + extern "C" __typeof (uselocale) __uselocale; // Specializations. template<> string *** gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.h.bak 2002-05-19 00:00:14.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.h 2002-09-29 01:13:17.000000000 +0200 *************** *** 33,38 **** --- 33,40 ---- // Written by Benjamin Kosnik + extern "C" __typeof (uselocale) __uselocale; + // Non-virtual member functions. template typename messages<_CharT>::catalog *** gcc-3.2/libstdc++-v3/config/locale/gnu/monetary_members.cc.bak 2002-07-27 01:23:42.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/monetary_members.cc 2002-09-29 01:11:33.000000000 +0200 *************** *** 37,42 **** --- 37,44 ---- namespace std { + extern "C" __typeof (nl_langinfo_l) __nl_langinfo_l; + // Construct and return valid pattern consisting of some combination of: // space none symbol sign value money_base::pattern *** gcc-3.2/libstdc++-v3/config/locale/gnu/numeric_members.cc.bak 2002-04-19 09:59:03.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/numeric_members.cc 2002-09-29 01:11:50.000000000 +0200 *************** *** 37,42 **** --- 37,44 ---- namespace std { + extern "C" __typeof (nl_langinfo_l) __nl_langinfo_l; + template<> void numpunct::_M_initialize_numpunct(__c_locale __cloc) *** gcc-3.2/libstdc++-v3/config/locale/gnu/time_members.cc.bak 2002-05-19 00:00:14.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/locale/gnu/time_members.cc 2002-09-29 01:18:12.000000000 +0200 *************** *** 38,43 **** --- 38,47 ---- namespace std { + extern "C" __typeof (strftime_l) __strftime_l; + extern "C" __typeof (wcsftime_l) __wcsftime_l; + extern "C" __typeof (nl_langinfo_l) __nl_langinfo_l; + template<> __timepunct::~__timepunct() { *************** *** 52,58 **** const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); --- 56,62 ---- const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __strftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); *************** *** 202,208 **** const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); --- 206,212 ---- const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); *** gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h.bak 2002-04-19 09:59:07.000000000 +0200 --- gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h 2002-09-30 04:03:04.000000000 +0200 *************** *** 34,48 **** // Information as gleaned from /usr/include/ctype.h - #if _GLIBCPP_USE_SHADOW_HEADERS - using _C_legacy::__ctype_toupper; - using _C_legacy::__ctype_tolower; - using _C_legacy::__ctype_b; - #endif - const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype_b; } #if _GLIBCPP_C_LOCALE_GNU ctype::ctype(__c_locale __cloc, const mask* __table, bool __del, --- 34,42 ---- // Information as gleaned from /usr/include/ctype.h const ctype_base::mask* ctype::classic_table() throw() ! { return *(__ctype_b_loc ()); } #if _GLIBCPP_C_LOCALE_GNU ctype::ctype(__c_locale __cloc, const mask* __table, bool __del, *************** *** 58,71 **** ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(__ctype_toupper), _M_tolower(__ctype_tolower), _M_table(__table ? __table : classic_table()) { _M_c_locale_ctype = _S_c_locale; } #endif ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(__ctype_toupper), _M_tolower(__ctype_tolower), _M_table(__table ? __table : classic_table()) { _M_c_locale_ctype = _S_c_locale; } --- 52,65 ---- ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(*(__ctype_toupper_loc ())), _M_tolower(*(__ctype_tolower_loc ())), _M_table(__table ? __table : classic_table()) { _M_c_locale_ctype = _S_c_locale; } #endif ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(*(__ctype_toupper_loc ())), _M_tolower(*(__ctype_tolower_loc ())), _M_table(__table ? __table : classic_table()) { _M_c_locale_ctype = _S_c_locale; }