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 typedef char fake_ctype_c[sizeof(std::ctype<char>)]
00088 __attribute__ ((aligned(__alignof__(std::ctype<char>))));
00089 fake_ctype_c ctype_c;
00090 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_cE, _ZSt7ctype_c, GLIBCPP_3.2)
00091
00092 typedef char fake_collate_c[sizeof(std::collate<char>)]
00093 __attribute__ ((aligned(__alignof__(std::collate<char>))));
00094 fake_collate_c collate_c;
00095 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_cE, _ZSt9collate_c, GLIBCPP_3.2)
00096
00097 typedef char fake_numpunct_c[sizeof(numpunct<char>)]
00098 __attribute__ ((aligned(__alignof__(numpunct<char>))));
00099 fake_numpunct_c numpunct_c;
00100 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_cE, _ZSt10numpunct_c, GLIBCPP_3.2)
00101
00102 typedef char fake_num_get_c[sizeof(num_get<char>)]
00103 __attribute__ ((aligned(__alignof__(num_get<char>))));
00104 fake_num_get_c num_get_c;
00105 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_cE, _ZSt9num_get_c, GLIBCPP_3.2)
00106
00107 typedef char fake_num_put_c[sizeof(num_put<char>)]
00108 __attribute__ ((aligned(__alignof__(num_put<char>))));
00109 fake_num_put_c num_put_c;
00110 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_cE, _ZSt9num_put_c, GLIBCPP_3.2)
00111
00112 typedef char fake_codecvt_c[sizeof(codecvt<char, char, mbstate_t>)]
00113 __attribute__ ((aligned(__alignof__(codecvt<char, char, mbstate_t>))));
00114 fake_codecvt_c codecvt_c;
00115 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_cE, _ZSt9codecvt_c, GLIBCPP_3.2)
00116
00117 typedef char fake_moneypunct_c[sizeof(moneypunct<char, true>)]
00118 __attribute__ ((aligned(__alignof__(moneypunct<char, true>))));
00119 fake_moneypunct_c moneypunct_tc;
00120 fake_moneypunct_c moneypunct_fc;
00121 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_tcE,\
00122 _ZSt13moneypunct_tc, GLIBCPP_3.2)
00123 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fcE,\
00124 _ZSt13moneypunct_fc, GLIBCPP_3.2)
00125
00126 typedef char fake_money_get_c[sizeof(money_get<char>)]
00127 __attribute__ ((aligned(__alignof__(money_get<char>))));
00128 fake_money_get_c money_get_c;
00129 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_cE, _ZSt11money_get_c, GLIBCPP_3.2)
00130
00131 typedef char fake_money_put_c[sizeof(money_put<char>)]
00132 __attribute__ ((aligned(__alignof__(money_put<char>))));
00133 fake_money_put_c money_put_c;
00134 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_cE, _ZSt11money_put_c, GLIBCPP_3.2)
00135
00136 typedef char fake_timepunct_c[sizeof(__timepunct<char>)]
00137 __attribute__ ((aligned(__alignof__(__timepunct<char>))));
00138 fake_timepunct_c timepunct_c;
00139 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_cE, _ZSt11timepunct_c, GLIBCPP_3.2)
00140
00141 typedef char fake_time_get_c[sizeof(time_get<char>)]
00142 __attribute__ ((aligned(__alignof__(time_get<char>))));
00143 fake_time_get_c time_get_c;
00144 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_cE, _ZSt10time_get_c, GLIBCPP_3.2)
00145
00146 typedef char fake_time_put_c[sizeof(time_put<char>)]
00147 __attribute__ ((aligned(__alignof__(time_put<char>))));
00148 fake_time_put_c time_put_c;
00149 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_cE, _ZSt10time_put_c, GLIBCPP_3.2)
00150
00151 typedef char fake_messages_c[sizeof(messages<char>)]
00152 __attribute__ ((aligned(__alignof__(messages<char>))));
00153 fake_messages_c messages_c;
00154 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_cE, _ZSt10messages_c, GLIBCPP_3.2)
00155
00156 #ifdef _GLIBCPP_USE_WCHAR_T
00157 typedef char fake_wtype_w[sizeof(std::ctype<wchar_t>)]
00158 __attribute__ ((aligned(__alignof__(std::ctype<wchar_t>))));
00159 fake_wtype_w ctype_w;
00160 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_wE, _ZSt7ctype_w, GLIBCPP_3.2)
00161
00162 typedef char fake_wollate_w[sizeof(std::collate<wchar_t>)]
00163 __attribute__ ((aligned(__alignof__(std::collate<wchar_t>))));
00164 fake_wollate_w collate_w;
00165 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_wE, _ZSt9collate_w, GLIBCPP_3.2)
00166
00167 typedef char fake_numpunct_w[sizeof(numpunct<wchar_t>)]
00168 __attribute__ ((aligned(__alignof__(numpunct<wchar_t>))));
00169 fake_numpunct_w numpunct_w;
00170 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_wE, _ZSt10numpunct_w, GLIBCPP_3.2)
00171
00172 typedef char fake_num_get_w[sizeof(num_get<wchar_t>)]
00173 __attribute__ ((aligned(__alignof__(num_get<wchar_t>))));
00174 fake_num_get_w num_get_w;
00175 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_wE, _ZSt9num_get_w, GLIBCPP_3.2)
00176
00177 typedef char fake_num_put_w[sizeof(num_put<wchar_t>)]
00178 __attribute__ ((aligned(__alignof__(num_put<wchar_t>))));
00179 fake_num_put_w num_put_w;
00180 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_wE, _ZSt9num_put_w, GLIBCPP_3.2)
00181
00182 typedef char fake_wodecvt_w[sizeof(codecvt<wchar_t, char, mbstate_t>)]
00183 __attribute__ ((aligned(__alignof__(codecvt<wchar_t, char, mbstate_t>))));
00184 fake_wodecvt_w codecvt_w;
00185 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_wE, _ZSt9codecvt_w, GLIBCPP_3.2)
00186
00187 typedef char fake_moneypunct_w[sizeof(moneypunct<wchar_t, true>)]
00188 __attribute__ ((aligned(__alignof__(moneypunct<wchar_t, true>))));
00189 fake_moneypunct_w moneypunct_tw;
00190 fake_moneypunct_w moneypunct_fw;
00191 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_twE,\
00192 _ZSt13moneypunct_tw, GLIBCPP_3.2)
00193 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fwE,\
00194 _ZSt13moneypunct_fw, GLIBCPP_3.2)
00195
00196 typedef char fake_money_get_w[sizeof(money_get<wchar_t>)]
00197 __attribute__ ((aligned(__alignof__(money_get<wchar_t>))));
00198 fake_money_get_w money_get_w;
00199 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_wE, _ZSt11money_get_w, GLIBCPP_3.2)
00200
00201 typedef char fake_money_put_w[sizeof(money_put<wchar_t>)]
00202 __attribute__ ((aligned(__alignof__(money_put<wchar_t>))));
00203 fake_money_put_w money_put_w;
00204 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_wE, _ZSt11money_put_w, GLIBCPP_3.2)
00205
00206 typedef char fake_timepunct_w[sizeof(__timepunct<wchar_t>)]
00207 __attribute__ ((aligned(__alignof__(__timepunct<wchar_t>))));
00208 fake_timepunct_w timepunct_w;
00209 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_wE, _ZSt11timepunct_w, GLIBCPP_3.2)
00210
00211 typedef char fake_time_get_w[sizeof(time_get<wchar_t>)]
00212 __attribute__ ((aligned(__alignof__(time_get<wchar_t>))));
00213 fake_time_get_w time_get_w;
00214 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_wE, _ZSt10time_get_w, GLIBCPP_3.2)
00215
00216 typedef char fake_time_put_w[sizeof(time_put<wchar_t>)]
00217 __attribute__ ((aligned(__alignof__(time_put<wchar_t>))));
00218 fake_time_put_w time_put_w;
00219 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_wE, _ZSt10time_put_w, GLIBCPP_3.2)
00220
00221 typedef char fake_messages_w[sizeof(messages<wchar_t>)]
00222 __attribute__ ((aligned(__alignof__(messages<wchar_t>))));
00223 fake_messages_w messages_w;
00224 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2)
00225 #endif
00226
00227 typedef char fake_filebuf[sizeof(stdio_filebuf<char>)]
00228 __attribute__ ((aligned(__alignof__(stdio_filebuf<char>))));
00229 fake_filebuf buf_cout;
00230 fake_filebuf buf_cin;
00231 fake_filebuf buf_cerr;
00232 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_coutE, _ZSt8buf_cout, GLIBCPP_3.2)
00233 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7buf_cinE, _ZSt7buf_cin, GLIBCPP_3.2)
00234 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_cerrE, _ZSt8buf_cerr, GLIBCPP_3.2)
00235
00236 #ifdef _GLIBCPP_USE_WCHAR_T
00237 typedef char fake_wfilebuf[sizeof(stdio_filebuf<wchar_t>)]
00238 __attribute__ ((aligned(__alignof__(stdio_filebuf<wchar_t>))));
00239 fake_wfilebuf buf_wcout;
00240 fake_wfilebuf buf_wcin;
00241 fake_wfilebuf buf_wcerr;
00242 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcoutE, _ZSt9buf_wcout, GLIBCPP_3.2)
00243 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_wcinE, _ZSt8buf_wcin, GLIBCPP_3.2)
00244 _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcerrE, _ZSt9buf_wcerr, GLIBCPP_3.2)
00245 #endif
00246 }
00247
00248 namespace std
00249 {
00250
00251
00252
00253 #ifdef __GTHREAD_MUTEX_INIT
00254
00255
00256 template __gthread_mutex_t _Swap_lock_struct<0>::_S_swap_lock;
00257 #elif defined(__GTHREAD_MUTEX_INIT_FUNCTION)
00258 __gthread_once_t _GLIBCPP_once = __GTHREAD_ONCE_INIT;
00259 __gthread_mutex_t _GLIBCPP_mutex;
00260 __gthread_mutex_t *_GLIBCPP_mutex_address;
00261
00262
00263 void
00264 _GLIBCPP_mutex_init ()
00265 { __GTHREAD_MUTEX_INIT_FUNCTION (&_GLIBCPP_mutex); }
00266
00267
00268 void
00269 _GLIBCPP_mutex_address_init ()
00270 { __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); }
00271 #endif
00272
00273
00274 typedef char fake_istream[sizeof(istream)]
00275 __attribute__ ((aligned(__alignof__(istream))));
00276 typedef char fake_ostream[sizeof(ostream)]
00277 __attribute__ ((aligned(__alignof__(ostream))));
00278 fake_istream cin;
00279 fake_ostream cout;
00280 fake_ostream cerr;
00281 fake_ostream clog;
00282
00283 #ifdef _GLIBCPP_USE_WCHAR_T
00284 typedef char fake_wistream[sizeof(wistream)]
00285 __attribute__ ((aligned(__alignof__(wistream))));
00286 typedef char fake_wostream[sizeof(wostream)]
00287 __attribute__ ((aligned(__alignof__(wostream))));
00288 fake_wistream wcin;
00289 fake_wostream wcout;
00290 fake_wostream wcerr;
00291 fake_wostream wclog;
00292 #endif
00293 }