00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "bits/c++config.h"
00029 #include "bits/gthr.h"
00030 #include <fstream>
00031 #include <istream>
00032 #include <ostream>
00033 #include <locale>
00034 #include <ext/stdio_filebuf.h>
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 namespace __gnu_cxx
00048 {
00049 using namespace std;
00050
00051 typedef char fake_facet_name[sizeof(char*)]
00052 __attribute__ ((aligned(__alignof__(char*))));
00053 fake_facet_name facet_name[6 + _GLIBCPP_NUM_CATEGORIES];
00054
00055 typedef char fake_locale_Impl[sizeof(locale::_Impl)]
00056 __attribute__ ((aligned(__alignof__(locale::_Impl))));
00057 fake_locale_Impl c_locale_impl;
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 typedef char fake_locale[sizeof(locale)]
00069 __attribute__ ((aligned(__alignof__(locale))));
00070 fake_locale c_locale;
00071 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8c_localeE, _ZSt8c_locale, GLIBCPP_3.2)
00072
00073
00074
00075
00076 const int o = sizeof(locale::_Impl) - sizeof(char*[_GLIBCPP_NUM_CATEGORIES]);
00077 typedef char fake_locale_Impl_compat[o]
00078 __attribute__ ((aligned(__alignof__(o))));
00079 fake_locale_Impl_compat c_locale_impl_compat;
00080 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx20c_locale_impl_compatE, _ZSt13c_locale_impl, GLIBCPP_3.2)
00081
00082 typedef char fake_facet_vec[sizeof(locale::facet*)]
00083 __attribute__ ((aligned(__alignof__(locale::facet*))));
00084 fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS];
00085 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9facet_vecE, _ZSt9facet_vec, GLIBCPP_3.2)
00086
00087
00088 typedef char fake_facet_cache_vec[sizeof(locale::facet*)]
00089 __attribute__ ((aligned(__alignof__(locale::facet*))));
00090 fake_facet_cache_vec facet_cache_vec[2 * _GLIBCPP_NUM_FACETS];
00091
00092 typedef char fake_ctype_c[sizeof(std::ctype<char>)]
00093 __attribute__ ((aligned(__alignof__(std::ctype<char>))));
00094 fake_ctype_c ctype_c;
00095 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_cE, _ZSt7ctype_c, GLIBCPP_3.2)
00096
00097 typedef char fake_collate_c[sizeof(std::collate<char>)]
00098 __attribute__ ((aligned(__alignof__(std::collate<char>))));
00099 fake_collate_c collate_c;
00100 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_cE, _ZSt9collate_c, GLIBCPP_3.2)
00101
00102 typedef char fake_numpunct_c[sizeof(numpunct<char>)]
00103 __attribute__ ((aligned(__alignof__(numpunct<char>))));
00104 fake_numpunct_c numpunct_c;
00105 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_cE, _ZSt10numpunct_c, GLIBCPP_3.2)
00106
00107 typedef char fake_num_get_c[sizeof(num_get<char>)]
00108 __attribute__ ((aligned(__alignof__(num_get<char>))));
00109 fake_num_get_c num_get_c;
00110 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_cE, _ZSt9num_get_c, GLIBCPP_3.2)
00111
00112 typedef char fake_num_put_c[sizeof(num_put<char>)]
00113 __attribute__ ((aligned(__alignof__(num_put<char>))));
00114 fake_num_put_c num_put_c;
00115 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_cE, _ZSt9num_put_c, GLIBCPP_3.2)
00116
00117 typedef char fake_codecvt_c[sizeof(codecvt<char, char, mbstate_t>)]
00118 __attribute__ ((aligned(__alignof__(codecvt<char, char, mbstate_t>))));
00119 fake_codecvt_c codecvt_c;
00120 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_cE, _ZSt9codecvt_c, GLIBCPP_3.2)
00121
00122 typedef char fake_moneypunct_c[sizeof(moneypunct<char, true>)]
00123 __attribute__ ((aligned(__alignof__(moneypunct<char, true>))));
00124 fake_moneypunct_c moneypunct_tc;
00125 fake_moneypunct_c moneypunct_fc;
00126 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_tcE,\
00127 _ZSt13moneypunct_tc, GLIBCPP_3.2)
00128 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fcE,\
00129 _ZSt13moneypunct_fc, GLIBCPP_3.2)
00130
00131 typedef char fake_money_get_c[sizeof(money_get<char>)]
00132 __attribute__ ((aligned(__alignof__(money_get<char>))));
00133 fake_money_get_c money_get_c;
00134 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_cE, _ZSt11money_get_c, GLIBCPP_3.2)
00135
00136 typedef char fake_money_put_c[sizeof(money_put<char>)]
00137 __attribute__ ((aligned(__alignof__(money_put<char>))));
00138 fake_money_put_c money_put_c;
00139 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_cE, _ZSt11money_put_c, GLIBCPP_3.2)
00140
00141 typedef char fake_timepunct_c[sizeof(__timepunct<char>)]
00142 __attribute__ ((aligned(__alignof__(__timepunct<char>))));
00143 fake_timepunct_c timepunct_c;
00144 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_cE, _ZSt11timepunct_c, GLIBCPP_3.2)
00145
00146 typedef char fake_time_get_c[sizeof(time_get<char>)]
00147 __attribute__ ((aligned(__alignof__(time_get<char>))));
00148 fake_time_get_c time_get_c;
00149 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_cE, _ZSt10time_get_c, GLIBCPP_3.2)
00150
00151 typedef char fake_time_put_c[sizeof(time_put<char>)]
00152 __attribute__ ((aligned(__alignof__(time_put<char>))));
00153 fake_time_put_c time_put_c;
00154 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_cE, _ZSt10time_put_c, GLIBCPP_3.2)
00155
00156 typedef char fake_messages_c[sizeof(messages<char>)]
00157 __attribute__ ((aligned(__alignof__(messages<char>))));
00158 fake_messages_c messages_c;
00159 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_cE, _ZSt10messages_c, GLIBCPP_3.2)
00160
00161 #ifdef _GLIBCPP_USE_WCHAR_T
00162 typedef char fake_wtype_w[sizeof(std::ctype<wchar_t>)]
00163 __attribute__ ((aligned(__alignof__(std::ctype<wchar_t>))));
00164 fake_wtype_w ctype_w;
00165 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_wE, _ZSt7ctype_w, GLIBCPP_3.2)
00166
00167 typedef char fake_wollate_w[sizeof(std::collate<wchar_t>)]
00168 __attribute__ ((aligned(__alignof__(std::collate<wchar_t>))));
00169 fake_wollate_w collate_w;
00170 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_wE, _ZSt9collate_w, GLIBCPP_3.2)
00171
00172 typedef char fake_numpunct_w[sizeof(numpunct<wchar_t>)]
00173 __attribute__ ((aligned(__alignof__(numpunct<wchar_t>))));
00174 fake_numpunct_w numpunct_w;
00175 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_wE, _ZSt10numpunct_w, GLIBCPP_3.2)
00176
00177 typedef char fake_num_get_w[sizeof(num_get<wchar_t>)]
00178 __attribute__ ((aligned(__alignof__(num_get<wchar_t>))));
00179 fake_num_get_w num_get_w;
00180 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_wE, _ZSt9num_get_w, GLIBCPP_3.2)
00181
00182 typedef char fake_num_put_w[sizeof(num_put<wchar_t>)]
00183 __attribute__ ((aligned(__alignof__(num_put<wchar_t>))));
00184 fake_num_put_w num_put_w;
00185 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_wE, _ZSt9num_put_w, GLIBCPP_3.2)
00186
00187 typedef char fake_wodecvt_w[sizeof(codecvt<wchar_t, char, mbstate_t>)]
00188 __attribute__ ((aligned(__alignof__(codecvt<wchar_t, char, mbstate_t>))));
00189 fake_wodecvt_w codecvt_w;
00190 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_wE, _ZSt9codecvt_w, GLIBCPP_3.2)
00191
00192 typedef char fake_moneypunct_w[sizeof(moneypunct<wchar_t, true>)]
00193 __attribute__ ((aligned(__alignof__(moneypunct<wchar_t, true>))));
00194 fake_moneypunct_w moneypunct_tw;
00195 fake_moneypunct_w moneypunct_fw;
00196 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_twE,\
00197 _ZSt13moneypunct_tw, GLIBCPP_3.2)
00198 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fwE,\
00199 _ZSt13moneypunct_fw, GLIBCPP_3.2)
00200
00201 typedef char fake_money_get_w[sizeof(money_get<wchar_t>)]
00202 __attribute__ ((aligned(__alignof__(money_get<wchar_t>))));
00203 fake_money_get_w money_get_w;
00204 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_wE, _ZSt11money_get_w, GLIBCPP_3.2)
00205
00206 typedef char fake_money_put_w[sizeof(money_put<wchar_t>)]
00207 __attribute__ ((aligned(__alignof__(money_put<wchar_t>))));
00208 fake_money_put_w money_put_w;
00209 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_wE, _ZSt11money_put_w, GLIBCPP_3.2)
00210
00211 typedef char fake_timepunct_w[sizeof(__timepunct<wchar_t>)]
00212 __attribute__ ((aligned(__alignof__(__timepunct<wchar_t>))));
00213 fake_timepunct_w timepunct_w;
00214 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_wE, _ZSt11timepunct_w, GLIBCPP_3.2)
00215
00216 typedef char fake_time_get_w[sizeof(time_get<wchar_t>)]
00217 __attribute__ ((aligned(__alignof__(time_get<wchar_t>))));
00218 fake_time_get_w time_get_w;
00219 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_wE, _ZSt10time_get_w, GLIBCPP_3.2)
00220
00221 typedef char fake_time_put_w[sizeof(time_put<wchar_t>)]
00222 __attribute__ ((aligned(__alignof__(time_put<wchar_t>))));
00223 fake_time_put_w time_put_w;
00224 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_wE, _ZSt10time_put_w, GLIBCPP_3.2)
00225
00226 typedef char fake_messages_w[sizeof(messages<wchar_t>)]
00227 __attribute__ ((aligned(__alignof__(messages<wchar_t>))));
00228 fake_messages_w messages_w;
00229 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2)
00230 #endif
00231
00232
00233 typedef char fake_locale_cache_np_c[sizeof(std::__locale_cache<numpunct<char> >)]
00234 __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<char> >))));
00235 fake_locale_cache_np_c locale_cache_np_c;
00236
00237 #ifdef _GLIBCPP_USE_WCHAR_T
00238 typedef char fake_locale_cache_np_w[sizeof(std::__locale_cache<numpunct<wchar_t> >)]
00239 __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<wchar_t> >))));
00240 fake_locale_cache_np_w locale_cache_np_w;
00241 #endif
00242
00243 typedef char fake_filebuf[sizeof(stdio_filebuf<char>)]
00244 __attribute__ ((aligned(__alignof__(stdio_filebuf<char>))));
00245 fake_filebuf buf_cout;
00246 fake_filebuf buf_cin;
00247 fake_filebuf buf_cerr;
00248 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_coutE, _ZSt8buf_cout, GLIBCPP_3.2)
00249 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7buf_cinE, _ZSt7buf_cin, GLIBCPP_3.2)
00250 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_cerrE, _ZSt8buf_cerr, GLIBCPP_3.2)
00251
00252 #ifdef _GLIBCPP_USE_WCHAR_T
00253 typedef char fake_wfilebuf[sizeof(stdio_filebuf<wchar_t>)]
00254 __attribute__ ((aligned(__alignof__(stdio_filebuf<wchar_t>))));
00255 fake_wfilebuf buf_wcout;
00256 fake_wfilebuf buf_wcin;
00257 fake_wfilebuf buf_wcerr;
00258 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcoutE, _ZSt9buf_wcout, GLIBCPP_3.2)
00259 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_wcinE, _ZSt8buf_wcin, GLIBCPP_3.2)
00260 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcerrE, _ZSt9buf_wcerr, GLIBCPP_3.2)
00261 #endif
00262
00263
00264
00265
00266 #ifdef __GTHREAD_MUTEX_INIT
00267
00268
00269 template __gthread_mutex_t _Swap_lock_struct<0>::_S_swap_lock;
00270 #elif defined(__GTHREAD_MUTEX_INIT_FUNCTION)
00271 __gthread_once_t _GLIBCPP_once = __GTHREAD_ONCE_INIT;
00272 __gthread_mutex_t _GLIBCPP_mutex;
00273 __gthread_mutex_t *_GLIBCPP_mutex_address;
00274
00275
00276 void
00277 _GLIBCPP_mutex_init ()
00278 { __GTHREAD_MUTEX_INIT_FUNCTION (&_GLIBCPP_mutex); }
00279
00280
00281 void
00282 _GLIBCPP_mutex_address_init ()
00283 { __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); }
00284 #endif
00285
00286
00287 struct __compat
00288 {
00289 static const char _S_atoms[];
00290 };
00291 const char __compat::_S_atoms[] = "0123456789eEabcdfABCDF";
00292 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8__compat8_S_atomsE, _ZNSt10__num_base8_S_atomsE, GLIBCPP_3.2)
00293 }
00294
00295 namespace std
00296 {
00297
00298 typedef char fake_istream[sizeof(istream)]
00299 __attribute__ ((aligned(__alignof__(istream))));
00300 typedef char fake_ostream[sizeof(ostream)]
00301 __attribute__ ((aligned(__alignof__(ostream))));
00302 fake_istream cin;
00303 fake_ostream cout;
00304 fake_ostream cerr;
00305 fake_ostream clog;
00306
00307 #ifdef _GLIBCPP_USE_WCHAR_T
00308 typedef char fake_wistream[sizeof(wistream)]
00309 __attribute__ ((aligned(__alignof__(wistream))));
00310 typedef char fake_wostream[sizeof(wostream)]
00311 __attribute__ ((aligned(__alignof__(wostream))));
00312 fake_wistream wcin;
00313 fake_wostream wcout;
00314 fake_wostream wcerr;
00315 fake_wostream wclog;
00316 #endif
00317 }