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