1 // Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*- 2 3 // Copyright (C) 2006-2018 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the 7 // terms of the GNU General Public License as published by the 8 // Free Software Foundation; either version 3, or (at your option) 9 // any later version. 10 11 // This library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // Under Section 7 of GPL version 3, you are granted additional 17 // permissions described in the GCC Runtime Library Exception, version 18 // 3.1, as published by the Free Software Foundation. 19 20 // You should have received a copy of the GNU General Public License and 21 // a copy of the GCC Runtime Library Exception along with this program; 22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 // <http://www.gnu.org/licenses/>. 24 25 #define _GLIBCXX_USE_CXX11_ABI 0 26 #include <locale> 27 #include <cmath> 28 #include <tr1/functional> 29 30 #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT 31 32 #ifdef __LONG_DOUBLE_128__ 33 #error "compatibility-ldbl.cc must be compiled with -mlong-double-64" 34 #endif 35 36 namespace std _GLIBCXX_VISIBILITY(default) 37 { 38 #define C char 39 template class num_get<C, istreambuf_iterator<C> >; 40 template class num_put<C, ostreambuf_iterator<C> >; 41 template class money_get<C, istreambuf_iterator<C> >; 42 template class money_put<C, ostreambuf_iterator<C> >; 43 template const num_put<C>& use_facet<num_put<C> >(const locale&); 44 template const num_get<C>& use_facet<num_get<C> >(const locale&); 45 template const money_put<C>& use_facet<money_put<C> >(const locale&); 46 template const money_get<C>& use_facet<money_get<C> >(const locale&); 47 template bool has_facet<num_put<C> >(const locale&); 48 template bool has_facet<num_get<C> >(const locale&); 49 template bool has_facet<money_put<C> >(const locale&); 50 template bool has_facet<money_get<C> >(const locale&); 51 #undef C 52 #ifdef _GLIBCXX_USE_WCHAR_T 53 #define C wchar_t 54 template class num_get<C, istreambuf_iterator<C> >; 55 template class num_put<C, ostreambuf_iterator<C> >; 56 template class money_get<C, istreambuf_iterator<C> >; 57 template class money_put<C, ostreambuf_iterator<C> >; 58 template const num_put<C>& use_facet<num_put<C> >(const locale&); 59 template const num_get<C>& use_facet<num_get<C> >(const locale&); 60 template const money_put<C>& use_facet<money_put<C> >(const locale&); 61 template const money_get<C>& use_facet<money_get<C> >(const locale&); 62 template bool has_facet<num_put<C> >(const locale&); 63 template bool has_facet<num_get<C> >(const locale&); 64 template bool has_facet<money_put<C> >(const locale&); 65 template bool has_facet<money_get<C> >(const locale&); 66 #undef C 67 #endif 68 } 69 70 // For std::tr1::hash<long double>::operator() 71 #define _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL 72 #include "hash-long-double-tr1-aux.cc" 73 74 // std::tr1::hash<long double>::operator() 75 // and std::hash<long double>::operator() 76 // are the same, no need to duplicate them. 77 extern "C" void _ZNKSt4hashIeEclEe (void) 78 __attribute__((alias ("_ZNKSt3tr14hashIeEclEe"))); 79 80 #endif 81