GCC 4.2.0 release C++ standard library and runtime support code.
This commit is contained in:
parent
6b834ef156
commit
f8a1b7d9d8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/gcc/dist/; revision=169691
@ -1,228 +1,267 @@
|
||||
2006-03-05 Release Manager
|
||||
2007-05-13 Release Manager
|
||||
|
||||
* GCC 3.4.6 released.
|
||||
* GCC 4.2.0 released.
|
||||
|
||||
2005-11-30 Release Manager
|
||||
2007-04-12 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* GCC 3.4.5 released.
|
||||
PR libstdc++/28277 (partial: vstring bits)
|
||||
* include/bits/ostream_insert.h: New.
|
||||
* include/Makefile.am: Add.
|
||||
* include/ext/vstring.h (operator<<(basic_ostream<>&,
|
||||
const __versa_string<>&): Forward to __ostream_insert.
|
||||
* include/bits/basic_string.h (operator<<(basic_ostream<>&,
|
||||
const string<>&)): Likewise.
|
||||
* include/std/std_ostream.h (operator<<(basic_ostream<>&, _CharT),
|
||||
operator<<(basic_ostream<char,>&, char), operator<<(basic_ostream<>&,
|
||||
const _CharT*), operator<<(basic_ostream<char,>&, const char*)):
|
||||
Likewise.
|
||||
* include/ext/vstring.tcc (operator<<(basic_ostream<>&,
|
||||
const __versa_string<>&)): Remove.
|
||||
(class basic_ostream): Remove friend declarations.
|
||||
(basic_ostream<>::_M_write(char_type, streamsize),
|
||||
_M_insert(const char_type*, streamsize)): Remove.
|
||||
* include/bits/ostream.tcc (_M_insert(const char_type*, streamsize)):
|
||||
Remove definition.
|
||||
(operator<<(basic_ostream<>&, const char*)): Use __ostream_insert.
|
||||
* include/ext/vstring_util.h: Include <bits/ostream_insert.h>.
|
||||
* include/std/std_string.h: Likewise.
|
||||
* config/abi/pre/gnu.ver: Adjust.
|
||||
* src/ostream-inst.cc: Add __ostream_insert instantiations.
|
||||
* include/Makefile.in: Rebuild.
|
||||
* testsuite/ext/vstring/inserters_extractors/char/28277.cc: New.
|
||||
* testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc: New.
|
||||
|
||||
2005-09-10 Joseph S. Myers <joseph@codesourcery.com>
|
||||
2007-04-07 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* testsuite/26_numerics/c99_classification_macros_c.cc:
|
||||
XFAIL on *-*-linux*, not *-*-linux-gnu.
|
||||
PR libstdc++/31481
|
||||
* include/ext/type_traits.h (__numeric_traits): Move...
|
||||
* include/ext/numeric_traits.h: ... here; fix type of
|
||||
__max_digits10.
|
||||
* include/Makefile.am: Add.
|
||||
* include/ext/pb_ds/detail/type_utils.hpp: Include
|
||||
<ext/numeric_traits.h> too.
|
||||
* include/tr1/random: Likewise.
|
||||
* testsuite/ext/type_traits/numeric_traits.cc: Move...
|
||||
* testsuite/ext/numeric_traits/numeric_traits.cc: ... here.
|
||||
* include/Makefile.in: Regenerate.
|
||||
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc:
|
||||
Adjust dg-error line number.
|
||||
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc:
|
||||
Likewise.
|
||||
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc:
|
||||
Likewise.
|
||||
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc:
|
||||
Likewise.
|
||||
|
||||
2005-09-01 Benjamin Kosnik <bkoz@redhat.com>
|
||||
2007-04-03 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/c_std/std_cmath.h: Declare C99 functions and helper
|
||||
functions as inline.
|
||||
* include/bits/stl_map.h (map<>::insert(iterator, const value_type&):
|
||||
Uglify parameter.
|
||||
|
||||
2005-08-29 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-04-02 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/23528
|
||||
Port from HEAD/4_0-branch:
|
||||
2004-07-28 Matt Austern <austern@apple.com>
|
||||
* include/ext/hashtable.h: Use rebind so that allocator_type
|
||||
has correct type for a container's allocator.
|
||||
* testsuite/ext/23528.cc: New.
|
||||
PR libstdc++/31401 (vstring bits)
|
||||
* include/ext/vstring.tcc (find(const _CharT*, size_type,
|
||||
size_type)): Avoid unsigned overflow.
|
||||
|
||||
2005-08-24 Lawrence Lim <llim@redhat.com>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
Benjamin Kosnik <bkoz@redhat.com>
|
||||
2007-03-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/23550
|
||||
* testsuite/21_strings/char_traits/requirements/char/1.cc
|
||||
(test01): Simplify counting.
|
||||
* testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
|
||||
(test02): Same.
|
||||
PR libstdc++/31401
|
||||
* include/bits/basic_string.tcc (find(const _CharT*, size_type,
|
||||
size_type)): Avoid unsigned overflow.
|
||||
* testsuite/21_strings/basic_string/find/char/4.cc: New.
|
||||
* testsuite/21_strings/basic_string/find/wchar_t/4.cc: Likewise.
|
||||
|
||||
2005-07-18 Paolo Carlini <pcarlini@suse.de>
|
||||
Nathan Myers <ncm@cantrip.org>
|
||||
2007-03-06 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/21286
|
||||
* include/bits/fstream.tcc (basic_filebuf<>::xsgetn):
|
||||
Loop on short reads.
|
||||
PR libstdc++/28080 (partial)
|
||||
* include/tr1/random (class random_device): Rework to use simple
|
||||
<cstdio> input, do not include <fstream>.
|
||||
* include/tr1/random.tcc (all inserters and extractors): Refer
|
||||
to ios_base as base class of basic_istream or basic_ostream.
|
||||
|
||||
2005-05-27 Mark Mitchell <mark@codesourcery.com>
|
||||
2007-03-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* testsuite/Makefile.in: Regenerate with Automake 1.7.8.
|
||||
PR libstdc++/30675
|
||||
* testsuite/lib/libstdc++.exp (v3-build_support): Use [transform
|
||||
"ar"] and [transform "ranlib"].
|
||||
|
||||
2005-05-19 Release Manager
|
||||
2007-03-05 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* GCC 3.4.4 released.
|
||||
Backport from mainline:
|
||||
2007-02-27 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
2005-05-18 Jonathan Wakely <redi@gcc.gnu.org>
|
||||
* acinclude.m4: Adjust regular expression for ld version extraction.
|
||||
* configure: Regenerate.
|
||||
|
||||
* docs/html/debug.html: Explain that _GLIBXX_DEBUG_PEDANTIC must
|
||||
be defined for pedantic mode.
|
||||
2007-03-05 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
2005-05-15 Andreas Schwab <schwab@suse.de>
|
||||
PR libstdc++/31031
|
||||
* include/bits/istream.tcc: Inhibit implicit instantiation of
|
||||
the _M_insert helpers.
|
||||
* include/bits/ostream.tcc: Likewise for _M_extract.
|
||||
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/
|
||||
31031.cc: New.
|
||||
* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/
|
||||
31031.cc: Likewise.
|
||||
|
||||
* testsuite/Makefile.am (check-local): Really remove.
|
||||
* testsuite/Makefile.in: Regenerated.
|
||||
2007-03-03 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
2005-05-12 Mark Mitchell <mark@codesourcery.com>
|
||||
PR libstdc++/28080 (partial)
|
||||
* include/tr1/functional: Split out hash bits to...
|
||||
* include/tr1/functional_hash.h: ...here.
|
||||
* include/Makefile.am: Add.
|
||||
* include/tr1/unordered_set: Include the latter instead.
|
||||
* include/tr1/unordered_map: Likewise.
|
||||
* include/Makefile.in: Regenerate.
|
||||
|
||||
2005-04-04 Mark Mitchell <mark@codesourcery.com>
|
||||
* testsuite/Makefile.am (check-local): Remove.
|
||||
(curent_symbols.txt): Likewise.
|
||||
(check-abi): Do not depend on current_symbols.txt.
|
||||
* testsuite/Makefile.in: Regenerated.
|
||||
* testsuite/libstdc++-abi/abi.exp: Build current_symbols.txt.
|
||||
2005-04-01 Mark Mitchell <mark@codesourcery.com>
|
||||
* testsuite/Makefile.am (noinst_PROGRAMS): Remove.
|
||||
(site.exp): Write out the path to the baseline file.
|
||||
(check-abi): Use DejaGNU.
|
||||
(check-abi-verbose): Remove.
|
||||
* testsuite/Makefile.in: Regenerated.
|
||||
* testsuite/abi_check.cc (main): Check the return value from
|
||||
compare_symbols.
|
||||
* testsuite/testsuite_abi.cc (compare_symbols): Return a value.
|
||||
* testsuite/testsuite_abi.h (compare_symbols): Adjust prototype.
|
||||
* testsuite/libstdc++-abi/abi.exp: New file.
|
||||
2004-03-19 Phil Edwards <phil@codesourcery.com>
|
||||
* testsuite/Makefile.am (site.exp): New target, based on that
|
||||
created by automake. Also set libiconv.
|
||||
* include/tr1/utility (get(std::pair<>&), get(const std::pair<>&)):
|
||||
Mark inline.
|
||||
|
||||
2005-05-04 Mark Mitchell <mark@codesourcery.com>
|
||||
2007-02-21 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* testsuite/lib/libstdc++.exp (v3-build_support): Look for
|
||||
__GTHREADS, rather than _GLIBCXX_HAVE_GTHR_DEFAULT, to determine
|
||||
whether or not thread support is available.
|
||||
* testsuite/lib/libstdc++.exp (libstdc++_init): Compile testglue
|
||||
with -fexceptions.
|
||||
|
||||
2005-05-04 Mark Mitchell <mark@codesourcery.com>
|
||||
2007-02-07 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
Backport:
|
||||
2005-03-25 Mark Mitchell <mark@codesourcery.com>
|
||||
* testsuite/lib/libstdc++.exp (libstdc++_init): Define LOCALEDIR
|
||||
when testing an installed compiler.
|
||||
* testsuite/lib/libstdc++.exp (v3-build_support): Pass -w when
|
||||
compiling support objects.
|
||||
2005-03-23 Mark Mitchell <mark@codesourcery.com>
|
||||
* testsuite/libstdc++-dg/normal.exp: Read testsuite_files, if it
|
||||
exists.
|
||||
* testsuite/lib/libstdc++.exp (libstdc++_wchar_t): Rename to ...
|
||||
(v3-wchar_t): ... this.
|
||||
(libstdc++_threads): Rename to ...
|
||||
(v3-threads): ... this.
|
||||
(libstdc++_test_objs): Rename to ...
|
||||
(v3-test_objs): ... this.
|
||||
(libstdc++_build_support): Rename to ...
|
||||
(v3-build_support): ... this.
|
||||
* testsuite/libstdc++-dg/normal.exp: Adjust to use new names.
|
||||
* testsuite/lib/libstdc++.exp (libstdc++_init): Improve handling
|
||||
of compilers not in the build directory.
|
||||
(libstdc++_wchar_t): New variable.
|
||||
(libstdc++_threads): Likewise.
|
||||
(libstdc++_test_objs): Likewise.
|
||||
(v3_target_compile): Use libstdc++_test_objs.
|
||||
(v3-list-tests): Remove.
|
||||
(listdc++_build_support): New function.
|
||||
* testsuite/libstdc++-dg/normal.exp: Rework to dynamically
|
||||
generate list of tests.
|
||||
2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
* testsuite/lib/libstdc++.exp: Use new procs in target-libpath.exp.
|
||||
PR testsuite/28870
|
||||
* testsuite/27_io/basic_stringbuf/overflow/char/1.cc: Use only
|
||||
10000 iterations for simulator targets.
|
||||
* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Use only 5
|
||||
iterations for simulator targets.
|
||||
* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Ditto.
|
||||
* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Ditto.
|
||||
* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Ditto.
|
||||
* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Ditto.
|
||||
* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Ditto.
|
||||
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Ditto.
|
||||
* testsuite/23_containers/set/modifiers/16728.cc: Use only 10
|
||||
iterations for simulator targets.
|
||||
|
||||
2005-04-26 Jones Desougi <jones@ingate.com>
|
||||
2007-02-05 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/21131
|
||||
* linkage.m4: Fix comments.
|
||||
* include/bits/stl_deque.h (operator<): Qualify call.
|
||||
|
||||
2005-04-25 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-02-01 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/21035
|
||||
* include/bits/basic_string.h (compare): Adjust the documentation
|
||||
to match the implementation and the standard.
|
||||
PR libstdc++/14493
|
||||
* libsupc++/typeinfo (bad_cast::what, bad_typeid::what): Declare.
|
||||
* libsupc++/tinfo.cc: Define.
|
||||
* libsupc++/exception (bad_exception::what): Declare.
|
||||
* libsupc++/eh_exception.cc: Define.
|
||||
(exception::what): Adjust, don't use typeid.
|
||||
* libsupc++/new (bad_alloc::what): Declare.
|
||||
* libsupc++/new_handler.cc: Define.
|
||||
* config/abi/pre/gnu.ver: Export the new methods @3.4.9.
|
||||
* testsuite/18_support/14493.cc: New.
|
||||
|
||||
2005-02-20 Paolo Carlini <pcarlini@suse.de>
|
||||
Jon Grimm <jgrimm2@us.ibm.com>
|
||||
|
||||
PR libstdc++/19955
|
||||
* include/bits/locale_facets.h (ctype<char>::_M_narrow_init()):
|
||||
Fix the logic setting _M_narrow_ok: first check whether the
|
||||
transformation is trivial with a dflt == 0, then deal with the
|
||||
special case of zero.
|
||||
* testsuite/22_locale/ctype/narrow/char/19955.cc: New.
|
||||
2007-02-01 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/locale_facets.h (ctype<char>::_M_widen_init()):
|
||||
Tweak consistently to use memcmp; minor formatting fixes.
|
||||
PR libstdc++/29496
|
||||
* include/debug/safe_base.h (_Safe_sequence_base::_M_get_mutex,
|
||||
_Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
|
||||
New.
|
||||
* src/debug.cc: Define the latter.
|
||||
(_Safe_sequence_base::_M_detach_all, _M_detach_singular,
|
||||
_M_revalidate_singular, _M_swap): Use the mutex.
|
||||
(_Safe_iterator_base::_M_attach, _M_detach): Adjust, forward to the
|
||||
*_single version.
|
||||
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach_single,
|
||||
_M_invalidate_single): New.
|
||||
* include/debug/safe_iterator.tcc: Define.
|
||||
(_Safe_iterator<>::_M_invalidate): Adjust, forward to
|
||||
_M_invalidate_single.
|
||||
* include/debug/safe_sequence.h (_Safe_sequence<>::_M_invalidate_if,
|
||||
_M_transfer_iter): Use the mutex, adjust, forward to the *_single
|
||||
versions of _M_invalidate and _M_attach.
|
||||
* config/abi/pre/gnu.ver (_Safe_sequence_base::_M_get_mutex,
|
||||
_Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
|
||||
Add @GLIBCXX_3.4.9; adjust.
|
||||
|
||||
2005-02-18 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
2007-01-27 Steve LoBasso <slobasso@yahoo.com>
|
||||
Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* testsuite/thread/pthread1.cc: Do not invoke pthread_setconcurrency
|
||||
on Solaris 2.6 and below.
|
||||
* testsuite/thread/pthread2.cc: Likewise.
|
||||
* testsuite/thread/pthread3.cc: Likewise.
|
||||
* testsuite/thread/pthread4.cc: Likewise.
|
||||
* testsuite/thread/pthread5.cc: Likewise.
|
||||
* testsuite/thread/pthread6.cc: Likewise.
|
||||
* testsuite/thread/pthread7-rope.cc: Likewise.
|
||||
* include/bits/deque.tcc (deque<>::erase(iterator, iterator)):
|
||||
Fix condition.
|
||||
* testsuite/23_containers/deque/modifiers/erase/3.cc: New.
|
||||
|
||||
2005-02-16 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-01-26 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/19829
|
||||
* testsuite/21_strings/basic_string/find/char/3.cc: Fix the test
|
||||
at line #66 to not access str_lit01 beyond its end.
|
||||
* testsuite/21_strings/basic_string/find/wchar_t/3.cc: Likewise.
|
||||
PR libstdc++/30586
|
||||
* config/cpu/ia64/atomic_word.h: Just include <bits/cxxabi_tweaks.h>.
|
||||
* testsuite/abi/30586.cc: New.
|
||||
|
||||
2005-02-15 Jakub Jelinek <jakub@redhat.com>
|
||||
2007-01-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/19946
|
||||
* testsuite/demangle/abi_examples/01.cc (main): Adjust for 2005-02-13
|
||||
demangler change.
|
||||
* testsuite/demangle/abi_examples/02.cc (main): Likewise.
|
||||
Revert.
|
||||
2006-12-11 Benjamin Kosnik <bkoz@redhat.com>
|
||||
PR libstdc++/28125
|
||||
* acinclude.m4 (GLIBCXX_CHECK_ICONV_SUPPORT): Remove link test, ie
|
||||
AC_CHECK_LIB for libiconv. Instead, use bits of AM_ICONV.
|
||||
* configure: Regenerate.
|
||||
* scripts/testsuite_flags.in (cxxflags): Add LIBICONV bits.
|
||||
|
||||
2005-02-08 Mark Mitchell <mark@codesourcery.com>
|
||||
2007-01-24 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* config/linker-map.gnu (GLIBCXX_3.4): Add _ZNSdC* and _ZNSdD*.
|
||||
PR libstdc++/29722 continued
|
||||
* testsuite/lib/libstdc++.exp (v3_target_compile_as_c): Add
|
||||
libsupc++ library directory.
|
||||
* testsuite/abi/cxx_runtime_only_linkage.cc: Remove hard-coded
|
||||
path specification.
|
||||
|
||||
2005-02-02 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-01-21 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/19642
|
||||
* config/locale/generic/c_locale.h (__convert_from_v): Switch only
|
||||
LC_NUMERIC, and only when actually != "C".
|
||||
PR libstdc++/29989
|
||||
* include/bits/c++config: #undef min and max.
|
||||
* include/bits/stl_algobase.h: Remove min and max #undefs.
|
||||
* testsuite/18_support/numeric_limits/29989.cc: New.
|
||||
|
||||
2005-01-31 Brad Spencer <spencer@infointeractive.com>
|
||||
2007-01-15 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* crossconfig.m4: Repair Solaris cross bits for strtold and strtof.
|
||||
* configure: Regenerated.
|
||||
* include/std/std_valarray.h (valarray<>::cshift): Fix typo.
|
||||
|
||||
2005-01-26 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-01-14 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/std/std_complex.h: Remove usages of the dead
|
||||
_GLIBCXX_BUGGY_COMPLEX macro.
|
||||
* include/bits/stl_algobase.h (fill_n(char*, _Size,
|
||||
const signed char&)): Fix signature.
|
||||
* testsuite/25_algorithms/fill/3.cc: New.
|
||||
|
||||
2005-01-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
2007-01-13 John David Anglin <dave.anglin@nrc-cnrc.gc>
|
||||
|
||||
PR libstdc++/19510
|
||||
* include/bits/stl_list.h (_List_iterator): Initialize _M_node
|
||||
in constructor.
|
||||
(_List_const_iterator): Likewise.
|
||||
* include/bits/stl_tree.h (_Rb_tree_iterator): Likewise.
|
||||
(_Rb_tree_const_iterator): Likewise.
|
||||
* config/cpu/hppa/atomicity.h (__exchange_and_add): Don't use ordered
|
||||
store.
|
||||
(__atomic_add): Likewise.
|
||||
|
||||
* testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
|
||||
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
|
||||
2007-01-13 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
2005-01-18 Paolo Carlini <pcarlini@suse.de>
|
||||
PR libstdc++/14991
|
||||
* docs/html/17_intro/porting-howto.html ([3]): Mention stdio_filebuf.
|
||||
* docs/html/17_intro/porting-howto.xml: Remove.
|
||||
|
||||
* include/bits/stl_tree.h: Add a few missing std:: qualifications.
|
||||
* docs/html/17_intro/porting-howto.html: Remove spurious end tags
|
||||
pointed out by validator.w3.org.
|
||||
|
||||
2005-01-16 Jonathan Wakely <redi@gcc.gnu.org>
|
||||
2007-01-12 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/ext/rope: Qualify calls to std::copy() by sequence_buffer.
|
||||
* testsuite/ext/rope/4.cc: Add.
|
||||
PR libstdc++/30416 (continued)
|
||||
* include/std/std_valarray.h (valarray<>::shift, valarray<>::cshift):
|
||||
Allways return the same variable, thus facilitating NRVO.
|
||||
|
||||
2005-01-12 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-01-12 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/stl_algobase.h (lexicographical_compare):
|
||||
Fix concept check.
|
||||
PR libstdc++/30416
|
||||
* include/std/std_valarray.h (valarray<>::shift, valarray<>::cshift):
|
||||
Do not segfault when |n| > size.
|
||||
* testsuite/26_numerics/valarray/30416.cc: New.
|
||||
|
||||
2005-01-02 Chris Jefferson <chris@bubblescope.net>
|
||||
2007-01-06 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/stl_algobase.h (mismatch): Correct concept check.
|
||||
PR libstdc++/30365
|
||||
* crossconfig.m4 (case *-linux*): Run GLIBCXX_CHECK_LFS.
|
||||
* configure: Regenerate.
|
||||
|
||||
2005-01-01 Paolo Carlini <pcarlini@suse.de>
|
||||
2007-01-06 Matthias Klose <doko@debian.org>
|
||||
|
||||
* testsuite/ext/enc_filebuf/char/13189.cc: Fix, first include
|
||||
testsuite_hooks.h, to know whether including ext/enc_filebuf.h.
|
||||
* testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
|
||||
* include/tr1/random (gamma_distribution): Fix typo in formula.
|
||||
* docs/doxygen/user.cfg.in: Use package amsmath.
|
||||
|
942
contrib/libstdc++/ChangeLog-1998
Normal file
942
contrib/libstdc++/ChangeLog-1998
Normal file
@ -0,0 +1,942 @@
|
||||
1998-12-31 Benjamin Kosnik <bkoz@lunatic.cygnus.com>
|
||||
|
||||
* bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
|
||||
* bits/std_fstream.h: Ditto.
|
||||
* src/stdstreams.cc: Ditto.
|
||||
|
||||
* math/cpowl.c: Fix header typo with last change.
|
||||
|
||||
1998-12-31 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* COPYING: New file (GPL v 2).
|
||||
* LICENSE.STD: Remove.
|
||||
* ./*: Change license.
|
||||
|
||||
1998-12-30 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/std_streambuf.h (std): Remove static on _M_init.
|
||||
* bits/streambuf.tcc (std): Ditto.
|
||||
|
||||
* bits/std_fstream.h: Add changes as discussed with Nathan, including
|
||||
state_type and codecvt_type members, the allocation of an internal
|
||||
buffer, the streamlined codecvt calls, etc.
|
||||
|
||||
1998-12-21 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/std_sstream.h: Tweak.
|
||||
* bits/fstream.tcc: Remove unused stubs.
|
||||
* bits/std_fstream.h: Tweak.
|
||||
|
||||
1998-12-17 Benjamin Kosnik <bkoz@tintin.cygnus.com>
|
||||
|
||||
* bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf.
|
||||
Remove unused _IO_* members, possibly put into filebuf, which may
|
||||
need them.
|
||||
* bits/std_fstream.h: Add _M_flag.
|
||||
* bits/sbuf_iter.h: Tweak.
|
||||
|
||||
* bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
|
||||
* bits/ios_base.h: Use.
|
||||
|
||||
* src/stdstreams.cc: Modify to reflect standard ctors for
|
||||
filebuf.
|
||||
* src/misc-inst.cc: Ditto.
|
||||
|
||||
* bits/os_raw.h: Wrap in std namespace. Model parameters on
|
||||
underlying C library calls instead of the underlying unix
|
||||
filesystem.
|
||||
* src/os_raw.cc (_S_os_open): Use fopen, and compute a mode
|
||||
string as per p.659.
|
||||
(_S_os_close): Model on fopen.
|
||||
(_S_os_read): Model on fread.
|
||||
(_S_os_write): Model on fwrite.
|
||||
(_S_os_seek): Model on fseek.
|
||||
|
||||
* bits/ios_base.h: Tweak.
|
||||
* bits/std_iosfwd.h: Wrap libio.h include with extern "C".
|
||||
* bits/std_sstream.h: Tweak.
|
||||
* bits/sstream.tcc: Remove old, uncalled code.
|
||||
* bits/std_fstream.h: Major reconstruction.
|
||||
* bits/fstream.tcc: Disable for the time being.
|
||||
|
||||
1998-12-11 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/basic_string.h: Fix insert method.
|
||||
* stl/bits/stl_iterator.h: Remove previous hack.
|
||||
* bits/std_streambuf.h (sbumpc): Correct increment/return oddness.
|
||||
* bits/std_sstream.h: Fix more regressions.
|
||||
* testsuite/27/27stringbuf.C: Add (almost) complete tests.
|
||||
|
||||
1998-12-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* bits/basic_string.h: Tweak.
|
||||
|
||||
* stl/bits/stl_iterator.h: Specialize iterator_traits for int so
|
||||
that string::append can be instantiated. HACK--checkin
|
||||
basic_string::iterator class.
|
||||
|
||||
1998-12-07 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/std_sstream.h: Tweak.
|
||||
* bits/sstream.tcc: Tweak ctors.
|
||||
|
||||
FIXME invalid friend defs. . WHERE ARE THEY??
|
||||
|
||||
* bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
|
||||
names for basic_streambuf data members.
|
||||
|
||||
* bits/std_streambuf.h: Add getloc() initialization bits.
|
||||
basic_streambuf(): Initialize with global locale data.
|
||||
imbue(): Set _M_init.
|
||||
|
||||
* bits/std_streambuf.h(seekoff, seekpos): Complete with invalid
|
||||
stream pos == pos_type(off_type(-1)).
|
||||
in_avail(): Complete default implementation.
|
||||
snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn,
|
||||
underflow, uflow, xsgetn, showmany, sync: Ditto.
|
||||
|
||||
* bits/std_streambuf.h: _M_snextc_helper(): Remove.
|
||||
|
||||
* bits/streambuf.tcc (sputbackc): Temporarily remove, need to
|
||||
re-populate with in-line member functions that are too big. Add
|
||||
initialization for _M_init.
|
||||
|
||||
1998-12-03 Benjamin Kosnik <bkoz@cygnus.com>
|
||||
|
||||
* bits/sstream.tcc: Convert _Allocator to _Alloc. Add typedefs
|
||||
for basic_string and basic_streambuf. Scope _IO_buf_* pointers to
|
||||
streambuf_type.
|
||||
|
||||
* src/stdstreams.cc (std): Disable wchar_t instantiations.
|
||||
|
||||
* bits/c++config.h (_G_DEPRICATED): Add.
|
||||
(_G_USE_WCHAR_T): Add.
|
||||
* bits/std_streambuf.h: Radical reconstruction of basic_streambuf.
|
||||
Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf.
|
||||
* bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak.
|
||||
* bits/std_fstream.h: Add comment for implementation.
|
||||
* src/streambuf.cc: Remove.
|
||||
* src/Makefile.in: Remove streambuf.lo.
|
||||
* src/misc-inst.cc: Tweak.
|
||||
|
||||
1998-12-02 Benjamin Kosnik <bkoz@cygnus.com>
|
||||
|
||||
* bits/std_sstream.h: Add const_cast to rdbuf returns.
|
||||
* testsuite/27stringstream.C: Modify.
|
||||
|
||||
1998-11-25 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
|
||||
(libstdc___la_SOURCES): Ditto.
|
||||
|
||||
* bits/streambuf.tcc: Tweak.
|
||||
|
||||
* src/streambuf.cc: New file, add out-of-line definitions for
|
||||
_Streambuf_base.
|
||||
|
||||
* src/misc-inst.cc: Remove _Streambuf_base instantiations.
|
||||
Comment out wchar_t versions of the buffer instantiations, for now.
|
||||
|
||||
* bits/std_streambuf.h: Wrap libio.h include with extern "C".
|
||||
Remove template wrapper around _Streambuf_base.
|
||||
Move IO_* data members into _Streambuf_base.
|
||||
Move _Streambuf_base members into streambuf.tcc.
|
||||
|
||||
* bits/c++config.h (_G_USE_LIBIO): Enable.
|
||||
|
||||
1998-11-02 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* CHECKLIST: downgrade iterator implementations
|
||||
* DESIGN: fill out notes about unimplemented features
|
||||
|
||||
1998-10-31 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* CHECKLIST: itemized list of all interfaces, and status of each.
|
||||
|
||||
1998-10-30 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* RELEASE-NOTES: add notes about optional includes, linking, running
|
||||
* src/Makefile.am: handle header installs properly
|
||||
* src/Makefile.in: regenerate from new src/Makefile.am
|
||||
|
||||
1998-10-30 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* bits/basic_string.h: Revert npos pending ciso646.
|
||||
* src/Makefile.am: Revert CXX flags for now.
|
||||
* src/Makefile.in: Ditto.
|
||||
|
||||
1998-10-30 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/std_sstream.h: Re-order ctors to put base before member
|
||||
inits.
|
||||
|
||||
1998-10-30 Ryszard Kabatek <kabatek@chemie.uni-halle.de>
|
||||
|
||||
* stl/bits/std_memory.h: Fix typo.
|
||||
|
||||
1998-10-30 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* src/string[A-Z]+.cc: change back to include "string.cc".
|
||||
* src/Makefile.am: revert filename changes. We need a different
|
||||
way to keep filenames in std/ from confusing Make.
|
||||
* bits/basic_string.h: define _S_max_size right, return it from
|
||||
string::max_size(); churn definition of npos again.
|
||||
* bits/string.tcc: fix _S_frob_size to avoid uint overflow.
|
||||
* bits/ios.cc: remove #ifdef on ios_base locale member initialization
|
||||
* BUGS: clear cruft.
|
||||
* C++STYLE: Touchup for release.
|
||||
* CHECKLIST: Touchup for release.
|
||||
* DESIGN: New file.
|
||||
* LICENSE.STD: Add requirement to retain copyrights and to provide
|
||||
the license with any copies.
|
||||
* README: Update for release.
|
||||
* TODO: Minor touchup for release.
|
||||
* RELEASE-NOTES: prepare for release
|
||||
|
||||
1998-10-29 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.
|
||||
|
||||
* src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.
|
||||
|
||||
* src/Makefile.am (CXXLINK): New variable. Make sure we don't use
|
||||
CXX to generate the shared object.
|
||||
|
||||
* src/Makefile.am (headers): Remove duplicated char_traits.h.
|
||||
|
||||
1998-10-29 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
|
||||
2, from npos, solving infinite loop problems.
|
||||
|
||||
1998-10-29 18:41 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* src/Makefile.am: Add rules to install headers.
|
||||
|
||||
1998-10-29 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/std_ostream.h: Remove #ifdef on operator<< for long double
|
||||
* bits/ostream.tcc: Remove #ifdef on operator<< for long double
|
||||
* shadow/libio.h:
|
||||
* shadow/unistd.h:
|
||||
* shadow/bits/wrap_libio.h:
|
||||
* shadow/bits/wrap_unistd.h: New files.
|
||||
|
||||
1998-10-29 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/ostream.tcc (operator<<): Wrap with #ifdef
|
||||
_G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.
|
||||
|
||||
1998-10-29 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
|
||||
is not compiled with -fno-implicit-templates in effect.
|
||||
|
||||
* src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here.
|
||||
(libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files.
|
||||
* src/stringADDCS.cc: Wrapper around string.cc to define individual
|
||||
function.
|
||||
* src/stringADDPS.cc: Likewise.
|
||||
* src/stringADDSC.cc: Likewise.
|
||||
* src/stringADDSP.cc: Likewise.
|
||||
* src/stringADDSS.cc: Likewise.
|
||||
* src/stringBIST.cc: Likewise.
|
||||
* src/stringBOST.cc: Likewise.
|
||||
* src/stringCHTR.cc: Likewise.
|
||||
* src/stringEQPS.cc: Likewise.
|
||||
* src/stringEQSP.cc: Likewise.
|
||||
* src/stringEQSS.cc: Likewise.
|
||||
* src/stringEXTRA.cc: Likewise.
|
||||
* src/stringGEPS.cc: Likewise.
|
||||
* src/stringGESP.cc: Likewise.
|
||||
* src/stringGESS.cc: Likewise.
|
||||
* src/stringGETLI.cc: Likewise.
|
||||
* src/stringGTPS.cc: Likewise.
|
||||
* src/stringGTSP.cc: Likewise.
|
||||
* src/stringGTSS.cc: Likewise.
|
||||
* src/stringINSER.cc: Likewise.
|
||||
* src/stringLEPS.cc: Likewise.
|
||||
* src/stringLESP.cc: Likewise.
|
||||
* src/stringLESS.cc: Likewise.
|
||||
* src/stringLTPS.cc: Likewise.
|
||||
* src/stringLTSP.cc: Likewise.
|
||||
* src/stringLTSS.cc: Likewise.
|
||||
* src/stringMAIN.cc: Likewise.
|
||||
* src/stringNEPS.cc: Likewise.
|
||||
* src/stringNESP.cc: Likewise.
|
||||
* src/stringNESS.cc: Likewise.
|
||||
* src/stringSCOPY.cc: Likewise.
|
||||
* src/wstringADDCS.cc: Wrapper around wstring.cc to define individual
|
||||
functions.
|
||||
* src/wstringADDPS.cc: Likewise.
|
||||
* src/wstringADDSC.cc: Likewise.
|
||||
* src/wstringADDSP.cc: Likewise.
|
||||
* src/wstringADDSS.cc: Likewise.
|
||||
* src/wstringBIST.cc: Likewise.
|
||||
* src/wstringBOST.cc: Likewise.
|
||||
* src/wstringCHTR.cc: Likewise.
|
||||
* src/wstringEQPS.cc: Likewise.
|
||||
* src/wstringEQSP.cc: Likewise.
|
||||
* src/wstringEQSS.cc: Likewise.
|
||||
* src/wstringEXTRA.cc: Likewise.
|
||||
* src/wstringGEPS.cc: Likewise.
|
||||
* src/wstringGESP.cc: Likewise.
|
||||
* src/wstringGESS.cc: Likewise.
|
||||
* src/wstringGETLI.cc: Likewise.
|
||||
* src/wstringGTPS.cc: Likewise.
|
||||
* src/wstringGTSP.cc: Likewise.
|
||||
* src/wstringGTSS.cc: Likewise.
|
||||
* src/wstringINSER.cc: Likewise.
|
||||
* src/wstringLEPS.cc: Likewise.
|
||||
* src/wstringLESP.cc: Likewise.
|
||||
* src/wstringLESS.cc: Likewise.
|
||||
* src/wstringLTPS.cc: Likewise.
|
||||
* src/wstringLTSP.cc: Likewise.
|
||||
* src/wstringLTSS.cc: Likewise.
|
||||
* src/wstringMAIN.cc: Likewise.
|
||||
* src/wstringNEPS.cc: Likewise.
|
||||
* src/wstringNESP.cc: Likewise.
|
||||
* src/wstringNESS.cc: Likewise.
|
||||
* src/wstringSCOPY.cc: Likewise.
|
||||
* src/string.cc: Remove now unneeded #defines now.
|
||||
|
||||
1998-10-29 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/locfacets.tcc: Define num_put::put(... const void*), improve
|
||||
integer formatting.
|
||||
* bits/ostream.tcc: Delete cruft, rewrite various op<< as members,
|
||||
add definitions for double, long double, const void*.
|
||||
* bits/std_ostream.h: Move op<<'s back into class ostream,
|
||||
define some in-line.
|
||||
* bits/string.tcc: fix unnecessary-copying bug in op[], typos in
|
||||
string construction from input iterators that Brendan reported.
|
||||
|
||||
|
||||
1998-10-28 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.
|
||||
|
||||
* bits/valarray_meta.h (class _Constant): Move declaration to the
|
||||
top, so the rest of the file can grok it.
|
||||
(_ApplyBinaryFunction::operator[]): Add missing parenthesis.
|
||||
|
||||
* bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
|
||||
semicolon.
|
||||
(basic_stringstream::str, both instances): Likewise.
|
||||
|
||||
1998-10-28 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/locfacets.h: fix num_put<>::falsename()
|
||||
* bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init
|
||||
* testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests
|
||||
* bits/locfacets.tcc: touch up _S_group_digits.
|
||||
* src/misc-inst.cc: adjust _S_group_digits insts to match.
|
||||
|
||||
1998-10-27 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* stl/bits/stl_config.h: Turn off long long support, for now.
|
||||
* src/locale-inst.cc: Instantiate num_put<> only for
|
||||
ostreambuf_iterator, num_get only for istreambuf_iterator.
|
||||
* src/misc-inst.cc: Delete duplicate locale-related instantiations,
|
||||
add lots of new instantiations for num_put support function templates;
|
||||
remove junk about __match_parallel for ostreambuf_iterator.
|
||||
|
||||
1998-10-27 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/locfacets.tcc: Make num_put's digit grouping work.
|
||||
* bits/string.tcc: More uglification.
|
||||
* src/ios.cc: initialize format cache right
|
||||
|
||||
1998-10-26 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/basic_string.h: Uglify more names.
|
||||
* bits/fstream.tcc: Rewrite some filebut output handling.
|
||||
* bits/ios_base.h: Cosmetic.
|
||||
* bits/locfacets.h: Changes to _Format_cache for support of num_put.
|
||||
Also, specialize its default ctor for optimal default case.
|
||||
#ifdef out "long long" prototypes for now.
|
||||
* bits/locfacets.tcc: Do complete, optimized num_put<>::do_put
|
||||
implementation for integer types. (Still needs optimized
|
||||
std::copy() applied to ostreambuf_iterator to be optimal.)
|
||||
* bits/ostream.tcc: Write operator<< for long, bool types.
|
||||
Make other operators<< non-members, per spec. (Many still
|
||||
not implemented.) Identify those that fail to create a sentry.
|
||||
* bits/sbuf_iter: Cosmetic.
|
||||
* bits/std_fstream.h: Add some filebuf members.
|
||||
* bits/std_locale.h: Include <limits> for use in bits/locfacets.h
|
||||
* bits/std_ostream.h: Make member operators<< global, per spec.
|
||||
(Should do the same in std_istream.h.)
|
||||
* bits/std_string.h: Include <limits> for use in bits/locfacets.h
|
||||
* bits/string.tcc: Uglify names
|
||||
* shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv.
|
||||
* src/ios.cc: Specialize _Format_cache<> for char and wchar_t,
|
||||
for optimal default behavior.
|
||||
|
||||
1998-10-26 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.
|
||||
|
||||
1998-10-21 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* src/locale.cc: make ctype operations actually work for glibc
|
||||
* CHECKLIST: add a comprehensive (i.e. huge) implementation
|
||||
checklist of stdlib facilities. Not filled in yet.
|
||||
|
||||
1998-10-20 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/string.tcc: fix patching NULs on string ends.
|
||||
|
||||
1998-10-19 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf
|
||||
iterator forward declarations
|
||||
* bits/sbuf_iter.h: eliminate default template argument definitions
|
||||
on streambuf iterators (rely on <iosfwd> decls).
|
||||
* TODO: add note about lazy facet construction
|
||||
* bits/basic_ios.h: hit operator void* again. This should be the
|
||||
last time we need to touch it.
|
||||
* bits/basic_ios.h: copyfmt now returns *this.
|
||||
* bits/basic_string.h: fix npos again. npos cannot be defined as zero.
|
||||
* bits/basic_string.h: put back overloaded constructors; adjust
|
||||
behavior for default allocator on copy constructor.
|
||||
* bits/char_traits.h: make not_eof return correct type.
|
||||
* bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes
|
||||
cannot be in non-standard headers or we get include loops (bad)
|
||||
* bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs.
|
||||
* bits/loccore.h: add apparatus to support lazy construction of
|
||||
facets.
|
||||
* bits/locfacets.tcc: Uglify names in __match_parallel decl.
|
||||
* bits/std_ios.h: add include of <typeinfo> to get bad_cast for
|
||||
locale use_facet<> failure.
|
||||
* bits/std_locale.h: same.
|
||||
* bits/std_string.h: same.
|
||||
* bits/std_stdexcept.h: change exception member __msg from a
|
||||
reference to a regular object.
|
||||
* bits/string.tcc: add pasting a NUL on the end of strings after
|
||||
each operation. We had already left room for it, but previously
|
||||
plugged it only on a call to c_str(), but the WG changed the
|
||||
requirement when I wasn't looking. (Can't leave them alone for
|
||||
a second without they break something else.)
|
||||
* bits/valarray_meta.h: add Gaby's changes from 981018.
|
||||
* src/locale.cc: add new type _Bad_use_facet to be thrown on
|
||||
failure of use_facet<>().
|
||||
* src/stdexcept.cc: remove pragma, remove bkoz's #if 0,
|
||||
comment out leftover member definitions
|
||||
|
||||
1998-10-16 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* string/Makefile.am: Revert last change.
|
||||
* math/Makefile.am: Likewise.
|
||||
|
||||
1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/std_sstream.h: Fix typo.
|
||||
|
||||
1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.
|
||||
|
||||
* bits/std_sstream.h: Add typedefs, member definitions. Clean.
|
||||
* bits/std_stdexcept.h: Remove.
|
||||
|
||||
1998-10-15 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* src/misc-inst.cc: Tweak again.
|
||||
|
||||
* bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
|
||||
* bits/sstream.tcc: New file.
|
||||
|
||||
1998-10-15 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* configure.in: Test for machine/param.h, sys/machine.h and fp.h.
|
||||
Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are
|
||||
available.
|
||||
|
||||
* math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h
|
||||
if available.
|
||||
(INFINITE_P): Use IS_INF macro if available.
|
||||
|
||||
1998-10-15 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
|
||||
noinst_LTLIBRARIES.
|
||||
* string/Makefile.am: Likewise.
|
||||
|
||||
1998-10-15 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and
|
||||
qfpclass.
|
||||
(AC_CHECK_HEADERS): Add machine/endian.h. If no header specifying
|
||||
endianess is available run AC_C_BIGENDIAN.
|
||||
|
||||
* math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until
|
||||
fixincludes is fixed.
|
||||
* math/clogl.c: Likewise.
|
||||
* math/csqrtl.c: Likewise.
|
||||
* math/mycabsl.c: Likewise.
|
||||
|
||||
* math/mathconf.h: Include machine/endian.h if possible. If no
|
||||
header describing endianess is available rely on WORDS_BIGENDIAN
|
||||
macro.
|
||||
(FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available.
|
||||
(INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if
|
||||
available.
|
||||
|
||||
* src/complex.cc (polar): Don't use sincos on OSF machines.
|
||||
|
||||
1998-10-09 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* src/locale-inst.cc: Don't instantiate time_get for
|
||||
ostreambuf_iterators as time_get::do_get_weekday and
|
||||
time_get::do_get_monthname use __match_parallel, which is illegal
|
||||
for ostreambuf_iterators to use, as they don't have operator== or
|
||||
operator!=.
|
||||
* bits/std_stdexcept.h: Add dtor definitions.
|
||||
Use stl/bits/std_stdexcept.h instead of this file?
|
||||
* bits/sbuf_iter.h : Tweak.
|
||||
* src/misc-inst.cc: Tweak.
|
||||
|
||||
1998-10-09 Benjamin Kosnik <bkoz@haight.constant.com>
|
||||
|
||||
* bits/std_stdexcept.h: New file.
|
||||
* src/stdexcept.cc: Define the following:
|
||||
logic_error::what()
|
||||
runtime_error::what()
|
||||
|
||||
* src/misc-inst.cc: New file.
|
||||
* src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc.
|
||||
(libstdc___la_OBJECTS): Add misc-inst.lo.
|
||||
|
||||
* bits/basic_string.h: Disable non-standard ctor declarations.
|
||||
* bits/string.tcc: Disable definitions as well.
|
||||
* src/string.cc: Disable <ios> dependencies.
|
||||
* bits/sbuf_iter.h (std): Add default to template parameter for
|
||||
ostreambuf_iterator and istreambuf_iterator.
|
||||
* bits/std_iosfwd.h: Change istreambuf_iterator to
|
||||
basic_istreambuf_iterator. Likewise for ostreambuf.
|
||||
* bits/locfacets.tcc (__match_parallel): Fix typo.
|
||||
* src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around
|
||||
ios_base::imbue.
|
||||
* bits/std_streambuf.h: Define _Streambuf_base::getloc().
|
||||
* bits/std_istream.h: Define the following:
|
||||
get (basic_streambuf<char_type,_Traits>& __sb, char_type __delim)
|
||||
get (char_type* __s, streamsize __n, char_type __delim);
|
||||
getline (char_type* __s, streamsize __n, char_type __delim)
|
||||
* bits/loccore.h : FIXME friend template code for use_facet.
|
||||
Add std_stdexcept.h include so that range_error will be defined.
|
||||
Add explicit conversion to string for range_error throws. (HACK?)
|
||||
|
||||
1998-10-8 Ulrich Drepper <drepepr@cygnus.com>
|
||||
|
||||
* configure.in: Check for sincos, sincosf, and sincosl.
|
||||
* src/complex.cc (polar): Use sincos if available.
|
||||
|
||||
* bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux.
|
||||
* stl/bits/std_limits.h: Include bits/c++config.h. HACK!!!
|
||||
|
||||
* math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).
|
||||
|
||||
* math/cpow.c: Use c_log, not clog.
|
||||
* math/cpowf.c: Likewise.
|
||||
* math/cpowl.c: Likewise.
|
||||
|
||||
* math/cexp.c: Remove unused fpclassify calls. Use FINITE_P instead
|
||||
of isfinite call.
|
||||
|
||||
* math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using
|
||||
isfinite macro if it is available.
|
||||
(INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro.
|
||||
|
||||
* math/ccosf.c: Use appropriate test macros for this type.
|
||||
* math/ccoshf.c: Likewise.
|
||||
* math/ccoshl.c: Likewise.
|
||||
* math/ccosl.c: Likewise.
|
||||
* math/cexpf.c: Likewise.
|
||||
* math/cexpl.c: Likewise.
|
||||
* math/clog10f.c: Likewise.
|
||||
* math/clog10l.c: Likewise.
|
||||
* math/clogf.c: Likewise.
|
||||
* math/clogl.c: Likewise.
|
||||
* math/csinf.c: Likewise.
|
||||
* math/csinhf.c: Likewise.
|
||||
* math/csinhl.c: Likewise.
|
||||
* math/csinl.c: Likewise.
|
||||
* math/csqrtf.c: Likewise.
|
||||
* math/csqrtl.c: Likewise.
|
||||
* math/ctanf.c: Likewise.
|
||||
* math/ctanhf.c: Likewise.
|
||||
* math/ctanhl.c: Likewise.
|
||||
* math/ctanl.c: Likewise.
|
||||
|
||||
1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
|
||||
|
||||
* bits/basic_ios.h: Fix previous change.
|
||||
|
||||
1998-10-06 Benjamin Kosnik <bkoz@bliss.nabi.net>
|
||||
|
||||
* bits/basic_ios.h: Add const_cast<basic_ios&>
|
||||
(operator void*): As per 5.2.9 p 2, make sure static_cast is
|
||||
well-formed.
|
||||
* bits/char_traits.h: No _CharT for specialization, change to 0.
|
||||
* bits/basic_string.h: As per 9.4.2 p4, initialize with
|
||||
constant-initializer.
|
||||
* bits/locfacets.tcc: Add template parameter to initialization list.
|
||||
|
||||
1998-10-02 Benjamin Kosnik <bkoz@loony.cygnus.com>
|
||||
|
||||
* bits/basic_string.h: Should just be <, not <=.
|
||||
|
||||
1998-10-01 Benjamin Kosnik <bkoz@bliss.nabi.net>
|
||||
|
||||
* bits/string.tcc (compare): Fix for strings that are similar, but
|
||||
not the same length.
|
||||
|
||||
1998-09-04 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/c++config.h: For __linux__, define _GNU_SOURCE. This is
|
||||
required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h.
|
||||
We can't check for __GLIBC__ here, since this header can be read
|
||||
before any system one (that would lead to features.h) being used.
|
||||
|
||||
* stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled
|
||||
|
||||
* stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
|
||||
LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.
|
||||
|
||||
* stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses
|
||||
LONGLONG_{MIN,MAX} which I can't find the origin of.
|
||||
|
||||
1998-09-03 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* stl/bits/stl_iterator.h: Add extern decl of cin for now; where
|
||||
should this come from, if not iostream.h?
|
||||
(class istream_iterator): Make the new operator!= a friend also.
|
||||
|
||||
* stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T,
|
||||
__STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG. Don't include
|
||||
_G_config.h like the egcs one does.
|
||||
|
||||
1998-09-01 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/string.tcc: Call `_M_destroy' instead of `destroy'.
|
||||
|
||||
* bits/valarray_meta.h: Throughout, rename _Expr typedefs to be
|
||||
_Expr1 (or _Expr_def if it's taken), and change definitions.
|
||||
Avoids redecl of the template parm.
|
||||
|
||||
* bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
|
||||
(operator>>): Initialize __ERROR with ios_base::goodbit, not 0.
|
||||
|
||||
* bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
|
||||
already done.
|
||||
|
||||
* src/locale-inst.cc: New file, **TOTAL HACK**. There has GOT to
|
||||
be a better way to do this.
|
||||
|
||||
* src/stlinst.cc: New file.
|
||||
|
||||
* BUGS: New file, with various discovered bugs that need to be
|
||||
fixed.
|
||||
|
||||
* Makefile.in, math/Makefile.in, string/Makefile.in,
|
||||
src/Makefile.in: Reran automake.
|
||||
|
||||
Workarounds, these may not all be the final fixes:
|
||||
|
||||
* bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected,
|
||||
not private, for basic_istream::get() in std_istream.h to be able
|
||||
to use it.
|
||||
(basic_ios::operator void*): Don't use static_cast for the false
|
||||
case.
|
||||
(basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'.
|
||||
This appears to have been in sep94, but didn't get corrected
|
||||
afterwards.
|
||||
|
||||
* bits/basic_string.h (npos): Don't init here.
|
||||
* bits/string.tcc: Instead, do initialization here, to -1 instead
|
||||
of the size_type destructor.
|
||||
|
||||
* src/traits.cc, src/wtraits.cc: New files.
|
||||
* bits/char_traits.h: For char_traits<char> and
|
||||
char_traits<wchar_t>, declare static, but define over in the src
|
||||
files.
|
||||
|
||||
* bits/gslice.h: Comment out forward decls of _Array, valarray,
|
||||
gslice_array, and _GsliceExpression.
|
||||
|
||||
* bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of
|
||||
clearerr, feof, ferror, getc, getchar, putc, putchar, stdin,
|
||||
stdout, and stderr. Note we do get unresolved refs to stdin, but
|
||||
that'll get fixed by the "true" solution.
|
||||
|
||||
* bits/std_ios.h: Include <bits/std_streambuf.h> to get the
|
||||
definition of basic_streambuf.h, which is used in basic_ios.h to
|
||||
call pubimbue.
|
||||
|
||||
* bits/std_streambuf.h: Don't include libio.h for now.
|
||||
(class basic_streambuf): Define missing methods pubimbue and
|
||||
getloc.
|
||||
|
||||
* src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc,
|
||||
ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc,
|
||||
locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc.
|
||||
|
||||
* src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.
|
||||
|
||||
* src/locale.cc: Come up with munged versions of _S_toupper,
|
||||
_S_tolower, and _S_table instead of the glibc-specific ones, so
|
||||
they're at least defined, if not necessarily usable. The glibc
|
||||
ones on any other system will yield unresolved refs to
|
||||
__ctype_{b,toupper,tolower}.
|
||||
|
||||
* src/string.cc: Define all of ADDCS, ADDPS, et al. Add
|
||||
basic_ios, basic_istream, basic_ostream. Don't do char_traits
|
||||
anymore cuz of the explicit specialization in char_traits.h.
|
||||
Also add _S_string_copy, but this doesn't fix it -- cf the BUGS
|
||||
file for the details.
|
||||
|
||||
* stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
|
||||
* stl/bits/stl_iterator.h (__distance): Likewise.
|
||||
|
||||
* stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=,
|
||||
op>, op<=, and op>= for reverse_iterator. Also add op!= for
|
||||
istream_iterator.
|
||||
|
||||
1998-08-26 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* bits/string.tcc (basic_string::compare (const char*)): Fix to
|
||||
return 0, not 1.
|
||||
|
||||
1998-08-25 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
This should really be fixed with __asm__ directives renaming the
|
||||
symbol, but keeping the function.
|
||||
* math/clogf.c (c_logf): Renamed from `clogf'.
|
||||
* math/clogl.c (c_logl): Renamed from `clogl'.
|
||||
* math/complex-stub.h (c_logf, c_logl): Change decls.
|
||||
|
||||
* bits/locfacets.h (class _Numeric_get): For friend decls, rename
|
||||
_CharT and _InIter parms, since they duplicate the enclosing ones.
|
||||
|
||||
1998-08-19 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
Deal with conflict of the iostreams `clog' and our internal
|
||||
complex number `clog'.
|
||||
* src/complex.cc: Call `c_log' instead of `clog'.
|
||||
* math/clog.c (c_log):: Renamed from clog.
|
||||
* math/complex-stub.h (c_log): Renamed from clog decl.
|
||||
|
||||
* bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the
|
||||
get/put classes.
|
||||
(num_put::put): #if 0 long long version, since we don't declare or
|
||||
define the long long version of do_put.
|
||||
|
||||
1998-08-18 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/basic_string.h: add basic_string<>::push_back(), fix return
|
||||
type of get_allocator (thanks to Ryszard Kabatek).
|
||||
* bits/char_traits.h: make init order of fpos<> members
|
||||
match decl order.
|
||||
* bits/ios_base.h: fix decls of ios_base bitmask & enum types, add
|
||||
flags _S_fd_in etc. for special filebuf ctor.
|
||||
* bits/locfacets.h: make _Numeric_get and _Format_cache public
|
||||
to work around problems in friend declarations.
|
||||
* bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&),
|
||||
fix random type errors & typos
|
||||
* bits/std_fstream.h: major refitting to bypass libio (for now),
|
||||
instrument to use bits/fstream.tcc template definitions
|
||||
* bits/std_iosfwd.h: mess with wrappers
|
||||
* bits/std_istream.h: remove meaningless comment
|
||||
* bits/std_ostream.h: instrument to work with ostream.tcc.
|
||||
* bits/std_streambuf.h: instrument to work with streambuf.tcc
|
||||
* bits/fstream.tcc: template defs for <fstream>
|
||||
* bits/ostream.tcc: template defs for <ostream>
|
||||
* bits/streambuf.tcc: template defs for <streambuf>
|
||||
* bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now).
|
||||
* Delete .cc files, replace with bits/*.tcc
|
||||
src/fstream.cc
|
||||
src/istream.cc
|
||||
src/ostream.cc
|
||||
src/streambuf.cc
|
||||
* Add files:
|
||||
src/os_raw.cc: thin interface to OS, to bypass libio (for now).
|
||||
src/stdstreams.cc: cout, cin, etc. definitions
|
||||
(these still need work: must be init'd before user statics.)
|
||||
|
||||
|
||||
1998-08-18 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
Sent to SGI before checkin:
|
||||
* stl/bits/stl_vector.h (operator!=, operator>, operator<=,
|
||||
operator>=): Define.
|
||||
* stl/bits/stl_bvector.h (vector<bool>::flip): Define method.
|
||||
* stl/bits/stl_deque.h (operator!=, operator>, operator<=,
|
||||
operator>=): Define.
|
||||
(operator==, operator<): Add inline.
|
||||
* stl/bits/stl_map.h (operator!=, operator<, operator<=,
|
||||
operator>=): Define.
|
||||
* stl/bits/stl_multimap.h (operator!=, operator<, operator<=,
|
||||
operator>=): Define.
|
||||
* stl/bits/stl_list.h (operator!=, operator<, operator<=,
|
||||
operator>=): Define.
|
||||
* stl/bits/stl_set.h (operator!=, operator<, operator<=,
|
||||
operator>=): Define.
|
||||
* stl/bits/stl_multiset.h (operator!=, operator<, operator<=,
|
||||
operator>=): Define.
|
||||
|
||||
* bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
|
||||
unary_function.
|
||||
|
||||
1998-08-15 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/ios_base.h: change nominal bitmask and enum types to real enums
|
||||
* bits/locfacets.h: make _Format_cache bool names usable by num_get
|
||||
* bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache
|
||||
* bits/std_fstream.h: minor cleanups: ctors delegate to open()
|
||||
* bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate
|
||||
* bits/std_sstream.h: formatting cleanups
|
||||
|
||||
1998-08-14 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/locfacets.tcc: implement num_get<>::do_get(..., bool&)
|
||||
* bits/locfacets.tcc: implement time_get<>::do_get_weekday
|
||||
* bits/locfacets.tcc: implement time_get<>::do_get_monthname
|
||||
* bits/locfacets.h: fix missing argument in do_get_monthname
|
||||
(this is a bug in the standard, ref. 36 in my list.)
|
||||
* bits/locfacets.h: make month and day name caches mutable
|
||||
* bits/locfacets.tcc: various typos in get() functions
|
||||
* bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++().
|
||||
* bits/std_streambuf.h: fix typo in sgetn (Brendan)
|
||||
|
||||
1998-08-12 Nathan Myers <ncm@cantrip.org>
|
||||
* move streambuf iterators to bits/sbuf_iter.h
|
||||
* optimize streambuf iterators
|
||||
* begin generalizing streambuf
|
||||
* begin implementing num_get<>::get (starting with bool)
|
||||
* patch stl/bits/stl_config.h so that relops operators are
|
||||
contained properly, out of the way.
|
||||
|
||||
1998-07-24 Nathan Myers <ncm@cantrip.org>
|
||||
* Fold in SGI 3.11 changes (uglified names, some algorithm
|
||||
improvements, very minor bug fixes.)
|
||||
* Uglify names elsewhere to match (s/_T/_Tp/).
|
||||
* Begin work on optimized streambuf
|
||||
* Put complex.cc in namespace std:: (thanks Martin)
|
||||
|
||||
1998-07-17 Nathan Myers <ncm@cantrip.org>
|
||||
|
||||
* bits/char_traits.h: add _Char_traits_match template.
|
||||
* bits/string.tcc: fix bugs in various find_last* members.
|
||||
* bits/basic_string.h: redeclare member _S_find.
|
||||
* stl/bits/stl_iterator.h: change member names in nonstandard
|
||||
templates bidirectional_reverse_iterator and
|
||||
random_access_reverse_iterator to match expected changes
|
||||
in upstream source.
|
||||
* src/string.cc: fix definitions of stream operators.
|
||||
|
||||
1998-07-14 16:06 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* Makefile.am (SUBDIRS): Add string.
|
||||
|
||||
* configure.in: Test for long double functions separately. Test for
|
||||
ISO C 89 float functions. Test for endian.h and sys/isa_defs.h.
|
||||
Generate string/Makefile.
|
||||
|
||||
* bits/c++config.h: Define mbstate_t for Solaris.
|
||||
|
||||
* bits/char_traits.h: Remove unused #if.
|
||||
|
||||
* bits/std_cwchar.h: Declare wide char string functions.
|
||||
|
||||
* m4/stringfcts.m4: New file.
|
||||
|
||||
* math/complex-stub.h: Declare nan.
|
||||
* math/nan.c: New file.
|
||||
|
||||
* math/mathconf.h: Hack around missing endian.h file.
|
||||
Handle missing NAN definition.
|
||||
Handle missing float math functions.
|
||||
|
||||
* src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
|
||||
(libstdc___la_LDFLAGS): Set version information.
|
||||
|
||||
* src/complexl.cc: Don't compile any code if no long double functions
|
||||
are available.
|
||||
|
||||
* string/Makefile.am: New file.
|
||||
* string/dummy.c: New file.
|
||||
* string/wmemchr.c: New file.
|
||||
* string/wmemcmp.c: New file.
|
||||
* string/wmemcpy.c: New file.
|
||||
* string/wmemmove.c: New file.
|
||||
* string/wmemset.c: New file.
|
||||
|
||||
1998-07-14 10:45 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* configure.in: Make it work.
|
||||
* install-sh: New file.
|
||||
* missing: New file.
|
||||
* mkinstalldirs: New file.
|
||||
* m4/mathfcts.m4: New file.
|
||||
* math/Makefile.am: New file.
|
||||
|
||||
* bits/std_complex.h (conj): Mark specializations as inline.
|
||||
|
||||
* math/carg.c: New file.
|
||||
* math/cargf.c: New file.
|
||||
* math/cargl.c: New file.
|
||||
* math/mycabs.c: New file.
|
||||
* math/mycabsf.c: New file.
|
||||
* math/mycabsl.c: New file.
|
||||
* math/signbit.c: New file.
|
||||
* math/signbitf.c: New file.
|
||||
* math/signbitl.c: New file.
|
||||
|
||||
* math/ccos.c: Avoid ISO C 9x functionality.
|
||||
* math/ccosf.c: Likewise.
|
||||
* math/ccosh.c: Likewise.
|
||||
* math/ccoshf.c: Likewise.
|
||||
* math/ccoshl.c: Likewise.
|
||||
* math/ccosl.c: Likewise.
|
||||
* math/cexp.c: Likewise.
|
||||
* math/cexpf.c: Likewise.
|
||||
* math/cexpl.c: Likewise.
|
||||
* math/clog.c: Likewise.
|
||||
* math/clog10.c: Likewise.
|
||||
* math/clog10f.c: Likewise.
|
||||
* math/clog10l.c: Likewise.
|
||||
* math/clogf.c: Likewise.
|
||||
* math/clogl.c: Likewise.
|
||||
* math/cpow.c: Likewise.
|
||||
* math/cpowf.c: Likewise.
|
||||
* math/cpowl.c: Likewise.
|
||||
* math/csin.c: Likewise.
|
||||
* math/csinf.c: Likewise.
|
||||
* math/csinh.c: Likewise.
|
||||
* math/csinhf.c: Likewise.
|
||||
* math/csinhl.c: Likewise.
|
||||
* math/csinl.c: Likewise.
|
||||
* math/csqrt.c: Likewise.
|
||||
* math/csqrtf.c: Likewise.
|
||||
* math/csqrtl.c: Likewise.
|
||||
* math/ctan.c: Likewise.
|
||||
* math/ctanf.c: Likewise.
|
||||
* math/ctanh.c: Likewise.
|
||||
* math/ctanhf.c: Likewise.
|
||||
* math/ctanhl.c: Likewise.
|
||||
* math/ctanl.c: Likewise.
|
||||
|
||||
* math/complex-stub.h: New file.
|
||||
|
||||
* math/mathconf.h: New file.
|
||||
|
||||
* src/Makefile.am: New file.
|
||||
|
||||
* src/complex.cc: Use mathconf.h instead of complex.h.
|
||||
Don't use cabs, always use __mycabs.
|
||||
|
||||
1998-02-13 Brendan Kehoe <brendan@cygnus.com>
|
||||
|
||||
* iterator (class reverse_iterator): Do some tweaks to be in sync
|
||||
w/ the FDIS.
|
||||
|
3545
contrib/libstdc++/ChangeLog-1999
Normal file
3545
contrib/libstdc++/ChangeLog-1999
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
5468
contrib/libstdc++/ChangeLog-2005
Normal file
5468
contrib/libstdc++/ChangeLog-2005
Normal file
File diff suppressed because it is too large
Load Diff
5528
contrib/libstdc++/ChangeLog-2006
Normal file
5528
contrib/libstdc++/ChangeLog-2006
Normal file
File diff suppressed because it is too large
Load Diff
@ -19,35 +19,39 @@
|
||||
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with this library; see the file COPYING. If not, write to the Free
|
||||
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
## USA.
|
||||
|
||||
include $(top_srcdir)/fragment.am
|
||||
|
||||
if GLIBCXX_HOSTED
|
||||
# Possibly libmath as well...
|
||||
hosted_source = src po
|
||||
hosted_source = libmath src po testsuite
|
||||
endif
|
||||
## Keep this list sync'd with acinclude.m4:GLIBCXX_CONFIGURE.
|
||||
SUBDIRS = include libmath libsupc++ $(hosted_source) testsuite
|
||||
SUBDIRS = include libsupc++ $(hosted_source)
|
||||
|
||||
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
|
||||
|
||||
# These rules are messy, but are hella worth it.
|
||||
doxygen:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=user $${srcdir} $${builddir})
|
||||
|
||||
doxygen-maint:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=maint $${srcdir} $${builddir})
|
||||
|
||||
doxygen-man:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=man $${srcdir} $${builddir})
|
||||
|
||||
.PHONY: doxygen doxygen-maint doxygen-man
|
||||
@ -59,38 +63,6 @@ check-%:
|
||||
# Multilib support.
|
||||
MAKEOVERRIDES=
|
||||
|
||||
# Multilib support variables.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
# Multilib support.
|
||||
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
|
||||
maintainer-clean-multi
|
||||
|
||||
all-recursive: all-multi
|
||||
install-recursive: install-multi
|
||||
mostlyclean-recursive: mostlyclean-multi
|
||||
clean-recursive: clean-multi
|
||||
distclean-recursive: distclean-multi
|
||||
maintainer-clean-recursive: maintainer-clean-multi
|
||||
|
||||
all-multi:
|
||||
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
|
||||
install-multi:
|
||||
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
|
||||
mostlyclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
|
||||
clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
|
||||
distclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
|
||||
maintainer-clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
|
||||
|
||||
# All the machinations with string instantiations messes up the
|
||||
# automake-generated TAGS rule. Make a simple one here.
|
||||
TAGS: tags-recursive $(LISP)
|
||||
@ -129,8 +101,6 @@ AM_MAKEFLAGS = \
|
||||
"AR=$(AR)" \
|
||||
"AS=$(AS)" \
|
||||
"LD=$(LD)" \
|
||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||
"PICFLAG=$(PICFLAG)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"NM=$(NM)" \
|
||||
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
|
||||
@ -140,3 +110,9 @@ AM_MAKEFLAGS = \
|
||||
|
||||
# Subdir rules rely on $(FLAGS_TO_PASS)
|
||||
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
||||
|
||||
# Installation of distribution html documentation not yet supported
|
||||
# TODO: Write custom install-html rule.
|
||||
.PHONY: install-html
|
||||
install-html:
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Makefile.in generated by automake 1.7.8 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -13,7 +13,6 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -21,7 +20,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
@ -38,6 +36,60 @@ POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
|
||||
$(srcdir)/../config.sub $(srcdir)/../install-sh \
|
||||
$(srcdir)/../ltmain.sh $(srcdir)/../missing \
|
||||
$(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure $(top_srcdir)/fragment.am \
|
||||
$(top_srcdir)/scripts/testsuite_flags.in ChangeLog
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = scripts/testsuite_flags
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = include libsupc++ libmath src po testsuite
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCATOR_H = @ALLOCATOR_H@
|
||||
ALLOCATOR_NAME = @ALLOCATOR_NAME@
|
||||
@ -54,7 +106,6 @@ BASIC_FILE_CC = @BASIC_FILE_CC@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
CC = @CC@
|
||||
CCODECVT_CC = @CCODECVT_CC@
|
||||
CCODECVT_H = @CCODECVT_H@
|
||||
CCOLLATE_CC = @CCOLLATE_CC@
|
||||
CCTYPE_CC = @CCTYPE_CC@
|
||||
CFLAGS = @CFLAGS@
|
||||
@ -67,6 +118,7 @@ CMONEY_CC = @CMONEY_CC@
|
||||
CNUMERIC_CC = @CNUMERIC_CC@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_CC = @CTIME_CC@
|
||||
CTIME_H = @CTIME_H@
|
||||
@ -81,14 +133,22 @@ ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@
|
||||
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
|
||||
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
|
||||
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
|
||||
ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
|
||||
ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
|
||||
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
|
||||
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
|
||||
ENABLE_VISIBILITY_FALSE = @ENABLE_VISIBILITY_FALSE@
|
||||
ENABLE_VISIBILITY_TRUE = @ENABLE_VISIBILITY_TRUE@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@
|
||||
GLIBCXX_BUILD_DEBUG_TRUE = @GLIBCXX_BUILD_DEBUG_TRUE@
|
||||
GLIBCXX_BUILD_PCH_FALSE = @GLIBCXX_BUILD_PCH_FALSE@
|
||||
GLIBCXX_BUILD_PCH_TRUE = @GLIBCXX_BUILD_PCH_TRUE@
|
||||
GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE = @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@
|
||||
GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE = @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@
|
||||
GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE = @GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE@
|
||||
GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE = @GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@
|
||||
GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@
|
||||
@ -98,14 +158,13 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@
|
||||
GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@
|
||||
GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@
|
||||
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
|
||||
GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@
|
||||
GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@
|
||||
GLIBCXX_TEST_WCHAR_T_FALSE = @GLIBCXX_TEST_WCHAR_T_FALSE@
|
||||
GLIBCXX_TEST_WCHAR_T_TRUE = @GLIBCXX_TEST_WCHAR_T_TRUE@
|
||||
GLIBCXX_LDBL_COMPAT_FALSE = @GLIBCXX_LDBL_COMPAT_FALSE@
|
||||
GLIBCXX_LDBL_COMPAT_TRUE = @GLIBCXX_LDBL_COMPAT_TRUE@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
@ -134,7 +193,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
SYMVER_MAP = @SYMVER_MAP@
|
||||
SYMVER_FILE = @SYMVER_FILE@
|
||||
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
@ -147,6 +206,8 @@ ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
baseline_dir = @baseline_dir@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
@ -183,6 +244,7 @@ libexecdir = @libexecdir@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
multi_basedir = @multi_basedir@
|
||||
oldincludedir = @oldincludedir@
|
||||
port_specific_symbol_files = @port_specific_symbol_files@
|
||||
@ -198,12 +260,12 @@ target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
toplevel_srcdir = @toplevel_srcdir@
|
||||
|
||||
# May be used by various substitution variables.
|
||||
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
|
||||
MAINT_CHARSET = latin1
|
||||
|
||||
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
||||
PWD_COMMAND = $${PWDCMD-pwd}
|
||||
STAMP = echo timestamp >
|
||||
|
||||
toolexecdir = $(glibcxx_toolexecdir)
|
||||
toolexeclibdir = $(glibcxx_toolexeclibdir)
|
||||
|
||||
@ -218,20 +280,13 @@ WARN_CXXFLAGS = \
|
||||
|
||||
# -I/-D flags to pass when compiling.
|
||||
AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
|
||||
@GLIBCXX_HOSTED_TRUE@hosted_source = src po
|
||||
SUBDIRS = include libmath libsupc++ $(hosted_source) testsuite
|
||||
@GLIBCXX_HOSTED_TRUE@hosted_source = libmath src po testsuite
|
||||
SUBDIRS = include libsupc++ $(hosted_source)
|
||||
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
|
||||
|
||||
# Multilib support.
|
||||
MAKEOVERRIDES =
|
||||
|
||||
# Multilib support variables.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||
# values defined in terms of make variables, as is the case for CC and
|
||||
# friends when we are called from the top level Makefile.
|
||||
@ -266,8 +321,6 @@ AM_MAKEFLAGS = \
|
||||
"AR=$(AR)" \
|
||||
"AS=$(AS)" \
|
||||
"LD=$(LD)" \
|
||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||
"PICFLAG=$(PICFLAG)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"NM=$(NM)" \
|
||||
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
|
||||
@ -278,47 +331,42 @@ AM_MAKEFLAGS = \
|
||||
|
||||
# Subdir rules rely on $(FLAGS_TO_PASS)
|
||||
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = scripts/check_survey scripts/testsuite_flags
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
DIST_SOURCES =
|
||||
|
||||
RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
|
||||
ps-recursive install-info-recursive uninstall-info-recursive \
|
||||
all-recursive install-data-recursive install-exec-recursive \
|
||||
installdirs-recursive install-recursive uninstall-recursive \
|
||||
check-recursive installcheck-recursive
|
||||
DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure \
|
||||
$(top_srcdir)/fragment.am ../ABOUT-NLS ../COPYING \
|
||||
../COPYING.LIB ../ChangeLog ../README ../config.guess \
|
||||
../config.rpath ../config.sub ../configure ../configure.in \
|
||||
../install-sh ../ltcf-c.sh ../ltcf-cxx.sh ../ltcf-gcj.sh \
|
||||
../ltconfig ../ltmain.sh ../missing ../mkinstalldirs ../ylwrap \
|
||||
ChangeLog Makefile.am acconfig.h acinclude.m4 aclocal.m4 \
|
||||
config.h.in configure configure.ac
|
||||
DIST_SUBDIRS = include libmath libsupc++ src po testsuite
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/fragment.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||
$(AUTOMAKE) --foreign --ignore-deps Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac acinclude.m4
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@ -330,15 +378,13 @@ config.h: stamp-h1
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
|
||||
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
|
||||
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
touch $(srcdir)/config.h.in
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
scripts/check_survey: $(top_builddir)/config.status $(top_srcdir)/scripts/check_survey.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
scripts/testsuite_flags: $(top_builddir)/config.status $(top_srcdir)/scripts/testsuite_flags.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
@ -350,6 +396,23 @@ clean-libtool:
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
|
||||
# GNU Make needs to see an explicit $(MAKE) variable in the command it
|
||||
# runs to enable its job server during parallel builds. Hence the
|
||||
# comments below.
|
||||
all-multi:
|
||||
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
|
||||
install-multi:
|
||||
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
|
||||
|
||||
mostlyclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
|
||||
clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
|
||||
distclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
|
||||
maintainer-clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
@ -359,7 +422,13 @@ uninstall-info-am:
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -371,7 +440,7 @@ $(RECURSIVE_TARGETS):
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
@ -379,7 +448,13 @@ $(RECURSIVE_TARGETS):
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
@ -400,7 +475,7 @@ maintainer-clean-recursive:
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@ -411,14 +486,6 @@ ctags-recursive:
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -427,7 +494,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
|
||||
tags: TAGS
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
@ -450,24 +517,11 @@ GTAGS:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = .
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkinstalldirs) $(distdir)/.. $(distdir)/scripts
|
||||
$(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/scripts
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
@ -479,7 +533,7 @@ distdir: $(DISTFILES)
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
@ -496,13 +550,15 @@ distdir: $(DISTFILES)
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d $(distdir)/$$subdir \
|
||||
|| mkdir $(distdir)/$$subdir \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" \
|
||||
distdir=../$(distdir)/$$subdir \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -513,19 +569,46 @@ distdir: $(DISTFILES)
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
$(am__remove_distdir)
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
@ -545,19 +628,20 @@ distcheck: dist
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||
&& rm -f $(distdir).tar.gz \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@echo "$(distdir).tar.gz is ready for distribution" | \
|
||||
sed 'h;s/./=/g;p;x;p;x'
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
@ -581,7 +665,6 @@ check: check-recursive
|
||||
all-am: Makefile all-multi config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
@ -593,7 +676,7 @@ install-am: all-am
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
INSTALL_STRIP_FLAG=-s \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
@ -601,7 +684,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -613,13 +696,15 @@ clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
distclean: distclean-multi distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-tags
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -656,45 +741,44 @@ uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi check \
|
||||
check-am clean clean-generic clean-libtool clean-multi \
|
||||
clean-recursive ctags ctags-recursive dist dist-all dist-gzip \
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi \
|
||||
am--refresh check check-am clean clean-generic clean-libtool \
|
||||
clean-multi clean-recursive ctags ctags-recursive dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
|
||||
distcheck distclean distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-multi distclean-recursive \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am dvi-recursive info info-am info-recursive install \
|
||||
install-am install-data install-data-am install-data-recursive \
|
||||
install-exec install-exec-am install-exec-recursive \
|
||||
install-info install-info-am install-info-recursive install-man \
|
||||
install-multi install-recursive install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am \
|
||||
installdirs-recursive maintainer-clean maintainer-clean-generic \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-multi \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-multi maintainer-clean-recursive mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool mostlyclean-multi \
|
||||
mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
|
||||
ps-recursive tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-info-am uninstall-info-recursive uninstall-recursive
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
@GLIBCXX_HOSTED_TRUE@ # Possibly libmath as well...
|
||||
|
||||
# These rules are messy, but are hella worth it.
|
||||
doxygen:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=user $${srcdir} $${builddir})
|
||||
|
||||
doxygen-maint:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=maint $${srcdir} $${builddir})
|
||||
|
||||
doxygen-man:
|
||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
||||
builddir=`${PWD_COMMAND}`; \
|
||||
${SHELL} ${srcdir}/docs/doxygen/run_doxygen \
|
||||
--host_alias=${host_alias} \
|
||||
--mode=man $${srcdir} $${builddir})
|
||||
|
||||
.PHONY: doxygen doxygen-maint doxygen-man
|
||||
@ -703,33 +787,14 @@ doxygen-man:
|
||||
check-%:
|
||||
cd testsuite && $(MAKE) $@
|
||||
|
||||
# Multilib support.
|
||||
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
|
||||
maintainer-clean-multi
|
||||
|
||||
all-recursive: all-multi
|
||||
install-recursive: install-multi
|
||||
mostlyclean-recursive: mostlyclean-multi
|
||||
clean-recursive: clean-multi
|
||||
distclean-recursive: distclean-multi
|
||||
maintainer-clean-recursive: maintainer-clean-multi
|
||||
|
||||
all-multi:
|
||||
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
|
||||
install-multi:
|
||||
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
|
||||
mostlyclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
|
||||
clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
|
||||
distclean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
|
||||
maintainer-clean-multi:
|
||||
$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
|
||||
|
||||
# All the machinations with string instantiations messes up the
|
||||
# automake-generated TAGS rule. Make a simple one here.
|
||||
TAGS: tags-recursive $(LISP)
|
||||
|
||||
# Installation of distribution html documentation not yet supported
|
||||
# TODO: Write custom install-html rule.
|
||||
.PHONY: install-html
|
||||
install-html:
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
File diff suppressed because it is too large
Load Diff
2823
contrib/libstdc++/aclocal.m4
vendored
2823
contrib/libstdc++/aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
219
contrib/libstdc++/config/abi/compatibility.h
Normal file
219
contrib/libstdc++/config/abi/compatibility.h
Normal file
@ -0,0 +1,219 @@
|
||||
// Compatibility symbols for previous versions -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file compatibility.h
|
||||
* This is an internal header file, included by other library sources.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// Switch for symbol version macro.
|
||||
#ifndef _GLIBCXX_APPLY_SYMVER
|
||||
#error must define _GLIBCXX_APPLY_SYMVER before including __FILE__
|
||||
#endif
|
||||
|
||||
/* gcc-3.4.4
|
||||
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv
|
||||
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv
|
||||
*/
|
||||
namespace
|
||||
{
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIcSt11char_traitsIcEEppEv,
|
||||
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv)
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIwSt11char_traitsIwEEppEv,
|
||||
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv)
|
||||
#endif
|
||||
} // anonymous namespace
|
||||
|
||||
/* gcc-4.0.0
|
||||
_ZNSs4_Rep26_M_set_length_and_sharableEj
|
||||
_ZNSs7_M_copyEPcPKcj
|
||||
_ZNSs7_M_moveEPcPKcj
|
||||
_ZNSs9_M_assignEPcjc
|
||||
_ZNKSs11_M_disjunctEPKc
|
||||
_ZNKSs15_M_check_lengthEjjPKc
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc
|
||||
|
||||
_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv
|
||||
_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv
|
||||
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv
|
||||
_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv
|
||||
_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv
|
||||
_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv
|
||||
|
||||
_ZNSi6ignoreEi
|
||||
_ZNSi6ignoreEv
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv
|
||||
|
||||
_ZNSt11char_traitsIcE2eqERKcS2_
|
||||
_ZNSt11char_traitsIwE2eqERKwS2_
|
||||
*/
|
||||
namespace
|
||||
{
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIcE4eqXXERKcS2_,
|
||||
_ZNSt11char_traitsIcE2eqERKcS2_)
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcj,
|
||||
_ZNSs7_M_copyEPcPKcj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcm,
|
||||
_ZNSs7_M_copyEPcPKcm)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcj,
|
||||
_ZNSs7_M_moveEPcPKcj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcm,
|
||||
_ZNSs7_M_moveEPcPKcm)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcjc,
|
||||
_ZNSs9_M_assignEPcjc)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcmc,
|
||||
_ZNSs9_M_assignEPcmc)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSs13_M_disjunctXXEPKc,
|
||||
_ZNKSs11_M_disjunctEPKc)
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEjjPKc,
|
||||
_ZNKSs15_M_check_lengthEjjPKc)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEmmPKc,
|
||||
_ZNKSs15_M_check_lengthEmmPKc)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEj,
|
||||
_ZNSs4_Rep26_M_set_length_and_sharableEj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEm,
|
||||
_ZNSs4_Rep26_M_set_length_and_sharableEm)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEv, _ZNSi6ignoreEv)
|
||||
|
||||
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEi, _ZNSi6ignoreEi)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEl, _ZNSi6ignoreEl)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIcSt11char_traitsIcEE7is_openEv,
|
||||
_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv)
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIcSt11char_traitsIcEE7is_openEv,
|
||||
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv)
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIcSt11char_traitsIcEE7is_openEv,
|
||||
_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv)
|
||||
|
||||
// Support for wchar_t.
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIwE4eqXXERKwS2_,
|
||||
_ZNSt11char_traitsIwE2eqERKwS2_)
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwj,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwm,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwj,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwm,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwjw,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwmw,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE13_M_disjunctXXEPKw,
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw)
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEjjPKc,
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEmmPKc,
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc)
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEj,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEm,
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEv,
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv)
|
||||
|
||||
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEi,
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi)
|
||||
#else
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEl,
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl)
|
||||
#endif
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv,
|
||||
_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv)
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIwSt11char_traitsIwEE7is_openEv,
|
||||
_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv)
|
||||
|
||||
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIwSt11char_traitsIwEE7is_openEv,
|
||||
_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv)
|
||||
#endif
|
||||
} // anonymous namespace
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
202
contrib/libstdc++/config/abi/pre/gnu-versioned-namespace.ver
Normal file
202
contrib/libstdc++/config/abi/pre/gnu-versioned-namespace.ver
Normal file
@ -0,0 +1,202 @@
|
||||
## Linker script for GNU namespace versioning.
|
||||
##
|
||||
## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
##
|
||||
## This file is part of the libstdc++ version 3 distribution.
|
||||
##
|
||||
## This file is part of the GNU ISO C++ Library. This library is free
|
||||
## software; you can redistribute it and/or modify it under the
|
||||
## terms of the GNU General Public License as published by the
|
||||
## Free Software Foundation; either version 2, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## This library is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with this library; see the file COPYING. If not, write to the Free
|
||||
## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
## USA.
|
||||
|
||||
GLIBCXX_3.7 {
|
||||
|
||||
global:
|
||||
|
||||
# Names inside the 'extern' block are demangled names.
|
||||
extern "C++"
|
||||
{
|
||||
std::_6::*;
|
||||
std::*
|
||||
};
|
||||
|
||||
# operator new(size_t)
|
||||
_Znw[jm];
|
||||
# operator new(size_t, std::nothrow_t const&)
|
||||
_Znw[jm]RKSt9nothrow_t;
|
||||
|
||||
# operator delete(void*)
|
||||
_ZdlPv;
|
||||
# operator delete(void*, std::nothrow_t const&)
|
||||
_ZdlPvRKSt9nothrow_t;
|
||||
|
||||
# operator new[](size_t)
|
||||
_Zna[jm];
|
||||
# operator new[](size_t, std::nothrow_t const&)
|
||||
_Zna[jm]RKSt9nothrow_t;
|
||||
|
||||
# operator delete[](void*)
|
||||
_ZdaPv;
|
||||
# operator delete[](void*, std::nothrow_t const&)
|
||||
_ZdaPvRKSt9nothrow_t;
|
||||
|
||||
# function-scope static objects requires a guard variable.
|
||||
_ZGVNSt*;
|
||||
|
||||
_ZTT*;
|
||||
_ZTV*;
|
||||
|
||||
_ZTI*;
|
||||
_ZTS*;
|
||||
|
||||
_ZTv0_n*;
|
||||
|
||||
# std::__convert_to_v
|
||||
_ZNSt2_614__convert_to_v*;
|
||||
|
||||
# std::__copy_streambufs
|
||||
_ZNSt2_617__copy_streambufsI[cw]NS_11char_traitsI[cw]EEEEiPNS_15basic_streambufIT_T0_EES7_;
|
||||
|
||||
# __gnu_cxx::__atomic_add
|
||||
# __gnu_cxx::__exchange_and_add
|
||||
_ZN9__gnu_cxx2_612__atomic_addEPV[il][il];
|
||||
_ZN9__gnu_cxx2_618__exchange_and_addEPV[li][il];
|
||||
|
||||
# __gnu_cxx::__pool
|
||||
_ZN9__gnu_cxx2_66__poolILb[01]EE13_M_initializeEv;
|
||||
_ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reserve_blockE[jm][jm];
|
||||
_ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reclaim_blockEPc[jm];
|
||||
_ZN9__gnu_cxx2_66__poolILb[01]EE10_M_destroyEv;
|
||||
_ZN9__gnu_cxx2_66__poolILb1EE16_M_get_thread_idEv;
|
||||
|
||||
_ZN9__gnu_cxx2_617__pool_alloc_base9_M_refillE[jm];
|
||||
_ZN9__gnu_cxx2_617__pool_alloc_base16_M_get_free_listE[jm];
|
||||
_ZN9__gnu_cxx2_617__pool_alloc_base12_M_get_mutexEv;
|
||||
|
||||
_ZN9__gnu_cxx2_69free_list6_M_getE[jm];
|
||||
_ZN9__gnu_cxx2_69free_list8_M_clearEv;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
|
||||
# Symbols in the support library (libsupc++) have their own tag.
|
||||
CXXABI_1.7 {
|
||||
|
||||
global:
|
||||
__cxa_allocate_exception;
|
||||
__cxa_bad_cast;
|
||||
__cxa_bad_typeid;
|
||||
__cxa_begin_catch;
|
||||
__cxa_begin_cleanup;
|
||||
__cxa_call_unexpected;
|
||||
__cxa_current_exception_type;
|
||||
__cxa_demangle;
|
||||
__cxa_end_catch;
|
||||
__cxa_end_cleanup;
|
||||
__cxa_free_exception;
|
||||
__cxa_get_exception_ptr;
|
||||
__cxa_get_globals;
|
||||
__cxa_get_globals_fast;
|
||||
__cxa_guard_abort;
|
||||
__cxa_guard_acquire;
|
||||
__cxa_guard_release;
|
||||
__cxa_pure_virtual;
|
||||
__cxa_rethrow;
|
||||
__cxa_throw;
|
||||
__cxa_type_match;
|
||||
__cxa_vec_cctor;
|
||||
__cxa_vec_cleanup;
|
||||
__cxa_vec_ctor;
|
||||
__cxa_vec_delete2;
|
||||
__cxa_vec_delete3;
|
||||
__cxa_vec_delete;
|
||||
__cxa_vec_dtor;
|
||||
__cxa_vec_new2;
|
||||
__cxa_vec_new3;
|
||||
__cxa_vec_new;
|
||||
__gxx_personality_v0;
|
||||
__gxx_personality_sj0;
|
||||
__dynamic_cast;
|
||||
|
||||
# *_type_info classes, ctor and dtor
|
||||
_ZN10__cxxabiv117__array_type_info*;
|
||||
_ZN10__cxxabiv117__class_type_info*;
|
||||
_ZN10__cxxabiv116__enum_type_info*;
|
||||
_ZN10__cxxabiv120__function_type_info*;
|
||||
_ZN10__cxxabiv123__fundamental_type_info*;
|
||||
_ZN10__cxxabiv117__pbase_type_info*;
|
||||
_ZN10__cxxabiv129__pointer_to_member_type_info*;
|
||||
_ZN10__cxxabiv119__pointer_type_info*;
|
||||
_ZN10__cxxabiv120__si_class_type_info*;
|
||||
_ZN10__cxxabiv121__vmi_class_type_info*;
|
||||
|
||||
# *_type_info classes, member functions
|
||||
_ZNK10__cxxabiv117__class_type_info*;
|
||||
_ZNK10__cxxabiv120__function_type_info*;
|
||||
_ZNK10__cxxabiv117__pbase_type_info*;
|
||||
_ZNK10__cxxabiv129__pointer_to_member_type_info*;
|
||||
_ZNK10__cxxabiv119__pointer_type_info*;
|
||||
_ZNK10__cxxabiv120__si_class_type_info*;
|
||||
_ZNK10__cxxabiv121__vmi_class_type_info*;
|
||||
|
||||
# virtual table
|
||||
_ZTVN10__cxxabiv117__array_type_infoE;
|
||||
_ZTVN10__cxxabiv117__class_type_infoE;
|
||||
_ZTVN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTVN10__cxxabiv120__function_type_infoE;
|
||||
_ZTVN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTVN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTVN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTVN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTVN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# typeinfo structure (and some names)
|
||||
_ZTI[a-z];
|
||||
_ZTIP[a-z];
|
||||
_ZTIPK[a-z];
|
||||
_ZTIN10__cxxabiv117__array_type_infoE;
|
||||
_ZTIN10__cxxabiv117__class_type_infoE;
|
||||
_ZTIN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTIN10__cxxabiv120__function_type_infoE;
|
||||
_ZTIN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTIN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTIN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTIN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTIN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# typeinfo name
|
||||
_ZTS[a-z];
|
||||
_ZTSP[a-z];
|
||||
_ZTSPK[a-z];
|
||||
_ZTSN10__cxxabiv117__array_type_infoE;
|
||||
_ZTSN10__cxxabiv117__class_type_infoE;
|
||||
_ZTSN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTSN10__cxxabiv120__function_type_infoE;
|
||||
_ZTSN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTSN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTSN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTSN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTSN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# __gnu_cxx::_verbose_terminate_handler()
|
||||
_ZN9__gnu_cxx2_627__verbose_terminate_handlerEv;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
806
contrib/libstdc++/config/abi/pre/gnu.ver
Normal file
806
contrib/libstdc++/config/abi/pre/gnu.ver
Normal file
@ -0,0 +1,806 @@
|
||||
## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
|
||||
##
|
||||
## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
|
||||
## Free Software Foundation, Inc.
|
||||
##
|
||||
## This file is part of the GNU ISO C++ Library. This library is free
|
||||
## software; you can redistribute it and/or modify it under the
|
||||
## terms of the GNU General Public License as published by the
|
||||
## Free Software Foundation; either version 2, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## This library is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with this library; see the file COPYING. If not, write to the Free
|
||||
## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
## USA.
|
||||
|
||||
GLIBCXX_3.4 {
|
||||
|
||||
global:
|
||||
|
||||
# Names inside the 'extern' block are demangled names.
|
||||
extern "C++"
|
||||
{
|
||||
std::[A-Za]*;
|
||||
# std::ba[a-r]*;
|
||||
std::basic_[a-e]*;
|
||||
std::basic_f[a-r]*;
|
||||
# std::basic_fstream;
|
||||
std::basic_f[t-z]*;
|
||||
std::basic_[g-h]*;
|
||||
std::basic_i[a-e]*;
|
||||
# std::basic_ifstream;
|
||||
std::basic_i[g-r]*;
|
||||
std::basic_istr[a-d]*;
|
||||
# std::basic_istream;
|
||||
std::basic_istr[f-z]*;
|
||||
std::basic_i[t-z]*;
|
||||
std::basic_[j-n]*;
|
||||
std::basic_o[a-e]*;
|
||||
# std::basic_ofstream;
|
||||
# std::basic_o[g-z]*;
|
||||
std::basic_o[g-r]*;
|
||||
std::basic_ostr[a-d]*;
|
||||
std::basic_ostr[f-z]*;
|
||||
std::basic_[p-r]*;
|
||||
std::basic_streambuf*;
|
||||
# std::basic_string
|
||||
# std::basic_stringbuf
|
||||
std::basic_stringstream*;
|
||||
std::basic_[t-z]*;
|
||||
std::ba[t-z]*;
|
||||
std::b[b-z]*;
|
||||
std::c[a-g]*;
|
||||
# std::char_traits;
|
||||
std::c[i-z]*;
|
||||
std::[d-h]*;
|
||||
std::i[a-n]*;
|
||||
std::ios_base::[A-Ha-z]*;
|
||||
std::ios_base::_M_grow_words*;
|
||||
std::ios_base::_M_init*;
|
||||
std::ios_base::Init::[A-Za-z]*;
|
||||
std::ios_base::[J-Za-z]*;
|
||||
std::i[p-r]*;
|
||||
# std::istream
|
||||
# std::istreambuf_iterator
|
||||
std::istringstream*;
|
||||
std::istrstream*;
|
||||
std::i[t-z]*;
|
||||
std::[A-Zj-k]*;
|
||||
std::length_error*;
|
||||
std::logic_error*;
|
||||
std::locale::[A-Za-e]*;
|
||||
std::locale::facet::[A-Za-z]*;
|
||||
std::locale::facet::_S_get_c_locale*;
|
||||
std::locale::facet::_S_clone_c_locale*;
|
||||
std::locale::facet::_S_create_c_locale*;
|
||||
std::locale::facet::_S_destroy_c_locale*;
|
||||
std::locale::[A-Zg-h]*;
|
||||
std::locale::id::[A-Za-z]*;
|
||||
std::locale::id::_M_id*;
|
||||
std::locale::[A-Zj-z]*;
|
||||
std::locale::_[A-Ha-z]*;
|
||||
std::locale::_Impl::[A-Za-z]*;
|
||||
# std::locale::_Impl::_M_[A-Za-z]*;
|
||||
std::locale::_[J-Ra-z]*;
|
||||
std::locale::_S_normalize_category*;
|
||||
std::locale::_[T-Za-z]*;
|
||||
# std::[A-Zm-r]*;
|
||||
std::[A-Zm]*;
|
||||
std::n[^u]*;
|
||||
std::nu[^m]*;
|
||||
std::num[^e]*;
|
||||
std::[p-r]*;
|
||||
std::ostrstream*;
|
||||
std::out_of_range*;
|
||||
std::overflow_error*;
|
||||
std::set_new_handler*;
|
||||
std::set_terminate*;
|
||||
std::set_unexpected*;
|
||||
# std::string
|
||||
std::strstream*;
|
||||
std::strstreambuf*;
|
||||
std::[A-Zt-z]*;
|
||||
std::_List_node_base::hook*;
|
||||
std::_List_node_base::swap*;
|
||||
std::_List_node_base::unhook*;
|
||||
std::_List_node_base::reverse*;
|
||||
std::_List_node_base::transfer*;
|
||||
std::__throw_*;
|
||||
std::__timepunct*;
|
||||
std::__numeric_limits_base*;
|
||||
std::__num_base::_S_format_float*;
|
||||
std::__num_base::_S_format_int*;
|
||||
std::__num_base::_S_atoms_in;
|
||||
std::__num_base::_S_atoms_out;
|
||||
std::__moneypunct_cache*;
|
||||
std::__numpunct_cache*;
|
||||
std::__timepunct_cache*;
|
||||
__gnu_debug::_Error_formatter*
|
||||
};
|
||||
|
||||
# Names not in an 'extern' block are mangled names.
|
||||
|
||||
# __gnu_debug::_Safe_sequence_base and _Safe_iterator_base
|
||||
_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
|
||||
_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
|
||||
_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
|
||||
_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
|
||||
_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
|
||||
_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv;
|
||||
_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv;
|
||||
_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
|
||||
|
||||
# std::string
|
||||
_ZNSsC*;
|
||||
_ZNSsD*;
|
||||
_ZNSs[0-9][a-z]*;
|
||||
_ZNSs12_Alloc_hiderC*;
|
||||
_ZNSs12_M_leak_hardEv;
|
||||
_ZNSs12_S_constructE[jm]cRKSaIcE;
|
||||
_ZNSs12_S_empty_repEv;
|
||||
_ZNSs13_S_copy_chars*;
|
||||
_ZNSs[0-9][0-9]_M_replace*;
|
||||
_ZNSs4_Rep10_M_destroy*;
|
||||
_ZNSs4_Rep10_M_dispose*;
|
||||
_ZNSs4_Rep10_M_refcopyEv;
|
||||
_ZNSs4_Rep10_M_refdataEv;
|
||||
_ZNSs4_Rep12_S_empty_repEv;
|
||||
_ZNSs4_Rep13_M_set_leakedEv;
|
||||
_ZNSs4_Rep15_M_set_sharableEv;
|
||||
_ZNSs4_Rep7_M_grab*;
|
||||
_ZNSs4_Rep8_M_clone*;
|
||||
_ZNSs4_Rep9_S_createE[jm][jm]*;
|
||||
_ZNSs7_M_dataEPc;
|
||||
_ZNSs7_M_leakEv;
|
||||
_ZNSs9_M_mutateE[jm][jm][jm];
|
||||
_ZNSs4_Rep20_S_empty_rep_storageE;
|
||||
_ZNSs4_Rep11_S_max_sizeE;
|
||||
_ZNSs4_Rep11_S_terminalE;
|
||||
_ZNSsaSE*;
|
||||
_ZNSsixE*;
|
||||
_ZNSspLE*;
|
||||
_ZNKSs[0-9][a-z]*;
|
||||
_ZNKSs[0-9][0-9][a-z]*;
|
||||
_ZNKSs[a-z]*;
|
||||
_ZNKSs4_Rep12_M_is_leakedEv;
|
||||
_ZNKSs4_Rep12_M_is_sharedEv;
|
||||
_ZNKSs6_M_repEv;
|
||||
_ZNKSs7_M_dataEv;
|
||||
_ZNKSs7_M_iendEv;
|
||||
_ZNKSs8_M_check*;
|
||||
_ZNKSs8_M_limit*;
|
||||
_ZNKSs9_M_ibeginEv;
|
||||
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_E*;
|
||||
|
||||
# std::wstring
|
||||
_ZNSbIwSt11char_traitsIwESaIwEEC*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEED*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE[0-9][a-z]*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jm]wRKS1_;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_M_replace*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroy*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_dispose*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grab*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_clone*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createE[jm][jm]*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateE[jm][jm][jm];
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEEaSE*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEEixE*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEEpLE*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE[0-9][a-z]*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE[0-9][0-9][a-z]*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE[a-z]*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE8_M_check*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE8_M_limit*;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv;
|
||||
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_E*;
|
||||
|
||||
# std::basic_stringbuf
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[CD]*;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][a-r]*;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9]seek*;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9]set*;
|
||||
_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv;
|
||||
_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv;
|
||||
_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs;
|
||||
_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][t-z]*;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9]_M_[a-z]*;
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE[0-9][0-9]_M_[a-z]*;
|
||||
|
||||
|
||||
# std::basic_iostream constructors, destructors
|
||||
_ZNSdC*;
|
||||
_ZNSdD*;
|
||||
|
||||
# std::basic_fstream
|
||||
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EEC*;
|
||||
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EED*;
|
||||
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE5closeEv;
|
||||
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE4open*;
|
||||
_ZNKSt13basic_fstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
|
||||
|
||||
# std::basic_ifstream
|
||||
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EEC*;
|
||||
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EED*;
|
||||
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE5closeEv;
|
||||
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE4open*;
|
||||
_ZNKSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
|
||||
|
||||
# std::basic_ofstream
|
||||
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EEC*;
|
||||
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EED*;
|
||||
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE5closeEv;
|
||||
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE4open*;
|
||||
_ZNKSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
|
||||
|
||||
# std::basic_istream<char>
|
||||
_ZNSiC*;
|
||||
_ZNSiD*;
|
||||
_ZNKSi[0-9][a-z]*;
|
||||
_ZNSi[0-9][a-h]*;
|
||||
_ZNSi[0-9][j-z]*;
|
||||
_ZNSi6ignoreE[il][il];
|
||||
_ZNSirsE*[^g];
|
||||
|
||||
# std::basic_istream<wchar_t>
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEEC*;
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEED*;
|
||||
_ZNKSt13basic_istreamIwSt11char_traitsIwEE[0-9][a-z]*;
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][a-h]*;
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][j-z]*;
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[il][ijlm];
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEErsE*[^g];
|
||||
|
||||
# std::istream operators and extractors
|
||||
_ZSt7getlineI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_istream*;
|
||||
_ZSt2wsI[cw]St11char_traitsI[cw]EE*;
|
||||
_ZStrsI[cw]St11char_traitsI[cw]EERSt13basic_istream*;
|
||||
_ZStrsI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_istream*;
|
||||
_ZStrsISt11char_traitsI[cw]EERSt13basic_istream*;
|
||||
_ZStrsId[cw]St11char_traitsI[cw]EERSt13basic_istream*;
|
||||
_ZStrsIe[cw]St11char_traitsI[cw]EERSt13basic_istream*;
|
||||
_ZStrsIf[cw]St11char_traitsI[cw]EERSt13basic_istream*;
|
||||
|
||||
# std::basic_ostream<char>
|
||||
_ZNSoC*;
|
||||
_ZNSoD*;
|
||||
_ZNKSo6sentrycvbEv;
|
||||
_ZNSo8_M_writeEPKc[il];
|
||||
_ZNSo[0-9][a-z]*;
|
||||
_ZNSolsE*[^g];
|
||||
|
||||
# std::basic_ostream<wchar_t>
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEEC*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEED*;
|
||||
_ZNKSt13basic_ostreamIwSt11char_traitsIwEE[0-9][a-z]*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpE*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKw*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentry*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKw[il];
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEElsE*[^g];
|
||||
|
||||
# std::ostream operators and inserters
|
||||
_ZSt4end[ls]I[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZSt5flushI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsISt11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsId[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsIe[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
_ZStlsIf[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
|
||||
|
||||
# std::locale destructors
|
||||
_ZNSt6localeD*;
|
||||
|
||||
# std::locale::facet destructors
|
||||
_ZNSt6locale5facetD*;
|
||||
|
||||
# std::locale::_Impl constructors, destructors
|
||||
_ZNSt6locale5_ImplC*;
|
||||
_ZNSt6locale5_ImplD*;
|
||||
|
||||
# std::ios_base, std::ios_base::Init destructors
|
||||
_ZNSt8ios_baseD*;
|
||||
_ZNSt8ios_base4InitD*;
|
||||
|
||||
# bool std::has_facet
|
||||
_ZSt9has_facetIS*;
|
||||
|
||||
# std::num_get
|
||||
_ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
|
||||
|
||||
# std::num_put
|
||||
_ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
|
||||
|
||||
# std::money_get
|
||||
_ZNKSt9money_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
|
||||
|
||||
# std::money_put
|
||||
_ZNKSt9money_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
|
||||
|
||||
# std::numeric_limits
|
||||
_ZNSt14numeric_limitsI[^g]*;
|
||||
|
||||
# std::_Rb_tree
|
||||
_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base;
|
||||
_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base;
|
||||
_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base;
|
||||
_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base;
|
||||
_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_;
|
||||
_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_;
|
||||
_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_;
|
||||
_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_;
|
||||
_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_;
|
||||
|
||||
# std::__basic_file
|
||||
_ZNKSt12__basic_fileIcE7is_openEv;
|
||||
_ZNSt12__basic_fileIcE2fdEv;
|
||||
_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei;
|
||||
_ZNSt12__basic_fileIcE4syncEv;
|
||||
_ZNSt12__basic_fileIcE5closeEv;
|
||||
_ZNSt12__basic_fileIcE6xsgetn*;
|
||||
_ZNSt12__basic_fileIcE6xsputn*;
|
||||
_ZNSt12__basic_fileIcE7seekoff*;
|
||||
_ZNSt12__basic_fileIcE8sys_openE*St13_Ios_Openmode;
|
||||
_ZNSt12__basic_fileIcE8xsputn_2*;
|
||||
_ZNSt12__basic_fileIcE9showmanycEv;
|
||||
_ZNSt12__basic_fileIcEC*;
|
||||
_ZNSt12__basic_fileIcED*;
|
||||
|
||||
# std::__convert_to_v
|
||||
_ZSt14__convert_to_vI[^g]*;
|
||||
|
||||
# __gnu_cxx::stdio_sync_filebuf
|
||||
_ZTVN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
|
||||
|
||||
# __gnu_cxx::__atomic_add
|
||||
# __gnu_cxx::__exchange_and_add
|
||||
_ZN9__gnu_cxx12__atomic_addEPV[il]i;
|
||||
_ZN9__gnu_cxx18__exchange_and_addEPV[il]i;
|
||||
|
||||
# debug mode
|
||||
_ZN10__gnu_norm15_List_node_base4hook*;
|
||||
_ZN10__gnu_norm15_List_node_base4swap*;
|
||||
_ZN10__gnu_norm15_List_node_base6unhookEv;
|
||||
_ZN10__gnu_norm15_List_node_base7reverseEv;
|
||||
_ZN10__gnu_norm15_List_node_base8transfer*;
|
||||
|
||||
# operator new(size_t)
|
||||
_Znw[jm];
|
||||
# operator new(size_t, std::nothrow_t const&)
|
||||
_Znw[jm]RKSt9nothrow_t;
|
||||
|
||||
# operator delete(void*)
|
||||
_ZdlPv;
|
||||
# operator delete(void*, std::nothrow_t const&)
|
||||
_ZdlPvRKSt9nothrow_t;
|
||||
|
||||
# operator new[](size_t)
|
||||
_Zna[jm];
|
||||
# operator new[](size_t, std::nothrow_t const&)
|
||||
_Zna[jm]RKSt9nothrow_t;
|
||||
|
||||
# operator delete[](void*)
|
||||
_ZdaPv;
|
||||
# operator delete[](void*, std::nothrow_t const&)
|
||||
_ZdaPvRKSt9nothrow_t;
|
||||
|
||||
# virtual table
|
||||
_ZTVNSt8ios_base7failureE;
|
||||
_ZTVNSt6locale5facetE;
|
||||
_ZTVS[a-z];
|
||||
_ZTVSt[0-9][A-Za-z]*;
|
||||
_ZTVSt[0-9][0-9][A-Za-z]*;
|
||||
_ZTVSt11__timepunctI[cw]E;
|
||||
_ZTVSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
|
||||
_ZTVSt21__ctype_abstract_baseI[cw]E;
|
||||
|
||||
# VTT structure
|
||||
_ZTTS[a-z];
|
||||
_ZTTSt[0-9][A-Za-z]*;
|
||||
_ZTTSt[0-9][0-9][A-Za-z]*;
|
||||
|
||||
# typeinfo structure
|
||||
_ZTIS[a-z];
|
||||
_ZTINSt8ios_base7failureE;
|
||||
_ZTINSt6locale5facetE;
|
||||
_ZTISt[0-9][A-Za-z]*;
|
||||
_ZTISt[0-9][0-9][A-Za-z]*;
|
||||
_ZTISt11__timepunctI[cw]E;
|
||||
_ZTISt10__num_base;
|
||||
_ZTISt21__ctype_abstract_baseI[cw]E;
|
||||
_ZTISt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
|
||||
_ZTIN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
|
||||
_ZTIN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE;
|
||||
|
||||
# typeinfo name
|
||||
_ZTSNSt8ios_base7failureE;
|
||||
_ZTSNSt6locale5facetE;
|
||||
_ZTSS[a-z];
|
||||
_ZTSSt[0-9][A-Za-z]*;
|
||||
_ZTSSt[0-9][0-9][A-Za-z]*;
|
||||
_ZTSSt11__timepunctI[cw]E;
|
||||
_ZTSSt10__num_base;
|
||||
_ZTSSt21__ctype_abstract_baseI[cw]E;
|
||||
_ZTSSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
|
||||
_ZTSN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
|
||||
_ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE;
|
||||
|
||||
# std::bad_alloc::~bad_alloc, std::bad_cast::~bad_cast,
|
||||
# std::bad_typeid::~bad_typeid, std::bad_exception::~bad_exception
|
||||
_ZNSt9bad_allocD*;
|
||||
_ZNSt8bad_castD*;
|
||||
_ZNSt10bad_typeidD*;
|
||||
_ZNSt13bad_exceptionD*;
|
||||
|
||||
# function-scope static objects requires a guard variable.
|
||||
_ZGVNSt[^1]*;
|
||||
_ZGVNSt1[^7]*;
|
||||
|
||||
# virtual function thunks
|
||||
_ZThn8_NS*;
|
||||
_ZThn16_NS*;
|
||||
_ZTv0_n12_NS*;
|
||||
_ZTv0_n24_NS*;
|
||||
|
||||
# stub functions from libmath
|
||||
sinf;
|
||||
sinl;
|
||||
sinhf;
|
||||
sinhl;
|
||||
cosf;
|
||||
cosl;
|
||||
coshf;
|
||||
coshl;
|
||||
tanf;
|
||||
tanl;
|
||||
tanhf;
|
||||
tanhl;
|
||||
atan2f;
|
||||
atan2l;
|
||||
expf;
|
||||
expl;
|
||||
hypotf;
|
||||
hypotl;
|
||||
hypot;
|
||||
logf;
|
||||
logl;
|
||||
log10f;
|
||||
log10l;
|
||||
powf;
|
||||
powl;
|
||||
sqrtf;
|
||||
sqrtl;
|
||||
copysignf;
|
||||
__signbit;
|
||||
__signbitf;
|
||||
__signbitl;
|
||||
|
||||
# GLIBCXX_ABI compatibility only.
|
||||
# std::string
|
||||
_ZNKSs11_M_disjunctEPKc;
|
||||
_ZNKSs15_M_check_lengthE[jm][jm]PKc;
|
||||
_ZNSs4_Rep26_M_set_length_and_sharableE*;
|
||||
_ZNSs7_M_copyEPcPKc[jm];
|
||||
_ZNSs7_M_moveEPcPKc[jm];
|
||||
_ZNSs9_M_assignEPc[jm]c;
|
||||
|
||||
# std::wstring
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthE[jm][jm]PKc;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableE*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKw[jm];
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKw[jm];
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPw[jm]w;
|
||||
|
||||
_ZNKSt13basic_fstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNKSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNKSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
|
||||
_ZNSi6ignoreE[ilv];
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[ilv];
|
||||
|
||||
_ZNSt11char_traitsI[cw]E2eqERK[cw]S2_;
|
||||
|
||||
_ZNSt19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEppEv;
|
||||
|
||||
# std::locale::Impl _M_ members
|
||||
_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE;
|
||||
_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE;
|
||||
_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE;
|
||||
_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i;
|
||||
|
||||
# DO NOT DELETE THIS LINE. Port-specific symbols, if any, will be here.
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
GLIBCXX_3.4.1 {
|
||||
|
||||
_ZNSt12__basic_fileIcE4fileEv;
|
||||
|
||||
} GLIBCXX_3.4;
|
||||
|
||||
GLIBCXX_3.4.2 {
|
||||
|
||||
_ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE4fileEv;
|
||||
|
||||
_ZN9__gnu_cxx17__pool_alloc_base9_M_refillE[jm];
|
||||
_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listE[jm];
|
||||
_ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv;
|
||||
|
||||
} GLIBCXX_3.4.1;
|
||||
|
||||
GLIBCXX_3.4.3 {
|
||||
|
||||
# stub functions from libmath
|
||||
acosf;
|
||||
acosl;
|
||||
asinf;
|
||||
asinl;
|
||||
atanf;
|
||||
atanl;
|
||||
ceilf;
|
||||
ceill;
|
||||
floorf;
|
||||
floorl;
|
||||
fmodf;
|
||||
fmodl;
|
||||
frexpf;
|
||||
frexpl;
|
||||
ldexpf;
|
||||
ldexpl;
|
||||
modff;
|
||||
modfl;
|
||||
|
||||
} GLIBCXX_3.4.2;
|
||||
|
||||
GLIBCXX_3.4.4 {
|
||||
|
||||
_ZN9__gnu_cxx6__poolILb0EE13_M_initializeEv;
|
||||
_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEPFvPvE;
|
||||
_ZN9__gnu_cxx6__poolILb1EE21_M_destroy_thread_keyEPv;
|
||||
_ZN9__gnu_cxx6__poolILb1EE16_M_get_thread_idEv;
|
||||
_ZN9__gnu_cxx6__poolILb[01]EE16_M_reserve_blockE[jm][jm];
|
||||
_ZN9__gnu_cxx6__poolILb[01]EE16_M_reclaim_blockEPc[jm];
|
||||
_ZN9__gnu_cxx6__poolILb[01]EE10_M_destroyEv;
|
||||
|
||||
_ZN9__gnu_cxx9free_list6_M_getE*;
|
||||
_ZN9__gnu_cxx9free_list8_M_clearEv;
|
||||
|
||||
} GLIBCXX_3.4.3;
|
||||
|
||||
GLIBCXX_3.4.5 {
|
||||
|
||||
# std::string
|
||||
_ZNKSs11_M_disjunctEPKc;
|
||||
_ZNKSs15_M_check_lengthE[jm][jm]PKc;
|
||||
_ZNSs4_Rep26_M_set_length_and_sharableE*;
|
||||
_ZNSs7_M_copyEPcPKc[jm];
|
||||
_ZNSs7_M_moveEPcPKc[jm];
|
||||
_ZNSs9_M_assignEPc[jm]c;
|
||||
|
||||
# std::wstring
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw;
|
||||
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthE[jm][jm]PKc;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableE*;
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKw[jm];
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKw[jm];
|
||||
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPw[jm]w;
|
||||
|
||||
_ZNKSt13basic_fstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNKSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
_ZNKSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
|
||||
|
||||
_ZNSi6ignoreE[ilv];
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[ilv];
|
||||
|
||||
_ZNSt11char_traitsI[cw]E2eqERK[cw]S2_;
|
||||
|
||||
_ZNSt19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEppEv;
|
||||
|
||||
} GLIBCXX_3.4.4;
|
||||
|
||||
GLIBCXX_3.4.6 {
|
||||
|
||||
_ZSt17__copy_streambufsI[cw]St11char_traitsI[cw]EEiPSt15basic_streambuf*;
|
||||
_ZNSt8ios_base17_M_call_callbacksENS_5eventE;
|
||||
_ZNSt8ios_base20_M_dispose_callbacksEv;
|
||||
_ZNSt6locale5facet13_S_get_c_nameEv;
|
||||
|
||||
_ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE9showmanycEv;
|
||||
|
||||
_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv;
|
||||
|
||||
_ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv;
|
||||
|
||||
} GLIBCXX_3.4.5;
|
||||
|
||||
GLIBCXX_3.4.7 {
|
||||
|
||||
_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetE[jm];
|
||||
|
||||
} GLIBCXX_3.4.6;
|
||||
|
||||
GLIBCXX_3.4.8 {
|
||||
|
||||
_ZSt17__copy_streambufsI[cw]St11char_traitsI[cw]EElPSt15basic_streambuf*;
|
||||
|
||||
} GLIBCXX_3.4.7;
|
||||
|
||||
GLIBCXX_3.4.9 {
|
||||
|
||||
_ZNSt6__norm15_List_node_base4hook*;
|
||||
_ZNSt6__norm15_List_node_base4swap*;
|
||||
_ZNSt6__norm15_List_node_base6unhookEv;
|
||||
_ZNSt6__norm15_List_node_base7reverseEv;
|
||||
_ZNSt6__norm15_List_node_base8transfer*;
|
||||
|
||||
_ZNSo9_M_insertI[^g]*;
|
||||
_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertI[^g]*;
|
||||
_ZNSi10_M_extractI[^g]*;
|
||||
_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractI[^g]*;
|
||||
|
||||
_ZSt21__copy_streambufs_eofI[cw]St11char_traitsI[cw]EE[il]PSt15basic_streambuf*;
|
||||
|
||||
_ZSt16__ostream_insert*;
|
||||
|
||||
_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv;
|
||||
_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb;
|
||||
_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv;
|
||||
_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv;
|
||||
|
||||
_ZNKSt9bad_alloc4whatEv;
|
||||
_ZNKSt8bad_cast4whatEv;
|
||||
_ZNKSt10bad_typeid4whatEv;
|
||||
_ZNKSt13bad_exception4whatEv;
|
||||
|
||||
} GLIBCXX_3.4.8;
|
||||
|
||||
|
||||
# Symbols in the support library (libsupc++) have their own tag.
|
||||
CXXABI_1.3 {
|
||||
|
||||
global:
|
||||
__cxa_allocate_exception;
|
||||
__cxa_bad_cast;
|
||||
__cxa_bad_typeid;
|
||||
__cxa_begin_catch;
|
||||
__cxa_begin_cleanup;
|
||||
__cxa_call_unexpected;
|
||||
__cxa_current_exception_type;
|
||||
__cxa_demangle;
|
||||
__cxa_end_catch;
|
||||
__cxa_end_cleanup;
|
||||
__cxa_free_exception;
|
||||
__cxa_get_globals;
|
||||
__cxa_get_globals_fast;
|
||||
__cxa_guard_abort;
|
||||
__cxa_guard_acquire;
|
||||
__cxa_guard_release;
|
||||
__cxa_pure_virtual;
|
||||
__cxa_rethrow;
|
||||
__cxa_throw;
|
||||
__cxa_type_match;
|
||||
__cxa_vec_cctor;
|
||||
__cxa_vec_cleanup;
|
||||
__cxa_vec_ctor;
|
||||
__cxa_vec_delete2;
|
||||
__cxa_vec_delete3;
|
||||
__cxa_vec_delete;
|
||||
__cxa_vec_dtor;
|
||||
__cxa_vec_new2;
|
||||
__cxa_vec_new3;
|
||||
__cxa_vec_new;
|
||||
__gxx_personality_v0;
|
||||
__gxx_personality_sj0;
|
||||
__dynamic_cast;
|
||||
|
||||
# *_type_info classes, ctor and dtor
|
||||
_ZN10__cxxabiv117__array_type_info*;
|
||||
_ZN10__cxxabiv117__class_type_info*;
|
||||
_ZN10__cxxabiv116__enum_type_info*;
|
||||
_ZN10__cxxabiv120__function_type_info*;
|
||||
_ZN10__cxxabiv123__fundamental_type_info*;
|
||||
_ZN10__cxxabiv117__pbase_type_info*;
|
||||
_ZN10__cxxabiv129__pointer_to_member_type_info*;
|
||||
_ZN10__cxxabiv119__pointer_type_info*;
|
||||
_ZN10__cxxabiv120__si_class_type_info*;
|
||||
_ZN10__cxxabiv121__vmi_class_type_info*;
|
||||
|
||||
# *_type_info classes, member functions
|
||||
_ZNK10__cxxabiv117__class_type_info*;
|
||||
_ZNK10__cxxabiv120__function_type_info*;
|
||||
_ZNK10__cxxabiv117__pbase_type_info*;
|
||||
_ZNK10__cxxabiv129__pointer_to_member_type_info*;
|
||||
_ZNK10__cxxabiv119__pointer_type_info*;
|
||||
_ZNK10__cxxabiv120__si_class_type_info*;
|
||||
_ZNK10__cxxabiv121__vmi_class_type_info*;
|
||||
|
||||
# virtual table
|
||||
_ZTVN10__cxxabiv117__array_type_infoE;
|
||||
_ZTVN10__cxxabiv117__class_type_infoE;
|
||||
_ZTVN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTVN10__cxxabiv120__function_type_infoE;
|
||||
_ZTVN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTVN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTVN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTVN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTVN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# typeinfo structure (and some names)
|
||||
_ZTI[a-fh-z];
|
||||
_ZTIP[a-fh-z];
|
||||
_ZTIPK[a-fh-z];
|
||||
_ZTIN10__cxxabiv117__array_type_infoE;
|
||||
_ZTIN10__cxxabiv117__class_type_infoE;
|
||||
_ZTIN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTIN10__cxxabiv120__function_type_infoE;
|
||||
_ZTIN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTIN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTIN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTIN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTIN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# typeinfo name
|
||||
_ZTS[a-fh-z];
|
||||
_ZTSP[a-fh-z];
|
||||
_ZTSPK[a-fh-z];
|
||||
_ZTSN10__cxxabiv117__array_type_infoE;
|
||||
_ZTSN10__cxxabiv117__class_type_infoE;
|
||||
_ZTSN10__cxxabiv116__enum_type_infoE;
|
||||
_ZTSN10__cxxabiv120__function_type_infoE;
|
||||
_ZTSN10__cxxabiv123__fundamental_type_infoE;
|
||||
_ZTSN10__cxxabiv117__pbase_type_infoE;
|
||||
_ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
|
||||
_ZTSN10__cxxabiv119__pointer_type_infoE;
|
||||
_ZTSN10__cxxabiv120__si_class_type_infoE;
|
||||
_ZTSN10__cxxabiv121__vmi_class_type_infoE;
|
||||
|
||||
# __gnu_cxx::_verbose_terminate_handler()
|
||||
_ZN9__gnu_cxx27__verbose_terminate_handlerEv;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
CXXABI_1.3.1 {
|
||||
|
||||
__cxa_get_exception_ptr;
|
||||
|
||||
} CXXABI_1.3;
|
7
contrib/libstdc++/config/abi/pre/none.ver
Normal file
7
contrib/libstdc++/config/abi/pre/none.ver
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# This is a placeholder file. It does nothing and is not used.
|
||||
#
|
||||
# If you are seeing this file as your linker script (named
|
||||
# libstdc++-symbols.ver), then either 1) the configuration process
|
||||
# determined that symbol versioning should not be done, or 2) you
|
||||
# specifically turned it off. (ie, --disable-symvers).
|
@ -1,6 +1,6 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,11 +27,16 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CXX_ALLOCATOR_H
|
||||
#define _CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define bitmap_allocator as the base class to std::allocator.
|
||||
#include <ext/bitmap_allocator.h>
|
||||
#define ___glibcxx_base_allocator __gnu_cxx::bitmap_allocator
|
||||
#define __glibcxx_base_allocator __gnu_cxx::bitmap_allocator
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,11 +27,16 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CXX_ALLOCATOR_H
|
||||
#define _CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/malloc_allocator.h>
|
||||
#define ___glibcxx_base_allocator __gnu_cxx::malloc_allocator
|
||||
#define __glibcxx_base_allocator __gnu_cxx::malloc_allocator
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,11 +27,16 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CXX_ALLOCATOR_H
|
||||
#define _CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define mt_allocator as the base class to std::allocator.
|
||||
#include <ext/mt_allocator.h>
|
||||
#define ___glibcxx_base_allocator __gnu_cxx::__mt_alloc
|
||||
#define __glibcxx_base_allocator __gnu_cxx::__mt_alloc
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,11 +27,16 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CXX_ALLOCATOR_H
|
||||
#define _CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/new_allocator.h>
|
||||
#define ___glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
#define __glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,11 +27,16 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CXX_ALLOCATOR_H
|
||||
#define _CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/pool_allocator.h>
|
||||
#define ___glibcxx_base_allocator __gnu_cxx::__pool_alloc
|
||||
#define __glibcxx_base_allocator __gnu_cxx::__pool_alloc
|
||||
|
||||
#endif
|
||||
|
38
contrib/libstdc++/config/cpu/alpha/atomic_word.h
Normal file
38
contrib/libstdc++/config/cpu/alpha/atomic_word.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _GLIBCXX_ATOMIC_WORD_H
|
||||
#define _GLIBCXX_ATOMIC_WORD_H 1
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("mb":::"memory")
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("wmb":::"memory")
|
||||
|
||||
#endif
|
80
contrib/libstdc++/config/cpu/arm/cxxabi_tweaks.h
Normal file
80
contrib/libstdc++/config/cpu/arm/cxxabi_tweaks.h
Normal file
@ -0,0 +1,80 @@
|
||||
// Control various target specific ABI tweaks. ARM version.
|
||||
|
||||
// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file cxxabi_tweaks.h
|
||||
* The header provides an CPU-variable interface to the C++ ABI.
|
||||
*/
|
||||
|
||||
#ifndef _CXXABI_TWEAKS_H
|
||||
#define _CXXABI_TWEAKS_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifdef __ARM_EABI__
|
||||
// The ARM EABI uses the least significant bit of a 32-bit
|
||||
// guard variable. */
|
||||
#define _GLIBCXX_GUARD_TEST(x) ((*(x) & 1) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(x) = 1
|
||||
typedef int __guard;
|
||||
|
||||
// We also want the element size in array cookies.
|
||||
#define _GLIBCXX_ELTSIZE_IN_COOKIE 1
|
||||
|
||||
// __cxa_vec_ctor should return a pointer to the array.
|
||||
typedef void * __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return x
|
||||
// Constructors and destructors return the "this" pointer.
|
||||
typedef void * __cxa_cdtor_return_type;
|
||||
|
||||
#else // __ARM_EABI__
|
||||
|
||||
// The generic ABI uses the first byte of a 64-bit guard variable.
|
||||
#define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1
|
||||
__extension__ typedef int __guard __attribute__((mode (__DI__)));
|
||||
|
||||
// __cxa_vec_ctor has void return type.
|
||||
typedef void __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return
|
||||
// Constructors and destructors do not return a value.
|
||||
typedef void __cxa_cdtor_return_type;
|
||||
|
||||
#endif //!__ARM_EABI__
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // namespace __cxxabiv1
|
||||
#endif
|
||||
|
||||
#endif
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: CRIS version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +27,10 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_Atomic_word
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
@ -47,8 +47,8 @@ namespace __gnu_cxx
|
||||
" move.d %2,[%3] \n"
|
||||
" bwf 0b \n"
|
||||
" clearf \n"
|
||||
: "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
|
||||
: "r" (__mem), "g" (__val), "m" (*__mem)
|
||||
: "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
|
||||
: "r" (__mem), "g" (__val), "Q" (*__mem)
|
||||
/* The memory clobber must stay, regardless of
|
||||
current uses of this function. */
|
||||
: "memory");
|
||||
@ -60,8 +60,8 @@ namespace __gnu_cxx
|
||||
" add.d %0,%2 \n"
|
||||
" move.d %2,[%3] \n"
|
||||
" move $r9,$ccr \n"
|
||||
: "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
|
||||
: "r" (__mem), "g" (__val), "m" (*__mem)
|
||||
: "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
|
||||
: "r" (__mem), "g" (__val), "Q" (*__mem)
|
||||
: "r9",
|
||||
/* The memory clobber must stay, regardless of
|
||||
current uses of this function. */
|
||||
@ -74,4 +74,5 @@ namespace __gnu_cxx
|
||||
void
|
||||
__atomic_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ __exchange_and_add(__mem, __val); }
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,9 +27,26 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file atomic_word.h
|
||||
* This file is a GNU extension to the Standard C++ Library.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ATOMIC_WORD_H
|
||||
#define _GLIBCXX_ATOMIC_WORD_H 1
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
// Define these two macros using the appropriate memory barrier for the target.
|
||||
// The commented out versions below are the defaults.
|
||||
// See ia64/atomic_word.h for an alternative approach.
|
||||
|
||||
// This one prevents loads from being hoisted across the barrier;
|
||||
// in other words, this is a Load-Load acquire barrier.
|
||||
// This is necessary iff TARGET_RELAXED_ORDERING is defined in tm.h.
|
||||
// #define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory")
|
||||
|
||||
// This one prevents stores from being sunk across the barrier; in other
|
||||
// words, a Store-Store release barrier.
|
||||
// #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory")
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,50 @@
|
||||
// Low-level functions for atomic operations: version for CPUs providing
|
||||
// atomic builtins -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ext/atomicity.h
|
||||
* This file is a GNU extension to the Standard C++ Library.
|
||||
*/
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <bits/atomic_word.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ return __sync_fetch_and_add(__mem, __val); }
|
||||
|
||||
void
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ __sync_fetch_and_add(__mem, __val); }
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -0,0 +1,61 @@
|
||||
// Low-level functions for atomic operations: Generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ext/atomicity.h
|
||||
* This file is a GNU extension to the Standard C++ Library.
|
||||
*/
|
||||
|
||||
#include <ext/atomicity.h>
|
||||
#include <ext/concurrence.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
__gnu_cxx::__mutex atomic_mutex;
|
||||
} // anonymous namespace
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
__gnu_cxx::__scoped_lock sentry(atomic_mutex);
|
||||
_Atomic_word __result;
|
||||
__result = *__mem;
|
||||
*__mem += __val;
|
||||
return __result;
|
||||
}
|
||||
|
||||
void
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ __exchange_and_add(__mem, __val); }
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
38
contrib/libstdc++/config/cpu/generic/cpu_defines.h
Normal file
38
contrib/libstdc++/config/cpu/generic/cpu_defines.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
60
contrib/libstdc++/config/cpu/generic/cxxabi_tweaks.h
Normal file
60
contrib/libstdc++/config/cpu/generic/cxxabi_tweaks.h
Normal file
@ -0,0 +1,60 @@
|
||||
// Control various target specific ABI tweaks. Generic version.
|
||||
|
||||
// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file cxxabi_tweaks.h
|
||||
* The header provides an CPU-variable interface to the C++ ABI.
|
||||
*/
|
||||
|
||||
#ifndef _CXXABI_TWEAKS_H
|
||||
#define _CXXABI_TWEAKS_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
// The generic ABI uses the first byte of a 64-bit guard variable.
|
||||
#define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1
|
||||
__extension__ typedef int __guard __attribute__((mode (__DI__)));
|
||||
|
||||
// __cxa_vec_ctor has void return type.
|
||||
typedef void __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return
|
||||
// Constructors and destructors do not return a value.
|
||||
typedef void __cxa_cdtor_return_type;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // namespace __cxxabiv1
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: PA-RISC version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -28,10 +28,10 @@
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
template<int _Inst>
|
||||
struct _Atomicity_lock
|
||||
{
|
||||
@ -61,12 +61,12 @@ namespace __gnu_cxx
|
||||
"nop\n\t"
|
||||
"b,n .-20"
|
||||
: "=&r" (tmp)
|
||||
: "r" (&lock));
|
||||
: "r" (&lock)
|
||||
: "memory");
|
||||
|
||||
result = *__mem;
|
||||
*__mem = result + __val;
|
||||
/* Reset lock with PA 2.0 "ordered" store. */
|
||||
__asm__ __volatile__ ("stw,ma %1,0(%0)"
|
||||
__asm__ __volatile__ ("stw %1,0(%0)"
|
||||
: : "r" (&lock), "r" (tmp) : "memory");
|
||||
return result;
|
||||
}
|
||||
@ -85,11 +85,12 @@ namespace __gnu_cxx
|
||||
"nop\n\t"
|
||||
"b,n .-20"
|
||||
: "=&r" (tmp)
|
||||
: "r" (&lock));
|
||||
: "r" (&lock)
|
||||
: "memory");
|
||||
|
||||
*__mem += __val;
|
||||
/* Reset lock with PA 2.0 "ordered" store. */
|
||||
__asm__ __volatile__ ("stw,ma %1,0(%0)"
|
||||
__asm__ __volatile__ ("stw %1,0(%0)"
|
||||
: : "r" (&lock), "r" (tmp) : "memory");
|
||||
}
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +27,10 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
template<int __inst>
|
||||
struct _Atomicity_lock
|
||||
{
|
||||
@ -71,4 +71,5 @@ namespace __gnu_cxx
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ __exchange_and_add(__mem, __val); }
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +27,10 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
@ -49,5 +49,6 @@ namespace __gnu_cxx
|
||||
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
|
||||
: "=m" (*__mem) : "ir" (__val), "m" (*__mem));
|
||||
}
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
|
69
contrib/libstdc++/config/cpu/ia64/atomic_word.h
Normal file
69
contrib/libstdc++/config/cpu/ia64/atomic_word.h
Normal file
@ -0,0 +1,69 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _GLIBCXX_ATOMIC_WORD_H
|
||||
#define _GLIBCXX_ATOMIC_WORD_H 1
|
||||
|
||||
#include <bits/cxxabi_tweaks.h>
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
// Test the first byte of __g and ensure that no loads are hoisted across
|
||||
// the test.
|
||||
inline bool
|
||||
__test_and_acquire (__cxxabiv1::__guard *__g)
|
||||
{
|
||||
unsigned char __c;
|
||||
unsigned char *__p = reinterpret_cast<unsigned char *>(__g);
|
||||
// ldN.acq is a load with an implied hoist barrier.
|
||||
// would ld8+mask be faster than just doing an ld1?
|
||||
__asm __volatile ("ld1.acq %0 = %1" : "=r"(__c) : "m"(*__p) : "memory");
|
||||
return __c != 0;
|
||||
}
|
||||
|
||||
// Set the first byte of __g to 1 and ensure that no stores are sunk
|
||||
// across the store.
|
||||
inline void
|
||||
__set_and_release (__cxxabiv1::__guard *__g)
|
||||
{
|
||||
unsigned char *__p = reinterpret_cast<unsigned char *>(__g);
|
||||
// stN.rel is a store with an implied sink barrier.
|
||||
// could load word, set flag, and CAS it back
|
||||
__asm __volatile ("st1.rel %0 = %1" : "=m"(*__p) : "r"(1) : "memory");
|
||||
}
|
||||
|
||||
// We don't define the _BARRIER macros on ia64 because the barriers are
|
||||
// included in the test and set, above.
|
||||
#define _GLIBCXX_GUARD_TEST_AND_ACQUIRE(G) __gnu_cxx::__test_and_acquire (G)
|
||||
#define _GLIBCXX_GUARD_SET_AND_RELEASE(G) __gnu_cxx::__set_and_release (G)
|
||||
}
|
||||
|
||||
#endif
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: m68k version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +27,10 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
#if ( defined(__mc68020__) || defined(__mc68030__) \
|
||||
|| defined(__mc68040__) || defined(__mc68060__) ) \
|
||||
&& !defined(__mcpu32__)
|
||||
@ -130,4 +130,5 @@ namespace __gnu_cxx
|
||||
// architecturally guaranteed to be atomic.
|
||||
__exchange_and_add(__mem, __val);
|
||||
}
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Low-level functions for atomic operations: MIPS version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +28,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
// NB: MIPS II or above required.
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
@ -44,14 +46,15 @@ namespace __gnu_cxx
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
".set mips2\n\t"
|
||||
#endif
|
||||
"ll %0,%3\n\t"
|
||||
"addu %1,%4,%0\n\t"
|
||||
"sc %1,%2\n\t"
|
||||
"ll %0,0(%2)\n\t"
|
||||
"addu %1,%3,%0\n\t"
|
||||
"sc %1,0(%2)\n\t"
|
||||
".set pop\n\t"
|
||||
"beqz %1,1b\n\t"
|
||||
"/* End exchange & add */"
|
||||
: "=&r"(__result), "=&r"(__tmp), "=m"(*__mem)
|
||||
: "m" (*__mem), "r"(__val));
|
||||
: "=&r"(__result), "=&r"(__tmp)
|
||||
: "r"(__mem), "r"(__val)
|
||||
: "memory" );
|
||||
|
||||
return __result;
|
||||
}
|
||||
@ -69,13 +72,15 @@ namespace __gnu_cxx
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
".set mips2\n\t"
|
||||
#endif
|
||||
"ll %0,%2\n\t"
|
||||
"addu %0,%3,%0\n\t"
|
||||
"sc %0,%1\n\t"
|
||||
"ll %0,0(%1)\n\t"
|
||||
"addu %0,%2,%0\n\t"
|
||||
"sc %0,0(%1)\n\t"
|
||||
".set pop\n\t"
|
||||
"beqz %0,1b\n\t"
|
||||
"/* End atomic add */"
|
||||
: "=&r"(__result), "=m"(*__mem)
|
||||
: "m" (*__mem), "r"(__val));
|
||||
: "=&r"(__result)
|
||||
: "r"(__mem), "r"(__val)
|
||||
: "memory" );
|
||||
}
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
42
contrib/libstdc++/config/cpu/powerpc/atomic_word.h
Normal file
42
contrib/libstdc++/config/cpu/powerpc/atomic_word.h
Normal file
@ -0,0 +1,42 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _GLIBCXX_ATOMIC_WORD_H
|
||||
#define _GLIBCXX_ATOMIC_WORD_H 1
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("isync":::"memory")
|
||||
#ifdef __NO_LWSYNC__
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("sync":::"memory")
|
||||
#else
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("lwsync":::"memory")
|
||||
#endif
|
||||
|
||||
#endif
|
41
contrib/libstdc++/config/cpu/powerpc/cpu_defines.h
Normal file
41
contrib/libstdc++/config/cpu/powerpc/cpu_defines.h
Normal file
@ -0,0 +1,41 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
// Integer divide instructions don't trap on PowerPC.
|
||||
#define __glibcxx_integral_traps false
|
||||
|
||||
#endif
|
107
contrib/libstdc++/config/cpu/sh/atomicity.h
Normal file
107
contrib/libstdc++/config/cpu/sh/atomicity.h
Normal file
@ -0,0 +1,107 @@
|
||||
// Low-level functions for atomic operations: sh version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _BITS_ATOMICITY_H
|
||||
#define _BITS_ATOMICITY_H 1
|
||||
|
||||
#ifdef __SH4A__
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
static inline _Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add (volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
_Atomic_word __result;
|
||||
|
||||
__asm__ __volatile__
|
||||
("0:\n"
|
||||
"\tmovli.l\t@%2,r0\n"
|
||||
"\tmov\tr0,%1\n"
|
||||
"\tadd\t%3,r0\n"
|
||||
"\tmovco.l\tr0,@%2\n"
|
||||
"\tbf\t0b"
|
||||
: "+m" (*__mem), "=r" (__result)
|
||||
: "r" (__mem), "rI08" (__val)
|
||||
: "r0");
|
||||
|
||||
return __result;
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add (volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
asm("0:\n"
|
||||
"\tmovli.l\t@%1,r0\n"
|
||||
"\tadd\t%2,r0\n"
|
||||
"\tmovco.l\tr0,@%1\n"
|
||||
"\tbf\t0b"
|
||||
: "+m" (*__mem)
|
||||
: "r" (__mem), "rI08" (__val)
|
||||
: "r0");
|
||||
}
|
||||
|
||||
#else /* !__SH4A__ */
|
||||
|
||||
/* This is generic/atomicity.h */
|
||||
|
||||
#include <ext/atomicity.h>
|
||||
#include <ext/concurrence.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
__gnu_cxx::__mutex atomic_mutex;
|
||||
} // anonymous namespace
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
__gnu_cxx::__scoped_lock sentry(atomic_mutex);
|
||||
_Atomic_word __result;
|
||||
__result = *__mem;
|
||||
*__mem += __val;
|
||||
return __result;
|
||||
}
|
||||
|
||||
void
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add(volatile _Atomic_word* __mem, int __val)
|
||||
{ __exchange_and_add(__mem, __val); }
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif /* !__SH4A__ */
|
||||
|
||||
#endif /* atomicity.h */
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,4 +36,18 @@
|
||||
typedef int _Atomic_word;
|
||||
#endif
|
||||
|
||||
#if defined(__sparc_v9__)
|
||||
// These are necessary under the V9 RMO model, though it is almost never
|
||||
// used in userspace.
|
||||
#define _GLIBCXX_READ_MEM_BARRIER \
|
||||
__asm __volatile ("membar #LoadLoad":::"memory")
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER \
|
||||
__asm __volatile ("membar #StoreStore":::"memory")
|
||||
|
||||
#elif defined(__sparc_v8__)
|
||||
// This is necessary under the PSO model.
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("stbar":::"memory")
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Low-level functions for atomic operations: Sparc version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +28,10 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
#ifdef __arch64__
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
@ -122,4 +123,5 @@ namespace __gnu_cxx
|
||||
: "memory");
|
||||
}
|
||||
#endif /* __arch32__ */
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -68,9 +69,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <limits> // For <off_t>::max() and min()
|
||||
#include <limits> // For <off_t>::max() and min() and <streamsize>::max()
|
||||
|
||||
namespace __gnu_internal
|
||||
namespace
|
||||
{
|
||||
// Map ios_base::openmode flags to a string for use in fopen().
|
||||
// Table of valid combinations as given in [lib.filebuf.members]/2.
|
||||
@ -94,6 +95,8 @@ namespace __gnu_internal
|
||||
case (in ): return "r";
|
||||
case (in|out ): return "r+";
|
||||
case (in|out|trunc ): return "w+";
|
||||
// Extension to Table 92.
|
||||
case (in|out |app ): return "a+";
|
||||
|
||||
case ( out |binary): return "wb";
|
||||
case ( out |app|binary): return "ab";
|
||||
@ -101,6 +104,8 @@ namespace __gnu_internal
|
||||
case (in |binary): return "rb";
|
||||
case (in|out |binary): return "r+b";
|
||||
case (in|out|trunc |binary): return "w+b";
|
||||
// Extension to Table 92.
|
||||
case (in|out |app|binary): return "a+b";
|
||||
|
||||
default: return 0; // invalid
|
||||
}
|
||||
@ -172,10 +177,11 @@ namespace __gnu_internal
|
||||
return __n1 + __n2 - __nleft;
|
||||
}
|
||||
#endif
|
||||
} // namespace __gnu_internal
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
namespace std
|
||||
{
|
||||
// Definitions for __basic_file<char>.
|
||||
__basic_file<char>::__basic_file(__c_lock* /*__lock*/)
|
||||
: _M_cfile(NULL), _M_cfile_created(false) { }
|
||||
@ -208,7 +214,7 @@ namespace std
|
||||
__basic_file<char>::sys_open(int __fd, ios_base::openmode __mode)
|
||||
{
|
||||
__basic_file* __ret = NULL;
|
||||
const char* __c_mode = __gnu_internal::fopen_mode(__mode);
|
||||
const char* __c_mode = fopen_mode(__mode);
|
||||
if (__c_mode && !this->is_open() && (_M_cfile = fdopen(__fd, __c_mode)))
|
||||
{
|
||||
char* __buf = NULL;
|
||||
@ -225,7 +231,7 @@ namespace std
|
||||
int /*__prot*/)
|
||||
{
|
||||
__basic_file* __ret = NULL;
|
||||
const char* __c_mode = __gnu_internal::fopen_mode(__mode);
|
||||
const char* __c_mode = fopen_mode(__mode);
|
||||
if (__c_mode && !this->is_open())
|
||||
{
|
||||
#ifdef _GLIBCXX_USE_LFS
|
||||
@ -290,7 +296,7 @@ namespace std
|
||||
|
||||
streamsize
|
||||
__basic_file<char>::xsputn(const char* __s, streamsize __n)
|
||||
{ return __gnu_internal::xwrite(this->fd(), __s, __n); }
|
||||
{ return xwrite(this->fd(), __s, __n); }
|
||||
|
||||
streamsize
|
||||
__basic_file<char>::xsputn_2(const char* __s1, streamsize __n1,
|
||||
@ -298,13 +304,13 @@ namespace std
|
||||
{
|
||||
streamsize __ret = 0;
|
||||
#ifdef _GLIBCXX_HAVE_WRITEV
|
||||
__ret = __gnu_internal::xwritev(this->fd(), __s1, __n1, __s2, __n2);
|
||||
__ret = xwritev(this->fd(), __s1, __n1, __s2, __n2);
|
||||
#else
|
||||
if (__n1)
|
||||
__ret = __gnu_internal::xwrite(this->fd(), __s1, __n1);
|
||||
__ret = xwrite(this->fd(), __s1, __n1);
|
||||
|
||||
if (__ret == __n1)
|
||||
__ret += __gnu_internal::xwrite(this->fd(), __s2, __n2);
|
||||
__ret += xwrite(this->fd(), __s2, __n2);
|
||||
#endif
|
||||
return __ret;
|
||||
}
|
||||
@ -315,8 +321,8 @@ namespace std
|
||||
#ifdef _GLIBCXX_USE_LFS
|
||||
return lseek64(this->fd(), __off, __way);
|
||||
#else
|
||||
if (__off > std::numeric_limits<off_t>::max()
|
||||
|| __off < std::numeric_limits<off_t>::min())
|
||||
if (__off > numeric_limits<off_t>::max()
|
||||
|| __off < numeric_limits<off_t>::min())
|
||||
return -1L;
|
||||
return lseek(this->fd(), __off, __way);
|
||||
#endif
|
||||
@ -352,11 +358,24 @@ namespace std
|
||||
|
||||
#if defined(_GLIBCXX_HAVE_S_ISREG) || defined(_GLIBCXX_HAVE_S_IFREG)
|
||||
// Regular files.
|
||||
#ifdef _GLIBCXX_USE_LFS
|
||||
struct stat64 __buffer;
|
||||
const int __err = fstat64(this->fd(), &__buffer);
|
||||
if (!__err && _GLIBCXX_ISREG(__buffer.st_mode))
|
||||
{
|
||||
const streamoff __off = __buffer.st_size - lseek64(this->fd(), 0,
|
||||
ios_base::cur);
|
||||
return std::min(__off, streamoff(numeric_limits<streamsize>::max()));
|
||||
}
|
||||
#else
|
||||
struct stat __buffer;
|
||||
int __ret = fstat(this->fd(), &__buffer);
|
||||
if (!__ret && _GLIBCXX_ISREG(__buffer.st_mode))
|
||||
return __buffer.st_size - lseek(this->fd(), 0, ios_base::cur);
|
||||
const int __err = fstat(this->fd(), &__buffer);
|
||||
if (!__err && _GLIBCXX_ISREG(__buffer.st_mode))
|
||||
return __buffer.st_size - lseek(this->fd(), 0, ios_base::cur);
|
||||
#endif
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
} // namespace std
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -44,8 +45,8 @@
|
||||
#include <bits/c++config.h>
|
||||
#include <ios>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Generic declaration.
|
||||
template<typename _CharT>
|
||||
class __basic_file;
|
||||
@ -105,6 +106,7 @@ namespace std
|
||||
streamsize
|
||||
showmanyc();
|
||||
};
|
||||
} // namespace std
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,7 @@
|
||||
// underlying io library -*- C++ -*-
|
||||
// Underlying io library details -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +28,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++io.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// c_io_stdio.h - Defines for using "C" stdio.h
|
||||
|
||||
#ifndef _C_IO_STDIO_H
|
||||
@ -36,51 +42,13 @@
|
||||
#include <cstddef>
|
||||
#include <bits/gthr.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __gthread_mutex_t __c_lock;
|
||||
|
||||
// for basic_file.h
|
||||
typedef FILE __c_file;
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
// for ios_base.h
|
||||
struct __ios_flags
|
||||
{
|
||||
typedef short __int_type;
|
||||
|
||||
static const __int_type _S_boolalpha = 0x0001;
|
||||
static const __int_type _S_dec = 0x0002;
|
||||
static const __int_type _S_fixed = 0x0004;
|
||||
static const __int_type _S_hex = 0x0008;
|
||||
static const __int_type _S_internal = 0x0010;
|
||||
static const __int_type _S_left = 0x0020;
|
||||
static const __int_type _S_oct = 0x0040;
|
||||
static const __int_type _S_right = 0x0080;
|
||||
static const __int_type _S_scientific = 0x0100;
|
||||
static const __int_type _S_showbase = 0x0200;
|
||||
static const __int_type _S_showpoint = 0x0400;
|
||||
static const __int_type _S_showpos = 0x0800;
|
||||
static const __int_type _S_skipws = 0x1000;
|
||||
static const __int_type _S_unitbuf = 0x2000;
|
||||
static const __int_type _S_uppercase = 0x4000;
|
||||
static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010;
|
||||
static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008;
|
||||
static const __int_type _S_floatfield = 0x0100 | 0x0004;
|
||||
|
||||
// 27.4.2.1.3 Type ios_base::iostate
|
||||
static const __int_type _S_badbit = 0x01;
|
||||
static const __int_type _S_eofbit = 0x02;
|
||||
static const __int_type _S_failbit = 0x04;
|
||||
|
||||
// 27.4.2.1.4 Type openmode
|
||||
static const __int_type _S_app = 0x01;
|
||||
static const __int_type _S_ate = 0x02;
|
||||
static const __int_type _S_bin = 0x04;
|
||||
static const __int_type _S_in = 0x08;
|
||||
static const __int_type _S_out = 0x10;
|
||||
static const __int_type _S_trunc = 0x20;
|
||||
};
|
||||
}
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
171
contrib/libstdc++/config/locale/darwin/ctype_members.cc
Normal file
171
contrib/libstdc++/config/locale/darwin/ctype_members.cc
Normal file
@ -0,0 +1,171 @@
|
||||
// std::ctype implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
// NB: The other ctype<char> specializations are in src/locale.cc and
|
||||
// various /config/os/* files.
|
||||
template<>
|
||||
ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
|
||||
: ctype<char>(0, false, __refs)
|
||||
{
|
||||
if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
|
||||
{
|
||||
this->_S_destroy_c_locale(this->_M_c_locale_ctype);
|
||||
this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
ctype<wchar_t>::__wmask_type
|
||||
ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
|
||||
{
|
||||
// Darwin uses the same codes for 'char' as 'wchar_t', so this routine
|
||||
// never gets called.
|
||||
return __m;
|
||||
};
|
||||
|
||||
wchar_t
|
||||
ctype<wchar_t>::do_toupper(wchar_t __c) const
|
||||
{ return towupper(__c); }
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
|
||||
{
|
||||
while (__lo < __hi)
|
||||
{
|
||||
*__lo = towupper(*__lo);
|
||||
++__lo;
|
||||
}
|
||||
return __hi;
|
||||
}
|
||||
|
||||
wchar_t
|
||||
ctype<wchar_t>::do_tolower(wchar_t __c) const
|
||||
{ return towlower(__c); }
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
|
||||
{
|
||||
while (__lo < __hi)
|
||||
{
|
||||
*__lo = towlower(*__lo);
|
||||
++__lo;
|
||||
}
|
||||
return __hi;
|
||||
}
|
||||
|
||||
wchar_t
|
||||
ctype<wchar_t>::
|
||||
do_widen(char __c) const
|
||||
{ return _M_widen[static_cast<unsigned char>(__c)]; }
|
||||
|
||||
const char*
|
||||
ctype<wchar_t>::
|
||||
do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
|
||||
{
|
||||
while (__lo < __hi)
|
||||
{
|
||||
*__dest = _M_widen[static_cast<unsigned char>(*__lo)];
|
||||
++__lo;
|
||||
++__dest;
|
||||
}
|
||||
return __hi;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<wchar_t>::
|
||||
do_narrow(wchar_t __wc, char __dfault) const
|
||||
{
|
||||
if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
|
||||
return _M_narrow[__wc];
|
||||
const int __c = wctob(__wc);
|
||||
return (__c == EOF ? __dfault : static_cast<char>(__c));
|
||||
}
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
|
||||
char* __dest) const
|
||||
{
|
||||
if (_M_narrow_ok)
|
||||
while (__lo < __hi)
|
||||
{
|
||||
if (*__lo >= 0 && *__lo < 128)
|
||||
*__dest = _M_narrow[*__lo];
|
||||
else
|
||||
{
|
||||
const int __c = wctob(*__lo);
|
||||
*__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
|
||||
}
|
||||
++__lo;
|
||||
++__dest;
|
||||
}
|
||||
else
|
||||
while (__lo < __hi)
|
||||
{
|
||||
const int __c = wctob(*__lo);
|
||||
*__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
|
||||
++__lo;
|
||||
++__dest;
|
||||
}
|
||||
return __hi;
|
||||
}
|
||||
|
||||
void
|
||||
ctype<wchar_t>::_M_initialize_ctype()
|
||||
{
|
||||
wint_t __i;
|
||||
for (__i = 0; __i < 128; ++__i)
|
||||
{
|
||||
const int __c = wctob(__i);
|
||||
if (__c == EOF)
|
||||
break;
|
||||
else
|
||||
_M_narrow[__i] = static_cast<char>(__c);
|
||||
}
|
||||
if (__i == 128)
|
||||
_M_narrow_ok = true;
|
||||
else
|
||||
_M_narrow_ok = false;
|
||||
for (size_t __i = 0;
|
||||
__i < sizeof(_M_widen) / sizeof(wint_t); ++__i)
|
||||
_M_widen[__i] = btowc(__i);
|
||||
}
|
||||
#endif // _GLIBCXX_USE_WCHAR_T
|
||||
}
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -42,47 +43,44 @@
|
||||
#include <ieeefp.h>
|
||||
#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Specializations for all types used in num_get.
|
||||
template<>
|
||||
void
|
||||
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
|
||||
const __c_locale&)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
// Assumes __s formatted for "C" locale.
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
// Assumes __s formatted for "C" locale.
|
||||
errno = 0;
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
char* __sanity;
|
||||
#if defined(_GLIBCXX_HAVE_STRTOF)
|
||||
float __f = strtof(__s, &__sanity);
|
||||
float __f = strtof(__s, &__sanity);
|
||||
#else
|
||||
double __d = strtod(__s, &__sanity);
|
||||
float __f = static_cast<float>(__d);
|
||||
double __d = strtod(__s, &__sanity);
|
||||
float __f = static_cast<float>(__d);
|
||||
#ifdef _GLIBCXX_HAVE_FINITEF
|
||||
if (!finitef (__f))
|
||||
errno = ERANGE;
|
||||
if (!finitef (__f))
|
||||
errno = ERANGE;
|
||||
#elif defined (_GLIBCXX_HAVE_FINITE)
|
||||
if (!finite (static_cast<double> (__f)))
|
||||
errno = ERANGE;
|
||||
if (!finite (static_cast<double> (__f)))
|
||||
errno = ERANGE;
|
||||
#elif defined (_GLIBCXX_HAVE_ISINF)
|
||||
if (isinf (static_cast<double> (__f)))
|
||||
errno = ERANGE;
|
||||
if (isinf (static_cast<double> (__f)))
|
||||
errno = ERANGE;
|
||||
#else
|
||||
if (fabs(__d) > numeric_limits<float>::max())
|
||||
errno = ERANGE;
|
||||
if (fabs(__d) > numeric_limits<float>::max())
|
||||
errno = ERANGE;
|
||||
#endif
|
||||
#endif
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __f;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __f;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -90,21 +88,18 @@ namespace std
|
||||
__convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
|
||||
const __c_locale&)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
// Assumes __s formatted for "C" locale.
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
double __d = strtod(__s, &__sanity);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __d;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
// Assumes __s formatted for "C" locale.
|
||||
errno = 0;
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
char* __sanity;
|
||||
double __d = strtod(__s, &__sanity);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __d;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -112,36 +107,27 @@ namespace std
|
||||
__convert_to_v(const char* __s, long double& __v,
|
||||
ios_base::iostate& __err, const __c_locale&)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
// Assumes __s formatted for "C" locale.
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
// Assumes __s formatted for "C" locale.
|
||||
errno = 0;
|
||||
char* __old = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "C");
|
||||
#if defined(_GLIBCXX_HAVE_STRTOLD)
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
long double __ld = strtold(__s, &__sanity);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __ld;
|
||||
char* __sanity;
|
||||
long double __ld = strtold(__s, &__sanity);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __ld;
|
||||
#else
|
||||
typedef char_traits<char>::int_type int_type;
|
||||
long double __ld;
|
||||
errno = 0;
|
||||
int __p = sscanf(__s, "%Lf", &__ld);
|
||||
if (errno == ERANGE)
|
||||
__p = 0;
|
||||
#ifdef _GLIBCXX_HAVE_FINITEL
|
||||
if ((__p == 1) && !finitel (__ld))
|
||||
__p = 0;
|
||||
typedef char_traits<char>::int_type int_type;
|
||||
long double __ld;
|
||||
int __p = sscanf(__s, "%Lf", &__ld);
|
||||
if (__p && static_cast<int_type>(__p) != char_traits<char>::eof()
|
||||
&& errno != ERANGE)
|
||||
__v = __ld;
|
||||
#endif
|
||||
if (__p && static_cast<int_type>(__p) != char_traits<char>::eof())
|
||||
__v = __ld;
|
||||
#endif
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
setlocale(LC_ALL, __old);
|
||||
free(__old);
|
||||
}
|
||||
|
||||
void
|
||||
@ -163,10 +149,11 @@ namespace std
|
||||
__c_locale
|
||||
locale::facet::_S_clone_c_locale(__c_locale&)
|
||||
{ return __c_locale(); }
|
||||
} // namespace std
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
|
||||
{
|
||||
"LC_CTYPE",
|
||||
@ -176,9 +163,18 @@ namespace __gnu_cxx
|
||||
"LC_MONETARY",
|
||||
"LC_MESSAGES"
|
||||
};
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
|
||||
} // namespace std
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
|
||||
extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
|
||||
_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +28,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.8 Standard locale categories.
|
||||
//
|
||||
@ -40,47 +46,52 @@
|
||||
|
||||
#include <clocale>
|
||||
#include <cstring> // get std::strlen
|
||||
#include <cstdio> // get std::snprintf or std::sprintf
|
||||
#include <cstdio> // get std::vsnprintf or std::vsprintf
|
||||
#include <cstdarg>
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef int* __c_locale;
|
||||
|
||||
// Convert numeric value of type _Tv to string and return length of
|
||||
// string. If snprintf is available use it, otherwise fall back to
|
||||
// the unsafe sprintf which, in general, can be dangerous and should
|
||||
// be avoided.
|
||||
template<typename _Tv>
|
||||
int
|
||||
__convert_from_v(char* __out,
|
||||
const int __size __attribute__((__unused__)),
|
||||
const char* __fmt,
|
||||
_Tv __v, const __c_locale&, int __prec)
|
||||
{
|
||||
char* __old = std::setlocale(LC_NUMERIC, NULL);
|
||||
char* __sav = NULL;
|
||||
if (std::strcmp(__old, "C"))
|
||||
{
|
||||
__sav = new char[std::strlen(__old) + 1];
|
||||
std::strcpy(__sav, __old);
|
||||
std::setlocale(LC_NUMERIC, "C");
|
||||
}
|
||||
// Convert numeric value of type double and long double to string and
|
||||
// return length of string. If vsnprintf is available use it, otherwise
|
||||
// fall back to the unsafe vsprintf which, in general, can be dangerous
|
||||
// and should be avoided.
|
||||
inline int
|
||||
__convert_from_v(const __c_locale&, char* __out,
|
||||
const int __size __attribute__((__unused__)),
|
||||
const char* __fmt, ...)
|
||||
{
|
||||
char* __old = std::setlocale(LC_NUMERIC, NULL);
|
||||
char* __sav = NULL;
|
||||
if (std::strcmp(__old, "C"))
|
||||
{
|
||||
__sav = new char[std::strlen(__old) + 1];
|
||||
std::strcpy(__sav, __old);
|
||||
std::setlocale(LC_NUMERIC, "C");
|
||||
}
|
||||
|
||||
va_list __args;
|
||||
va_start(__args, __fmt);
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99
|
||||
const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
|
||||
const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = std::sprintf(__out, __fmt, __prec, __v);
|
||||
const int __ret = std::vsprintf(__out, __fmt, __args);
|
||||
#endif
|
||||
|
||||
va_end(__args);
|
||||
|
||||
if (__sav)
|
||||
{
|
||||
std::setlocale(LC_NUMERIC, __sav);
|
||||
delete [] __sav;
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
}
|
||||
if (__sav)
|
||||
{
|
||||
std::setlocale(LC_NUMERIC, __sav);
|
||||
delete [] __sav;
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::codecvt implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Specializations.
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
codecvt_base::result
|
||||
@ -214,4 +214,5 @@ namespace std
|
||||
return __ret;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::collate implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// These are basically extensions to char_traits, and perhaps should
|
||||
// be put there instead of here.
|
||||
template<>
|
||||
@ -69,4 +69,5 @@ namespace std
|
||||
size_t __n) const
|
||||
{ return wcsxfrm(__to, __from, __n); }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::ctype implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// NB: The other ctype<char> specializations are in src/locale.cc and
|
||||
// various /config/os/* files.
|
||||
template<>
|
||||
@ -91,7 +91,7 @@ namespace std
|
||||
__ret = wctype("graph");
|
||||
break;
|
||||
default:
|
||||
__ret = 0;
|
||||
__ret = __wmask_type();
|
||||
}
|
||||
return __ret;
|
||||
};
|
||||
@ -264,4 +264,5 @@ namespace std
|
||||
}
|
||||
}
|
||||
#endif // _GLIBCXX_USE_WCHAR_T
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::messages implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Specializations
|
||||
template<>
|
||||
string
|
||||
@ -49,4 +49,5 @@ namespace std
|
||||
messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
|
||||
{ return __dfault; }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,12 +27,19 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Non-virtual member functions.
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(size_t __refs)
|
||||
@ -82,3 +89,5 @@
|
||||
this->_S_create_c_locale(this->_M_c_locale_messages, __s);
|
||||
}
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::moneypunct implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Construct and return valid pattern consisting of some combination of:
|
||||
// space none symbol sign value
|
||||
money_base::pattern
|
||||
@ -127,12 +127,9 @@ namespace std
|
||||
_M_data->_M_pos_format = money_base::_S_default_pattern;
|
||||
_M_data->_M_neg_format = money_base::_S_default_pattern;
|
||||
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
|
||||
_M_data->_M_atoms[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms[__i] =
|
||||
static_cast<wchar_t>(money_base::_S_atoms[__i]);
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -158,12 +155,9 @@ namespace std
|
||||
_M_data->_M_pos_format = money_base::_S_default_pattern;
|
||||
_M_data->_M_neg_format = money_base::_S_default_pattern;
|
||||
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
|
||||
_M_data->_M_atoms[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms[__i] =
|
||||
static_cast<wchar_t>(money_base::_S_atoms[__i]);
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -174,4 +168,5 @@ namespace std
|
||||
moneypunct<wchar_t, false>::~moneypunct()
|
||||
{ delete _M_data; }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::numpunct implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<>
|
||||
void
|
||||
numpunct<char>::_M_initialize_numpunct(__c_locale)
|
||||
@ -59,9 +59,9 @@ namespace std
|
||||
_M_data->_M_atoms_in[__i] = __num_base::_S_atoms_in[__i];
|
||||
|
||||
_M_data->_M_truename = "true";
|
||||
_M_data->_M_truename_size = strlen(_M_data->_M_truename);
|
||||
_M_data->_M_truename_size = 4;
|
||||
_M_data->_M_falsename = "false";
|
||||
_M_data->_M_falsename_size = strlen(_M_data->_M_falsename);
|
||||
_M_data->_M_falsename_size = 5;
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -85,27 +85,24 @@ namespace std
|
||||
_M_data->_M_thousands_sep = L',';
|
||||
|
||||
// Use ctype::widen code without the facet...
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(__num_base::_S_atoms_out[__i]);
|
||||
_M_data->_M_atoms_out[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms_out[__i] =
|
||||
static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
|
||||
|
||||
for (size_t __i = 0; __i < __num_base::_S_iend; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(__num_base::_S_atoms_in[__i]);
|
||||
_M_data->_M_atoms_in[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms_in[__i] =
|
||||
static_cast<wchar_t>(__num_base::_S_atoms_in[__i]);
|
||||
|
||||
_M_data->_M_truename = L"true";
|
||||
_M_data->_M_truename_size = wcslen(_M_data->_M_truename);
|
||||
_M_data->_M_truename_size = 4;
|
||||
_M_data->_M_falsename = L"false";
|
||||
_M_data->_M_falsename_size = wcslen(_M_data->_M_falsename);
|
||||
_M_data->_M_falsename_size = 5;
|
||||
}
|
||||
|
||||
template<>
|
||||
numpunct<wchar_t>::~numpunct()
|
||||
{ delete _M_data; }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<>
|
||||
void
|
||||
__timepunct<char>::
|
||||
@ -201,4 +201,5 @@ namespace std
|
||||
_M_data->_M_amonth12 = L"Dec";
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +27,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file time_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.5.1.2 - time_get functions
|
||||
// ISO C++ 14882: 22.2.5.3.2 - time_put functions
|
||||
@ -34,6 +39,8 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL)
|
||||
@ -55,10 +62,18 @@
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_data(NULL)
|
||||
{
|
||||
char* __tmp = new char[std::strlen(__s) + 1];
|
||||
std::strcpy(__tmp, __s);
|
||||
const size_t __len = std::strlen(__s) + 1;
|
||||
char* __tmp = new char[__len];
|
||||
std::memcpy(__tmp, __s, __len);
|
||||
_M_name_timepunct = __tmp;
|
||||
_M_initialize_timepunct(__cloc);
|
||||
|
||||
try
|
||||
{ _M_initialize_timepunct(__cloc); }
|
||||
catch(...)
|
||||
{
|
||||
delete [] _M_name_timepunct;
|
||||
__throw_exception_again;
|
||||
}
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
@ -69,3 +84,5 @@
|
||||
delete _M_data;
|
||||
_S_destroy_c_locale(_M_c_locale_timepunct);
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,13 +27,18 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++locale_internal.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// Written by Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <clocale>
|
||||
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
|
||||
extern "C" __typeof(iswctype_l) __iswctype_l;
|
||||
extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
|
||||
extern "C" __typeof(strcoll_l) __strcoll_l;
|
||||
extern "C" __typeof(strftime_l) __strftime_l;
|
||||
@ -41,15 +46,19 @@ extern "C" __typeof(strtod_l) __strtod_l;
|
||||
extern "C" __typeof(strtof_l) __strtof_l;
|
||||
extern "C" __typeof(strtold_l) __strtold_l;
|
||||
extern "C" __typeof(strxfrm_l) __strxfrm_l;
|
||||
extern "C" __typeof(newlocale) __newlocale;
|
||||
extern "C" __typeof(freelocale) __freelocale;
|
||||
extern "C" __typeof(duplocale) __duplocale;
|
||||
extern "C" __typeof(uselocale) __uselocale;
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
extern "C" __typeof(iswctype_l) __iswctype_l;
|
||||
extern "C" __typeof(towlower_l) __towlower_l;
|
||||
extern "C" __typeof(towupper_l) __towupper_l;
|
||||
extern "C" __typeof(wcscoll_l) __wcscoll_l;
|
||||
extern "C" __typeof(wcsftime_l) __wcsftime_l;
|
||||
extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
|
||||
extern "C" __typeof(wctype_l) __wctype_l;
|
||||
extern "C" __typeof(newlocale) __newlocale;
|
||||
extern "C" __typeof(freelocale) __freelocale;
|
||||
extern "C" __typeof(duplocale) __duplocale;
|
||||
extern "C" __typeof(uselocale) __uselocale;
|
||||
#endif
|
||||
|
||||
#endif // GLIBC 2.3 and later
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -39,23 +40,20 @@
|
||||
#include <langinfo.h>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<>
|
||||
void
|
||||
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __f;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
float __f = __strtof_l(__s, &__sanity, __cloc);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __f;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -63,16 +61,13 @@ namespace std
|
||||
__convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __d;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
double __d = __strtod_l(__s, &__sanity, __cloc);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __d;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -80,16 +75,19 @@ namespace std
|
||||
__convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
|
||||
const __c_locale& __cloc)
|
||||
{
|
||||
if (!(__err & ios_base::failbit))
|
||||
{
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __ld;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
char* __sanity;
|
||||
errno = 0;
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
// Prefer strtold_l, as __strtold_l isn't prototyped in more recent
|
||||
// glibc versions.
|
||||
long double __ld = strtold_l(__s, &__sanity, __cloc);
|
||||
#else
|
||||
long double __ld = __strtold_l(__s, &__sanity, __cloc);
|
||||
#endif
|
||||
if (__sanity != __s && errno != ERANGE)
|
||||
__v = __ld;
|
||||
else
|
||||
__err |= ios_base::failbit;
|
||||
}
|
||||
|
||||
void
|
||||
@ -108,17 +106,18 @@ namespace std
|
||||
void
|
||||
locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
|
||||
{
|
||||
if (_S_get_c_locale() != __cloc)
|
||||
if (__cloc && _S_get_c_locale() != __cloc)
|
||||
__freelocale(__cloc);
|
||||
}
|
||||
|
||||
__c_locale
|
||||
locale::facet::_S_clone_c_locale(__c_locale& __cloc)
|
||||
{ return __duplocale(__cloc); }
|
||||
} // namespace std
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
|
||||
{
|
||||
"LC_CTYPE",
|
||||
@ -134,9 +133,18 @@ namespace __gnu_cxx
|
||||
"LC_MEASUREMENT",
|
||||
"LC_IDENTIFICATION"
|
||||
};
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
|
||||
} // namespace std
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
|
||||
extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
|
||||
_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct);
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +16,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +28,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.8 Standard locale categories.
|
||||
//
|
||||
@ -39,61 +45,68 @@
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <cstring> // get std::strlen
|
||||
#include <cstdio> // get std::snprintf or std::sprintf
|
||||
#include <cstdio> // get std::vsnprintf or std::vsprintf
|
||||
#include <clocale>
|
||||
#include <langinfo.h> // For codecvt
|
||||
#include <iconv.h> // For codecvt using iconv, iconv_t
|
||||
#include <libintl.h> // For messages
|
||||
#include <cstdarg>
|
||||
|
||||
#define _GLIBCXX_C_LOCALE_GNU 1
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 6
|
||||
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
extern "C" __typeof(uselocale) __uselocale;
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
#endif
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __locale_t __c_locale;
|
||||
|
||||
// Convert numeric value of type _Tv to string and return length of
|
||||
// string. If snprintf is available use it, otherwise fall back to
|
||||
// the unsafe sprintf which, in general, can be dangerous and should
|
||||
// be avoided.
|
||||
template<typename _Tv>
|
||||
int
|
||||
__convert_from_v(char* __out, const int __size, const char* __fmt,
|
||||
// Convert numeric value of type double and long double to string and
|
||||
// return length of string. If vsnprintf is available use it, otherwise
|
||||
// fall back to the unsafe vsprintf which, in general, can be dangerous
|
||||
// and should be avoided.
|
||||
inline int
|
||||
__convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
|
||||
char* __out,
|
||||
const int __size __attribute__ ((__unused__)),
|
||||
const char* __fmt, ...)
|
||||
{
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
_Tv __v, const __c_locale& __cloc, int __prec)
|
||||
{
|
||||
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
|
||||
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
|
||||
#else
|
||||
_Tv __v, const __c_locale&, int __prec)
|
||||
{
|
||||
char* __old = std::setlocale(LC_ALL, NULL);
|
||||
char* __sav = new char[std::strlen(__old) + 1];
|
||||
std::strcpy(__sav, __old);
|
||||
std::setlocale(LC_ALL, "C");
|
||||
char* __old = std::setlocale(LC_ALL, NULL);
|
||||
char* __sav = new char[std::strlen(__old) + 1];
|
||||
std::strcpy(__sav, __old);
|
||||
std::setlocale(LC_ALL, "C");
|
||||
#endif
|
||||
|
||||
va_list __args;
|
||||
va_start(__args, __fmt);
|
||||
|
||||
#ifdef _GLIBCXX_USE_C99
|
||||
const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
|
||||
const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
|
||||
#else
|
||||
const int __ret = std::sprintf(__out, __fmt, __prec, __v);
|
||||
const int __ret = std::vsprintf(__out, __fmt, __args);
|
||||
#endif
|
||||
|
||||
va_end(__args);
|
||||
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__gnu_cxx::__uselocale(__old);
|
||||
__gnu_cxx::__uselocale(__old);
|
||||
#else
|
||||
std::setlocale(LC_ALL, __sav);
|
||||
delete [] __sav;
|
||||
std::setlocale(LC_ALL, __sav);
|
||||
delete [] __sav;
|
||||
#endif
|
||||
return __ret;
|
||||
}
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::codecvt implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Specializations.
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
codecvt_base::result
|
||||
@ -95,14 +95,14 @@ namespace std
|
||||
{
|
||||
extern_type __buf[MB_LEN_MAX];
|
||||
__tmp_state = __state;
|
||||
const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
|
||||
if (__conv > static_cast<size_t>(__to_end - __to_next))
|
||||
const size_t __conv2 = wcrtomb(__buf, *__from_next, &__tmp_state);
|
||||
if (__conv2 > static_cast<size_t>(__to_end - __to_next))
|
||||
__ret = partial;
|
||||
else
|
||||
{
|
||||
memcpy(__to_next, __buf, __conv);
|
||||
memcpy(__to_next, __buf, __conv2);
|
||||
__state = __tmp_state;
|
||||
__to_next += __conv;
|
||||
__to_next += __conv2;
|
||||
++__from_next;
|
||||
}
|
||||
}
|
||||
@ -303,4 +303,5 @@ namespace std
|
||||
return __ret;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::collate implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// These are basically extensions to char_traits, and perhaps should
|
||||
// be put there instead of here.
|
||||
template<>
|
||||
@ -70,4 +70,5 @@ namespace std
|
||||
size_t __n) const
|
||||
{ return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::ctype implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// NB: The other ctype<char> specializations are in src/locale.cc and
|
||||
// various /config/os/* files.
|
||||
template<>
|
||||
@ -95,7 +95,7 @@ namespace std
|
||||
__ret = __wctype_l("graph", _M_c_locale_ctype);
|
||||
break;
|
||||
default:
|
||||
__ret = 0;
|
||||
__ret = __wmask_type();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
@ -134,20 +134,34 @@ namespace std
|
||||
ctype<wchar_t>::
|
||||
do_is(mask __m, wchar_t __c) const
|
||||
{
|
||||
// Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
// library for blank.
|
||||
// The case of __m == ctype_base::space is particularly important,
|
||||
// due to its use in many istream functions. Therefore we deal with
|
||||
// it first, exploiting the knowledge that on GNU systems _M_bit[5]
|
||||
// is the mask corresponding to ctype_base::space. NB: an encoding
|
||||
// change would not affect correctness!
|
||||
bool __ret = false;
|
||||
const size_t __bitmasksize = 11;
|
||||
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
if (__m & _M_bit[__bitcur]
|
||||
&& __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
{
|
||||
__ret = true;
|
||||
break;
|
||||
}
|
||||
if (__m == _M_bit[5])
|
||||
__ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
|
||||
else
|
||||
{
|
||||
// Highest bitmask in ctype_base == 10, but extra in "C"
|
||||
// library for blank.
|
||||
const size_t __bitmasksize = 11;
|
||||
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
|
||||
if (__m & _M_bit[__bitcur])
|
||||
{
|
||||
if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
|
||||
{
|
||||
__ret = true;
|
||||
break;
|
||||
}
|
||||
else if (__m == _M_bit[__bitcur])
|
||||
break;
|
||||
}
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
|
||||
@ -286,4 +300,5 @@ namespace std
|
||||
#endif
|
||||
}
|
||||
#endif // _GLIBCXX_USE_WCHAR_T
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::messages implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Specializations.
|
||||
template<>
|
||||
string
|
||||
@ -78,4 +78,5 @@ namespace std
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::messages implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,28 +27,38 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Non-virtual member functions.
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(size_t __refs)
|
||||
: facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
|
||||
_M_name_messages(_S_get_c_name())
|
||||
_M_name_messages(_S_get_c_name())
|
||||
{ }
|
||||
|
||||
template<typename _CharT>
|
||||
messages<_CharT>::messages(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
|
||||
_M_name_messages(__s)
|
||||
: facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
|
||||
{
|
||||
char* __tmp = new char[std::strlen(__s) + 1];
|
||||
std::strcpy(__tmp, __s);
|
||||
const size_t __len = std::strlen(__s) + 1;
|
||||
char* __tmp = new char[__len];
|
||||
std::memcpy(__tmp, __s, __len);
|
||||
_M_name_messages = __tmp;
|
||||
|
||||
// Last to avoid leaking memory if new throws.
|
||||
_M_c_locale_messages = _S_clone_c_locale(__cloc);
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
@ -102,3 +112,5 @@
|
||||
this->_S_create_c_locale(this->_M_c_locale_messages, __s);
|
||||
}
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::moneypunct implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Construct and return valid pattern consisting of some combination of:
|
||||
// space none symbol sign value
|
||||
money_base::pattern
|
||||
@ -372,12 +372,9 @@ namespace std
|
||||
_M_data->_M_neg_format = money_base::_S_default_pattern;
|
||||
|
||||
// Use ctype::widen code without the facet...
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
|
||||
_M_data->_M_atoms[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms[__i] =
|
||||
static_cast<wchar_t>(money_base::_S_atoms[__i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -390,12 +387,12 @@ namespace std
|
||||
setlocale(LC_ALL, __name);
|
||||
#endif
|
||||
|
||||
union __s_and_w { const char *__s; unsigned int __w; } __u;
|
||||
union { char *__s; wchar_t __w; } __u;
|
||||
__u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
|
||||
_M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_decimal_point = __u.__w;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
|
||||
_M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_thousands_sep = __u.__w;
|
||||
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
|
||||
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
|
||||
|
||||
@ -517,12 +514,9 @@ namespace std
|
||||
_M_data->_M_neg_format = money_base::_S_default_pattern;
|
||||
|
||||
// Use ctype::widen code without the facet...
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
|
||||
_M_data->_M_atoms[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms[__i] =
|
||||
static_cast<wchar_t>(money_base::_S_atoms[__i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -535,12 +529,12 @@ namespace std
|
||||
setlocale(LC_ALL, __name);
|
||||
#endif
|
||||
|
||||
union __s_and_w { const char *__s; unsigned int __w; } __u;
|
||||
union { char *__s; wchar_t __w; } __u;
|
||||
__u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
|
||||
_M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_decimal_point = __u.__w;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
|
||||
_M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_thousands_sep = __u.__w;
|
||||
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
|
||||
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
|
||||
|
||||
@ -658,4 +652,5 @@ namespace std
|
||||
delete _M_data;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::numpunct implementation details, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -36,8 +36,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<>
|
||||
void
|
||||
numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
|
||||
@ -80,10 +80,10 @@ namespace std
|
||||
// NB: There is no way to extact this info from posix locales.
|
||||
// _M_truename = __nl_langinfo_l(YESSTR, __cloc);
|
||||
_M_data->_M_truename = "true";
|
||||
_M_data->_M_truename_size = strlen(_M_data->_M_truename);
|
||||
_M_data->_M_truename_size = 4;
|
||||
// _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
|
||||
_M_data->_M_falsename = "false";
|
||||
_M_data->_M_falsename_size = strlen(_M_data->_M_falsename);
|
||||
_M_data->_M_falsename_size = 5;
|
||||
}
|
||||
|
||||
template<>
|
||||
@ -108,35 +108,25 @@ namespace std
|
||||
_M_data->_M_decimal_point = L'.';
|
||||
_M_data->_M_thousands_sep = L',';
|
||||
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__c_locale __old = __uselocale(_S_get_c_locale());
|
||||
#endif
|
||||
// Use ctype::widen code without the facet...
|
||||
unsigned char uc;
|
||||
for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
|
||||
{
|
||||
uc = static_cast<unsigned char>(__num_base::_S_atoms_out[__i]);
|
||||
_M_data->_M_atoms_out[__i] = btowc(uc);
|
||||
}
|
||||
_M_data->_M_atoms_out[__i] =
|
||||
static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
|
||||
|
||||
for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
|
||||
{
|
||||
uc = static_cast<unsigned char>(__num_base::_S_atoms_in[__j]);
|
||||
_M_data->_M_atoms_in[__j] = btowc(uc);
|
||||
}
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__uselocale(__old);
|
||||
#endif
|
||||
_M_data->_M_atoms_in[__j] =
|
||||
static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Named locale.
|
||||
union __s_and_w { const char *__s; unsigned int __w; } __u;
|
||||
// NB: In the GNU model wchar_t is always 32 bit wide.
|
||||
union { char *__s; wchar_t __w; } __u;
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
|
||||
_M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_decimal_point = __u.__w;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
|
||||
_M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
|
||||
_M_data->_M_thousands_sep = __u.__w;
|
||||
|
||||
if (_M_data->_M_thousands_sep == L'\0')
|
||||
_M_data->_M_grouping = "";
|
||||
@ -148,14 +138,15 @@ namespace std
|
||||
// NB: There is no way to extact this info from posix locales.
|
||||
// _M_truename = __nl_langinfo_l(YESSTR, __cloc);
|
||||
_M_data->_M_truename = L"true";
|
||||
_M_data->_M_truename_size = wcslen(_M_data->_M_truename);
|
||||
_M_data->_M_truename_size = 4;
|
||||
// _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
|
||||
_M_data->_M_falsename = L"false";
|
||||
_M_data->_M_falsename_size = wcslen(_M_data->_M_falsename);
|
||||
_M_data->_M_falsename_size = 5;
|
||||
}
|
||||
|
||||
template<>
|
||||
numpunct<wchar_t>::~numpunct()
|
||||
{ delete _M_data; }
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -37,8 +37,8 @@
|
||||
#include <locale>
|
||||
#include <bits/c++locale_internal.h>
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<>
|
||||
void
|
||||
__timepunct<char>::
|
||||
@ -137,7 +137,8 @@ namespace std
|
||||
_M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
|
||||
_M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
|
||||
_M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
|
||||
_M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, __cloc);
|
||||
_M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
|
||||
__cloc);
|
||||
_M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
|
||||
_M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
|
||||
_M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
|
||||
@ -284,62 +285,112 @@ namespace std
|
||||
{
|
||||
_M_c_locale_timepunct = _S_clone_c_locale(__cloc);
|
||||
|
||||
_M_data->_M_date_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_FMT, __cloc));
|
||||
_M_data->_M_date_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc));
|
||||
_M_data->_M_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT, __cloc));
|
||||
_M_data->_M_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc));
|
||||
_M_data->_M_date_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_T_FMT, __cloc));
|
||||
_M_data->_M_date_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc));
|
||||
_M_data->_M_am = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WAM_STR, __cloc));
|
||||
_M_data->_M_pm = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WPM_STR, __cloc));
|
||||
_M_data->_M_am_pm_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc));
|
||||
union { char *__s; wchar_t *__w; } __u;
|
||||
|
||||
__u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
|
||||
_M_data->_M_date_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
|
||||
_M_data->_M_date_era_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
|
||||
_M_data->_M_time_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
|
||||
_M_data->_M_time_era_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
|
||||
_M_data->_M_date_time_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
|
||||
_M_data->_M_date_time_era_format = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
|
||||
_M_data->_M_am = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
|
||||
_M_data->_M_pm = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
|
||||
_M_data->_M_am_pm_format = __u.__w;
|
||||
|
||||
// Day names, starting with "C"'s Sunday.
|
||||
_M_data->_M_day1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_1, __cloc));
|
||||
_M_data->_M_day2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_2, __cloc));
|
||||
_M_data->_M_day3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_3, __cloc));
|
||||
_M_data->_M_day4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_4, __cloc));
|
||||
_M_data->_M_day5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_5, __cloc));
|
||||
_M_data->_M_day6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_6, __cloc));
|
||||
_M_data->_M_day7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_7, __cloc));
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
|
||||
_M_data->_M_day1 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
|
||||
_M_data->_M_day2 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
|
||||
_M_data->_M_day3 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
|
||||
_M_data->_M_day4 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
|
||||
_M_data->_M_day5 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
|
||||
_M_data->_M_day6 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
|
||||
_M_data->_M_day7 = __u.__w;
|
||||
|
||||
// Abbreviated day names, starting with "C"'s Sun.
|
||||
_M_data->_M_aday1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_1, __cloc));
|
||||
_M_data->_M_aday2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_2, __cloc));
|
||||
_M_data->_M_aday3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_3, __cloc));
|
||||
_M_data->_M_aday4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_4, __cloc));
|
||||
_M_data->_M_aday5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_5, __cloc));
|
||||
_M_data->_M_aday6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_6, __cloc));
|
||||
_M_data->_M_aday7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_7, __cloc));
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
|
||||
_M_data->_M_aday1 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
|
||||
_M_data->_M_aday2 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
|
||||
_M_data->_M_aday3 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
|
||||
_M_data->_M_aday4 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
|
||||
_M_data->_M_aday5 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
|
||||
_M_data->_M_aday6 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
|
||||
_M_data->_M_aday7 = __u.__w;
|
||||
|
||||
// Month names, starting with "C"'s January.
|
||||
_M_data->_M_month01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_1, __cloc));
|
||||
_M_data->_M_month02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_2, __cloc));
|
||||
_M_data->_M_month03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_3, __cloc));
|
||||
_M_data->_M_month04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_4, __cloc));
|
||||
_M_data->_M_month05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_5, __cloc));
|
||||
_M_data->_M_month06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_6, __cloc));
|
||||
_M_data->_M_month07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_7, __cloc));
|
||||
_M_data->_M_month08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_8, __cloc));
|
||||
_M_data->_M_month09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_9, __cloc));
|
||||
_M_data->_M_month10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_10, __cloc));
|
||||
_M_data->_M_month11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_11, __cloc));
|
||||
_M_data->_M_month12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_12, __cloc));
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
|
||||
_M_data->_M_month01 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
|
||||
_M_data->_M_month02 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
|
||||
_M_data->_M_month03 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
|
||||
_M_data->_M_month04 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
|
||||
_M_data->_M_month05 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
|
||||
_M_data->_M_month06 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
|
||||
_M_data->_M_month07 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
|
||||
_M_data->_M_month08 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
|
||||
_M_data->_M_month09 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
|
||||
_M_data->_M_month10 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
|
||||
_M_data->_M_month11 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
|
||||
_M_data->_M_month12 = __u.__w;
|
||||
|
||||
// Abbreviated month names, starting with "C"'s Jan.
|
||||
_M_data->_M_amonth01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_1, __cloc));
|
||||
_M_data->_M_amonth02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_2, __cloc));
|
||||
_M_data->_M_amonth03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_3, __cloc));
|
||||
_M_data->_M_amonth04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_4, __cloc));
|
||||
_M_data->_M_amonth05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_5, __cloc));
|
||||
_M_data->_M_amonth06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_6, __cloc));
|
||||
_M_data->_M_amonth07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_7, __cloc));
|
||||
_M_data->_M_amonth08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_8, __cloc));
|
||||
_M_data->_M_amonth09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_9, __cloc));
|
||||
_M_data->_M_amonth10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_10, __cloc));
|
||||
_M_data->_M_amonth11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_11, __cloc));
|
||||
_M_data->_M_amonth12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_12, __cloc));
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
|
||||
_M_data->_M_amonth01 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
|
||||
_M_data->_M_amonth02 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
|
||||
_M_data->_M_amonth03 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
|
||||
_M_data->_M_amonth04 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
|
||||
_M_data->_M_amonth05 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
|
||||
_M_data->_M_amonth06 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
|
||||
_M_data->_M_amonth07 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
|
||||
_M_data->_M_amonth08 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
|
||||
_M_data->_M_amonth09 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
|
||||
_M_data->_M_amonth10 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
|
||||
_M_data->_M_amonth11 = __u.__w;
|
||||
__u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
|
||||
_M_data->_M_amonth12 = __u.__w;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +27,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file time_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.5.1.2 - time_get functions
|
||||
// ISO C++ 14882: 22.2.5.3.2 - time_put functions
|
||||
@ -34,28 +39,38 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
_M_name_timepunct(_S_get_c_name())
|
||||
_M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
|
||||
: facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
|
||||
_M_name_timepunct(_S_get_c_name())
|
||||
_M_name_timepunct(_S_get_c_name())
|
||||
{ _M_initialize_timepunct(); }
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
|
||||
_M_name_timepunct(__s)
|
||||
_M_name_timepunct(NULL)
|
||||
{
|
||||
char* __tmp = new char[std::strlen(__s) + 1];
|
||||
std::strcpy(__tmp, __s);
|
||||
const size_t __len = std::strlen(__s) + 1;
|
||||
char* __tmp = new char[__len];
|
||||
std::memcpy(__tmp, __s, __len);
|
||||
_M_name_timepunct = __tmp;
|
||||
_M_initialize_timepunct(__cloc);
|
||||
|
||||
try
|
||||
{ _M_initialize_timepunct(__cloc); }
|
||||
catch(...)
|
||||
{
|
||||
delete [] _M_name_timepunct;
|
||||
__throw_exception_again;
|
||||
}
|
||||
}
|
||||
|
||||
template<typename _CharT>
|
||||
@ -66,3 +81,5 @@
|
||||
delete _M_data;
|
||||
_S_destroy_c_locale(_M_c_locale_timepunct);
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +27,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.8 Standard locale categories.
|
||||
//
|
||||
@ -38,7 +43,9 @@
|
||||
#include <iconv.h> // For codecvt using iconv, iconv_t
|
||||
#include <nl_types.h> // For messages
|
||||
|
||||
namespace std
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef int* __c_locale;
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,12 +27,19 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// Non-virtual member functions.
|
||||
template<typename _CharT>
|
||||
typename messages<_CharT>::catalog
|
||||
@ -67,4 +74,4 @@
|
||||
messages<_CharT>::do_close(catalog __c) const
|
||||
{ catclose(reinterpret_cast<nl_catd>(__c)); }
|
||||
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
43
contrib/libstdc++/config/os/aix/atomic_word.h
Normal file
43
contrib/libstdc++/config/os/aix/atomic_word.h
Normal file
@ -0,0 +1,43 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _GLIBCXX_ATOMIC_WORD_H
|
||||
#define _GLIBCXX_ATOMIC_WORD_H 1
|
||||
|
||||
typedef int _Atomic_word;
|
||||
|
||||
#ifdef _ARCH_PPC
|
||||
#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("isync":::"memory")
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("sync":::"memory")
|
||||
#else
|
||||
#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory")
|
||||
#define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory")
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,6 +1,6 @@
|
||||
// Low-level functions for atomic operations: AIX version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,7 +27,7 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <bits/atomicity.h>
|
||||
#include <ext/atomicity.h>
|
||||
|
||||
/* We cannot use the cpu/powerpc/bits/atomicity.h inline assembly
|
||||
definitions for these operations since they depend on operations
|
||||
@ -43,19 +43,16 @@ extern "C"
|
||||
#include <sys/atomic_op.h>
|
||||
}
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
|
||||
|
||||
_Atomic_word
|
||||
__attribute__ ((__unused__))
|
||||
__exchange_and_add (volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
return ::fetch_and_add (const_cast<atomic_p>(__mem), __val);
|
||||
}
|
||||
{ return ::fetch_and_add(const_cast<atomic_p>(__mem), __val); }
|
||||
|
||||
void
|
||||
__attribute__ ((__unused__))
|
||||
__atomic_add (volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
(void) ::fetch_and_add (const_cast<atomic_p>(__mem), __val);
|
||||
}
|
||||
} // namespace __gnu_cxx
|
||||
{ (void) ::fetch_and_add(const_cast<atomic_p>(__mem), __val); }
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -33,6 +33,9 @@
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @brief Base class for ctype.
|
||||
struct ctype_base
|
||||
{
|
||||
// Non-standard typedefs.
|
||||
@ -53,3 +56,5 @@
|
||||
static const mask punct = _ISPUNCT;
|
||||
static const mask alnum = _ISALPHA | _ISDIGIT;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -26,14 +26,21 @@
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
bool
|
||||
ctype<char>::
|
||||
is(mask __m, char __c) const
|
||||
@ -66,11 +73,4 @@
|
||||
return __low;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,10 +27,15 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Specific definitions for AIX -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,17 +27,17 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file os_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
#undef _XOPEN_SOURCE
|
||||
#define _XOPEN_SOURCE 500
|
||||
#undef _XOPEN_SOURCE_EXTENDED
|
||||
#define _XOPEN_SOURCE_EXTENDED 1
|
||||
|
||||
// off64_t
|
||||
#ifndef _LARGE_FILE_API
|
||||
#define _LARGE_FILE_API
|
||||
@ -48,11 +48,4 @@
|
||||
#define _ALL_SOURCE
|
||||
#endif
|
||||
|
||||
#define __off_t off_t
|
||||
#define __off64_t off64_t
|
||||
#define __ssize_t ssize_t
|
||||
|
||||
#undef _G_USING_THUNKS
|
||||
#define _G_USING_THUNKS 0
|
||||
|
||||
#endif
|
||||
|
76
contrib/libstdc++/config/os/bsd/darwin/ctype_base.h
Normal file
76
contrib/libstdc++/config/os/bsd/darwin/ctype_base.h
Normal file
@ -0,0 +1,76 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h on FreeBSD 3.4,
|
||||
// 4.0 and all versions of the CVS managed file at:
|
||||
// :pserver:anoncvs@anoncvs.freebsd.org:/home/ncvs/src/include/ctype.h
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @brief Base class for ctype.
|
||||
struct ctype_base
|
||||
{
|
||||
// Non-standard typedefs.
|
||||
typedef const int* __to_type;
|
||||
|
||||
typedef unsigned long mask;
|
||||
#ifdef _CTYPE_S
|
||||
// FreeBSD 4.0 uses this style of define.
|
||||
static const mask upper = _CTYPE_U;
|
||||
static const mask lower = _CTYPE_L;
|
||||
static const mask alpha = _CTYPE_A;
|
||||
static const mask digit = _CTYPE_D;
|
||||
static const mask xdigit = _CTYPE_X;
|
||||
static const mask space = _CTYPE_S;
|
||||
static const mask print = _CTYPE_R;
|
||||
static const mask graph = _CTYPE_A | _CTYPE_D | _CTYPE_P;
|
||||
static const mask cntrl = _CTYPE_C;
|
||||
static const mask punct = _CTYPE_P;
|
||||
static const mask alnum = _CTYPE_A | _CTYPE_D;
|
||||
#else
|
||||
// Older versions, including Free BSD 3.4, use this style of define.
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _A;
|
||||
static const mask digit = _D;
|
||||
static const mask xdigit = _X;
|
||||
static const mask space = _S;
|
||||
static const mask print = _R;
|
||||
static const mask graph = _A | _D | _P;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _A | _D;
|
||||
#endif
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
152
contrib/libstdc++/config/os/bsd/darwin/ctype_inline.h
Normal file
152
contrib/libstdc++/config/os/bsd/darwin/ctype_inline.h
Normal file
@ -0,0 +1,152 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
bool
|
||||
ctype<char>::
|
||||
is(mask __m, char __c) const
|
||||
{
|
||||
if (_M_table)
|
||||
return _M_table[static_cast<unsigned char>(__c)] & __m;
|
||||
else
|
||||
return __istype(__c, __m);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
is(const char* __low, const char* __high, mask* __vec) const
|
||||
{
|
||||
if (_M_table)
|
||||
while (__low < __high)
|
||||
*__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
|
||||
else
|
||||
for (;__low < __high; ++__vec, ++__low)
|
||||
{
|
||||
#if defined (_CTYPE_S) || defined (__istype)
|
||||
*__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
|
||||
| space | print | graph | cntrl | punct | alnum);
|
||||
#else
|
||||
mask __m = 0;
|
||||
if (this->is(upper, *__low)) __m |= upper;
|
||||
if (this->is(lower, *__low)) __m |= lower;
|
||||
if (this->is(alpha, *__low)) __m |= alpha;
|
||||
if (this->is(digit, *__low)) __m |= digit;
|
||||
if (this->is(xdigit, *__low)) __m |= xdigit;
|
||||
if (this->is(space, *__low)) __m |= space;
|
||||
if (this->is(print, *__low)) __m |= print;
|
||||
if (this->is(graph, *__low)) __m |= graph;
|
||||
if (this->is(cntrl, *__low)) __m |= cntrl;
|
||||
if (this->is(punct, *__low)) __m |= punct;
|
||||
// Do not include explicit line for alnum mask since it is a
|
||||
// pure composite of masks on FreeBSD.
|
||||
*__vec = __m;
|
||||
#endif
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
scan_is(mask __m, const char* __low, const char* __high) const
|
||||
{
|
||||
if (_M_table)
|
||||
while (__low < __high
|
||||
&& !(_M_table[static_cast<unsigned char>(*__low)] & __m))
|
||||
++__low;
|
||||
else
|
||||
while (__low < __high && !this->is(__m, *__low))
|
||||
++__low;
|
||||
return __low;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::
|
||||
scan_not(mask __m, const char* __low, const char* __high) const
|
||||
{
|
||||
if (_M_table)
|
||||
while (__low < __high
|
||||
&& (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
|
||||
++__low;
|
||||
else
|
||||
while (__low < __high && this->is(__m, *__low) != 0)
|
||||
++__low;
|
||||
return __low;
|
||||
}
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
inline bool
|
||||
ctype<wchar_t>::
|
||||
do_is(mask __m, wchar_t __c) const
|
||||
{
|
||||
return __istype (__c, __m);
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
|
||||
{
|
||||
for (; __lo < __hi; ++__vec, ++__lo)
|
||||
*__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
|
||||
| space | print | graph | cntrl | punct | alnum);
|
||||
return __hi;
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
|
||||
{
|
||||
while (__lo < __hi && ! __istype (*__lo, __m))
|
||||
++__lo;
|
||||
return __lo;
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
|
||||
{
|
||||
while (__lo < __hi && __istype (*__lo, __m))
|
||||
++__lo;
|
||||
return __lo;
|
||||
}
|
||||
#endif
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
96
contrib/libstdc++/config/os/bsd/darwin/ctype_noninline.h
Normal file
96
contrib/libstdc++/config/os/bsd/darwin/ctype_noninline.h
Normal file
@ -0,0 +1,96 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return 0; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{ return ::toupper((int) __c); }
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = ::toupper((int) *__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{ return ::tolower((int) __c); }
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = ::tolower((int) *__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
47
contrib/libstdc++/config/os/bsd/darwin/os_defines.h
Normal file
47
contrib/libstdc++/config/os/bsd/darwin/os_defines.h
Normal file
@ -0,0 +1,47 @@
|
||||
// Specific definitions for Darwin -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
/* Darwin has the pthread routines in libSystem, which every program
|
||||
links to, so there's no need for weak-ness for that. */
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 0
|
||||
|
||||
// On Darwin, in order to enable overriding of operator new and delete,
|
||||
// GCC makes the definition of these functions weak, relies on the
|
||||
// loader to implement weak semantics properly, and uses
|
||||
// -flat_namespace to work around the way that it doesn't.
|
||||
#define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak))
|
||||
|
||||
#endif
|
1
contrib/libstdc++/config/os/bsd/darwin/ppc-extra.ver
Normal file
1
contrib/libstdc++/config/os/bsd/darwin/ppc-extra.ver
Normal file
@ -0,0 +1 @@
|
||||
__eprintf;
|
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -35,6 +35,9 @@
|
||||
// 4.0 and all versions of the CVS managed file at:
|
||||
// :pserver:anoncvs@anoncvs.freebsd.org:/home/ncvs/src/include/ctype.h
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @brief Base class for ctype.
|
||||
struct ctype_base
|
||||
{
|
||||
// Non-standard typedefs.
|
||||
@ -72,5 +75,4 @@
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -15,7 +15,7 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
@ -27,6 +27,11 @@
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
@ -34,6 +39,8 @@
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
bool
|
||||
ctype<char>::
|
||||
is(mask __m, char __c) const
|
||||
@ -104,3 +111,42 @@
|
||||
++__low;
|
||||
return __low;
|
||||
}
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
inline bool
|
||||
ctype<wchar_t>::
|
||||
do_is(mask __m, wchar_t __c) const
|
||||
{
|
||||
return __istype (__c, __m);
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
|
||||
{
|
||||
for (; __lo < __hi; ++__vec, ++__lo)
|
||||
*__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
|
||||
| space | print | graph | cntrl | punct | alnum);
|
||||
return __hi;
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
|
||||
{
|
||||
while (__lo < __hi && ! __istype (*__lo, __m))
|
||||
++__lo;
|
||||
return __lo;
|
||||
}
|
||||
|
||||
inline const wchar_t*
|
||||
ctype<wchar_t>::
|
||||
do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
|
||||
{
|
||||
while (__lo < __hi && __istype (*__lo, __m))
|
||||
++__lo;
|
||||
return __lo;
|
||||
}
|
||||
#endif
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user