OSDN Git Service

2005-12-18 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Dec 2005 00:56:05 +0000 (00:56 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Dec 2005 00:56:05 +0000 (00:56 +0000)
* include/bits/c++config: Add in revised namespace associations.
_GLIBCXX_BEGIN_NAMESPACE: New macro.
_GLIBCXX_END_NAMESPACE: Same.
_GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
_GLIBCXX_END_NESTED_NAMESPACE: Same.
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
* configure: Regenerated.
* config.h.in: Same.
* config/abi/pre/gnu-versioned-namespace.ver: New.
* config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
debug mode items.
* include/Makefile.am (${host_builddir}/c++config.h): Fill in
values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
* include/Makefile.in: Regnerate.
* src/compatibility.cc: Alias new, nested definitions to exported
symbols from non-nested __gnu_debug.
* src/Makefile.am:  Add in ENABLE_SYMVERS_GNU_NAMESPACE.
* src/Makefile.in: Regenerate.

* docs/html/debug_mode.html: Revise for nested design.
* docs/html/debug.html: Use debug qualifications instead of
__gnu_debug.
* docs/html/configopts.html: Revise documentation for
--enable-symvers.

* include/debug/formatter: Simplify namespace qualifications for
current, nested-only reality. Add top-level namespace alias,
namespace debug, for debug-mode containers.
* include/debug/safe_iterator.h: Same.
* include/debug/set.h: Same.
* include/debug/hash_multimap.h: Same.
* include/debug/hash_set.h: Same.
* include/debug/bitset
* include/debug/safe_sequence.h: Same.
* include/debug/multiset.h: Same.
* include/debug/safe_base.h: Same.
* include/debug/functions.h: Same.
* include/debug/safe_iterator.tcc
* include/debug/hash_multiset.h: Same.
* include/debug/vector
* include/debug/map.h: Same.
* include/debug/deque
* include/debug/hash_map.h: Same.
* include/debug/string
* include/debug/macros.h: Same.
* include/debug/list
* include/debug/debug.h: Same.
* include/debug/multimap.h: Same.
* src/debug.cc: Same.
* testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
* testsuite/23_containers/vector/invalidation/2.cc: Same.
* testsuite/23_containers/vector/invalidation/3.cc: Same.
* testsuite/23_containers/vector/invalidation/4.cc: Same.
* testsuite/23_containers/deque/invalidation/1.cc: Same.
* testsuite/23_containers/deque/invalidation/2.cc: Same.
* testsuite/23_containers/deque/invalidation/3.cc: Same.
* testsuite/23_containers/deque/invalidation/4.cc: Same.
* testsuite/23_containers/multiset/invalidation/1.cc: Same.
* testsuite/23_containers/multiset/invalidation/2.cc: Same.
* testsuite/23_containers/multimap/invalidation/1.cc: Same.
* testsuite/23_containers/multimap/invalidation/2.cc: Same.
* testsuite/23_containers/bitset/invalidation/1.cc: Same.
* testsuite/23_containers/bitset/cons/16020.cc: Same.
* testsuite/23_containers/bitset/operations/13838.cc: Same.
* testsuite/23_containers/list/invalidation/1.cc: Same.
* testsuite/23_containers/list/invalidation/2.cc: Same.
* testsuite/23_containers/list/invalidation/3.cc: Same.
* testsuite/23_containers/list/invalidation/4.cc: Same.
* testsuite/23_containers/set/invalidation/1.cc: Same.
* testsuite/23_containers/set/invalidation/2.cc: Same.
* testsuite/23_containers/map/invalidation/1.cc: Same.
* testsuite/23_containers/map/invalidation/2.cc: Same.
* testsuite/23_containers/map/insert/16813.cc: Same.

* include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
friends.
* include/bits/stl_list.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_algobase.h: Same.
* include/bits/localefwd.h: Same.
* include/bits/valarray_array.tcc: Same.
* include/bits/valarray_after.h: Same.
* include/bits/gslice_array.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/gslice.h: Same.
* include/bits/locale_facets.tcc: Same.
* include/bits/locale_classes.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/locale_facets.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/stl_iterator_base_types.h: Same.
* include/bits/stl_heap.h: Same.
* include/bits/indirect_array.h: Same.
* include/bits/atomicity.h: Same.
* include/bits/stream_iterator.h: Same.
* include/bits/concurrence.h: Same.
* include/bits/basic_string.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_pair.h: Same.
* include/bits/basic_ios.tcc: Same.
* include/bits/stl_raw_storage_iter.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_numeric.h: Same.
* include/bits/ios_base.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/istream.tcc: Same.
* include/bits/postypes.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/mask_array.h: Same.
* include/bits/stl_uninitialized.h: Same.
* include/bits/ostream.tcc: Same.
* include/bits/slice_array.h: Same.
* include/bits/boost_concept_check.h: Same.
* include/bits/sstream.tcc: Same.
* include/bits/stl_iterator_base_funcs.h: Same.
* include/bits/char_traits.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stringfwd.h: Same.
* include/bits/c++config
* include/bits/stl_iterator.h: Same.
* include/bits/valarray_array.h: Same.
* include/bits/stl_tempbuf.h: Same.
* include/bits/vector.tcc: Same.
* include/bits/deque.tcc: Same.
* include/bits/stl_bvector.h: Same.
* include/bits/basic_string.tcc: Same.
* include/bits/list.tcc: Same.
* include/bits/streambuf_iterator.h: Same.
* include/bits/valarray_before.h: Same.
* include/bits/stl_construct.h: Same.
* include/bits/stl_function.h: Same.
* include/bits/cpp_type_traits.h: Same.
* include/bits/streambuf.tcc: Same.
* include/bits/allocator.h: Same.
* include/bits/stl_tree.h: Same.
* include/bits/fstream.tcc: Same.
* include/bits/stl_relops.h: Same.
* include/bits/functexcept.h: Same.
* include/std/std_valarray.h: Same.
* include/std/std_iostream.h: Same.
* include/std/std_streambuf.h: Same.
* include/std/std_bitset.h: Same.
* include/std/std_iosfwd.h: Same.
* include/std/std_iomanip.h: Same.
* include/std/std_fstream.h: Same.
* include/std/std_limits.h: Same.
* include/std/std_stdexcept.h: Same.
* include/std/std_istream.h: Same.
* include/std/std_complex.h: Same.
* include/std/std_memory.h: Same.
* include/std/std_ostream.h: Same.
* include/std/std_sstream.h: Same.
* include/c_std/std_csignal.h: Same.
* include/c_std/std_cstdlib.h: Same.
* include/c_std/std_cstdio.h: Same.
* include/c_std/std_cstdarg.h: Same.
* include/c_std/std_cctype.h: Same.
* include/c_std/std_cmath.h: Same.
* include/c_std/std_ctime.h: Same.
* include/c_std/std_clocale.h: Same.
* include/c_std/std_csetjmp.h: Same.
* include/c_std/std_cwchar.h: Same.
* include/c_std/std_cstring.h: Same.
* include/c_std/std_cstddef.h: Same.
* include/c_std/std_cwctype.h: Same.
* include/backward/iterator.h: Same.
* include/backward/set.h: Same.
* include/backward/hashtable.h: Same.
* include/backward/fstream.h: Same.
* include/backward/tempbuf.h: Same.
* include/backward/istream.h: Same.
* include/backward/bvector.h: Same.
* include/backward/stack.h: Same.
* include/backward/rope.h: Same.
* include/backward/complex.h: Same.
* include/backward/ostream.h: Same.
* include/backward/heap.h: Same.
* include/backward/iostream.h: Same.
* include/backward/function.h: Same.
* include/backward/multimap.h: Same.
* include/backward/pair.h: Same.
* include/backward/stream.h: Same.
* include/backward/iomanip.h: Same.
* include/backward/strstream
* include/backward/slist.h: Same.
* include/backward/tree.h: Same.
* include/backward/vector.h: Same.
* include/backward/deque.h: Same.
* include/backward/multiset.h: Same.
* include/backward/list.h: Same.
* include/backward/map.h: Same.
* include/backward/algobase.h: Same.
* include/backward/hash_map.h: Same.
* include/backward/algo.h: Same.
* include/backward/queue.h: Same.
* include/backward/streambuf.h: Same.
* src/allocator-inst.cc: Same.
* src/complex_io.cc: Same.
* src/localename.cc: Same.
* src/limits.cc: Same.
* src/ios_failure.cc: Same.
* src/locale-misc-inst.cc: Same.
* src/streambuf-inst.cc: Same.
* src/misc-inst.cc: Same.
* src/concept-inst.cc: Same.
* src/ios_locale.cc: Same.
* src/pool_allocator.cc: Same.
* src/fstream-inst.cc: Same.
* src/istream-inst.cc: Same.
* src/string-inst.cc: Same.
* src/locale_init.cc: Same.
* src/ctype.cc: Same.
* src/strstream.cc: Same.
* src/ostream-inst.cc: Same.
* src/functexcept.cc: Same.
* src/streambuf.cc: Same.
* src/sstream-inst.cc: Same.
* src/ios.cc: Same.
* src/valarray-inst.cc: Same.
* src/locale.cc: Same.
* src/tree.cc: Same.
* src/stdexcept.cc: Same.
* src/istream.cc: Same.
* src/compatibility.cc: Same.
* src/locale-inst.cc: Same.
* src/globals_io.cc: Same.
* src/list.cc: Same.
* src/ios_init.cc: Same.
* src/locale_facets.cc: Same.
* src/codecvt.cc: Same.

* include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
* include/tr1/boost_shared_ptr.h: Same.
* include/tr1/tuple
* include/tr1/hashtable
* include/tr1/type_traits_fwd.h: Same.
* include/tr1/unordered_set
* include/tr1/functional
* include/tr1/ref_fwd.h: Same.
* include/tr1/utility
* include/tr1/type_traits
* include/tr1/array

* include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
* include/ext/typelist.h: Same.
* include/ext/hash_map: Same.
* include/ext/rc_string_base.h: Same.
* include/ext/pool_allocator.h: Same.
* include/ext/iterator: Same.
* include/ext/rb_tree: Same.
* include/ext/numeric: Same.
* include/ext/vstring.tcc: Same.
* include/ext/sso_string_base.h: Same.
* include/ext/stdio_filebuf.h: Same.
* include/ext/algorithm: Same.
* include/ext/codecvt_specializations.h: Same.
* include/ext/new_allocator.h: Same.
* include/ext/array_allocator.h: Same.
* include/ext/vstring_util.h: Same.
* include/ext/vstring_fwd.h: Same.
* include/ext/mt_allocator.h: Same.
* include/ext/debug_allocator.h: Same.
* include/ext/slist: Same.
* include/ext/stdio_sync_filebuf.h: Same.
* include/ext/hash_fun.h: Same.
* include/ext/malloc_allocator.h: Same.
* include/ext/functional: Same.
* include/ext/bitmap_allocator.h: Same.
* include/ext/pod_char_traits.h: Same.
* include/ext/vstring.h: Same.
* include/ext/ropeimpl.h: Same.
* include/ext/hash_set: Same.
* include/ext/memory: Same.
* include/ext/rope: Same.
* include/bits/boost_concept_check.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/char_traits.h: Same.
* include/bits/cpp_type_traits.h: Same.
* include/bits/concurrence.h: Same.
* include/bits/atomicity.h: Same.
* config/locale/gnu/numeric_members.cc: Same.
* config/locale/gnu/collate_members.cc: Same.
* config/locale/gnu/ctype_members.cc: Same.
* config/locale/gnu/c_locale.cc: Same.
* config/locale/gnu/codecvt_members.cc: Same.
* config/locale/gnu/messages_members.cc: Same.
* config/locale/gnu/c_locale.h: Same.
* config/locale/gnu/monetary_members.cc: Same.
* config/locale/gnu/time_members.cc: Same.
* config/locale/ieee_1003.1-2001/c_locale.h: Same.
* config/locale/generic/numeric_members.cc: Same.
* config/locale/generic/collate_members.cc: Same.
* config/locale/generic/ctype_members.cc: Same.
* config/locale/generic/c_locale.cc: Same.
* config/locale/generic/codecvt_members.cc: Same.
* config/locale/generic/messages_members.cc: Same.
* config/locale/generic/c_locale.h: Same.
* config/locale/generic/monetary_members.cc: Same.
* config/locale/generic/time_members.cc: Same.
* config/os/aix/atomicity.h: Same.
* config/os/irix/atomicity.h: Same.
* config/cpu/powerpc/atomicity.h: Same.
* config/cpu/cris/atomicity.h: Same.
* config/cpu/ia64/atomicity.h: Same.
* config/cpu/alpha/atomicity.h: Same.
* config/cpu/m68k/atomicity.h: Same.
* config/cpu/hppa/atomicity.h: Same.
* config/cpu/mips/atomicity.h: Same.
* config/cpu/sparc/atomicity.h: Same.
* config/cpu/i386/atomicity.h: Same.
* config/cpu/i486/atomicity.h: Same.
* config/cpu/sh/atomicity.h: Same.
* config/cpu/generic/atomicity.h: Same.
* config/cpu/s390/atomicity.h: Same.
* config/io/c_io_stdio.h: Same.
* config/io/basic_file_stdio.cc: Same.
* config/io/basic_file_stdio.h: Same.
* src/misc-inst.cc: Same.
* src/concept-inst.cc: Same.
* src/ext-inst.cc: Same.
* src/string-inst.cc: Same.
* src/pool_allocator.cc: Same.
* src/bitmap_allocator.cc: Same.
* src/mt_allocator.cc: Same.
* libsupc++/exception: Same.
* libsupc++/vterminate.cc: Same.
* testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
* testsuite/ext/hash_map/14648.cc: Same.

* libsupc++/eh_alloc.cc: Correct comment line spacing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108775 138bc75d-0d04-0410-961f-82ee72b054a4

312 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/Makefile.in
libstdc++-v3/acinclude.m4
libstdc++-v3/config.h.in
libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver [new file with mode: 0644]
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/config/abi/pre/none.ver
libstdc++-v3/config/cpu/alpha/atomicity.h
libstdc++-v3/config/cpu/cris/atomicity.h
libstdc++-v3/config/cpu/generic/atomicity.h
libstdc++-v3/config/cpu/hppa/atomicity.h
libstdc++-v3/config/cpu/i386/atomicity.h
libstdc++-v3/config/cpu/i486/atomicity.h
libstdc++-v3/config/cpu/ia64/atomicity.h
libstdc++-v3/config/cpu/m68k/atomicity.h
libstdc++-v3/config/cpu/mips/atomicity.h
libstdc++-v3/config/cpu/powerpc/atomicity.h
libstdc++-v3/config/cpu/s390/atomicity.h
libstdc++-v3/config/cpu/sh/atomicity.h
libstdc++-v3/config/cpu/sparc/atomicity.h
libstdc++-v3/config/io/basic_file_stdio.cc
libstdc++-v3/config/io/basic_file_stdio.h
libstdc++-v3/config/io/c_io_stdio.h
libstdc++-v3/config/locale/generic/c_locale.cc
libstdc++-v3/config/locale/generic/c_locale.h
libstdc++-v3/config/locale/generic/codecvt_members.cc
libstdc++-v3/config/locale/generic/collate_members.cc
libstdc++-v3/config/locale/generic/ctype_members.cc
libstdc++-v3/config/locale/generic/messages_members.cc
libstdc++-v3/config/locale/generic/monetary_members.cc
libstdc++-v3/config/locale/generic/numeric_members.cc
libstdc++-v3/config/locale/generic/time_members.cc
libstdc++-v3/config/locale/gnu/c_locale.cc
libstdc++-v3/config/locale/gnu/c_locale.h
libstdc++-v3/config/locale/gnu/codecvt_members.cc
libstdc++-v3/config/locale/gnu/collate_members.cc
libstdc++-v3/config/locale/gnu/ctype_members.cc
libstdc++-v3/config/locale/gnu/messages_members.cc
libstdc++-v3/config/locale/gnu/monetary_members.cc
libstdc++-v3/config/locale/gnu/numeric_members.cc
libstdc++-v3/config/locale/gnu/time_members.cc
libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
libstdc++-v3/config/os/aix/atomicity.h
libstdc++-v3/config/os/irix/atomicity.h
libstdc++-v3/configure
libstdc++-v3/docs/html/configopts.html
libstdc++-v3/docs/html/debug.html
libstdc++-v3/docs/html/debug_mode.html
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/backward/algo.h
libstdc++-v3/include/backward/algobase.h
libstdc++-v3/include/backward/bvector.h
libstdc++-v3/include/backward/complex.h
libstdc++-v3/include/backward/deque.h
libstdc++-v3/include/backward/fstream.h
libstdc++-v3/include/backward/function.h
libstdc++-v3/include/backward/hash_map.h
libstdc++-v3/include/backward/hashtable.h
libstdc++-v3/include/backward/heap.h
libstdc++-v3/include/backward/iomanip.h
libstdc++-v3/include/backward/iostream.h
libstdc++-v3/include/backward/istream.h
libstdc++-v3/include/backward/iterator.h
libstdc++-v3/include/backward/list.h
libstdc++-v3/include/backward/map.h
libstdc++-v3/include/backward/multimap.h
libstdc++-v3/include/backward/multiset.h
libstdc++-v3/include/backward/ostream.h
libstdc++-v3/include/backward/pair.h
libstdc++-v3/include/backward/queue.h
libstdc++-v3/include/backward/rope.h
libstdc++-v3/include/backward/set.h
libstdc++-v3/include/backward/slist.h
libstdc++-v3/include/backward/stack.h
libstdc++-v3/include/backward/stream.h
libstdc++-v3/include/backward/streambuf.h
libstdc++-v3/include/backward/strstream
libstdc++-v3/include/backward/tempbuf.h
libstdc++-v3/include/backward/tree.h
libstdc++-v3/include/backward/vector.h
libstdc++-v3/include/bits/allocator.h
libstdc++-v3/include/bits/atomicity.h
libstdc++-v3/include/bits/basic_ios.h
libstdc++-v3/include/bits/basic_ios.tcc
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/basic_string.tcc
libstdc++-v3/include/bits/boost_concept_check.h
libstdc++-v3/include/bits/c++config
libstdc++-v3/include/bits/char_traits.h
libstdc++-v3/include/bits/concurrence.h
libstdc++-v3/include/bits/cpp_type_traits.h
libstdc++-v3/include/bits/deque.tcc
libstdc++-v3/include/bits/fstream.tcc
libstdc++-v3/include/bits/functexcept.h
libstdc++-v3/include/bits/gslice.h
libstdc++-v3/include/bits/gslice_array.h
libstdc++-v3/include/bits/indirect_array.h
libstdc++-v3/include/bits/ios_base.h
libstdc++-v3/include/bits/istream.tcc
libstdc++-v3/include/bits/list.tcc
libstdc++-v3/include/bits/locale_classes.h
libstdc++-v3/include/bits/locale_facets.h
libstdc++-v3/include/bits/locale_facets.tcc
libstdc++-v3/include/bits/localefwd.h
libstdc++-v3/include/bits/mask_array.h
libstdc++-v3/include/bits/ostream.tcc
libstdc++-v3/include/bits/postypes.h
libstdc++-v3/include/bits/slice_array.h
libstdc++-v3/include/bits/sstream.tcc
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_algobase.h
libstdc++-v3/include/bits/stl_bvector.h
libstdc++-v3/include/bits/stl_construct.h
libstdc++-v3/include/bits/stl_deque.h
libstdc++-v3/include/bits/stl_function.h
libstdc++-v3/include/bits/stl_heap.h
libstdc++-v3/include/bits/stl_iterator.h
libstdc++-v3/include/bits/stl_iterator_base_funcs.h
libstdc++-v3/include/bits/stl_iterator_base_types.h
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_map.h
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_numeric.h
libstdc++-v3/include/bits/stl_pair.h
libstdc++-v3/include/bits/stl_queue.h
libstdc++-v3/include/bits/stl_raw_storage_iter.h
libstdc++-v3/include/bits/stl_relops.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_stack.h
libstdc++-v3/include/bits/stl_tempbuf.h
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/include/bits/stl_uninitialized.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/include/bits/stream_iterator.h
libstdc++-v3/include/bits/streambuf.tcc
libstdc++-v3/include/bits/streambuf_iterator.h
libstdc++-v3/include/bits/stringfwd.h
libstdc++-v3/include/bits/valarray_after.h
libstdc++-v3/include/bits/valarray_array.h
libstdc++-v3/include/bits/valarray_array.tcc
libstdc++-v3/include/bits/valarray_before.h
libstdc++-v3/include/bits/vector.tcc
libstdc++-v3/include/c_std/std_cctype.h
libstdc++-v3/include/c_std/std_clocale.h
libstdc++-v3/include/c_std/std_cmath.h
libstdc++-v3/include/c_std/std_csetjmp.h
libstdc++-v3/include/c_std/std_csignal.h
libstdc++-v3/include/c_std/std_cstdarg.h
libstdc++-v3/include/c_std/std_cstddef.h
libstdc++-v3/include/c_std/std_cstdio.h
libstdc++-v3/include/c_std/std_cstdlib.h
libstdc++-v3/include/c_std/std_cstring.h
libstdc++-v3/include/c_std/std_ctime.h
libstdc++-v3/include/c_std/std_cwchar.h
libstdc++-v3/include/c_std/std_cwctype.h
libstdc++-v3/include/debug/bitset
libstdc++-v3/include/debug/debug.h
libstdc++-v3/include/debug/deque
libstdc++-v3/include/debug/formatter.h
libstdc++-v3/include/debug/functions.h
libstdc++-v3/include/debug/hash_map.h
libstdc++-v3/include/debug/hash_multimap.h
libstdc++-v3/include/debug/hash_multiset.h
libstdc++-v3/include/debug/hash_set.h
libstdc++-v3/include/debug/list
libstdc++-v3/include/debug/macros.h
libstdc++-v3/include/debug/map.h
libstdc++-v3/include/debug/multimap.h
libstdc++-v3/include/debug/multiset.h
libstdc++-v3/include/debug/safe_base.h
libstdc++-v3/include/debug/safe_iterator.h
libstdc++-v3/include/debug/safe_iterator.tcc
libstdc++-v3/include/debug/safe_sequence.h
libstdc++-v3/include/debug/set.h
libstdc++-v3/include/debug/string
libstdc++-v3/include/debug/vector
libstdc++-v3/include/ext/algorithm
libstdc++-v3/include/ext/array_allocator.h
libstdc++-v3/include/ext/bitmap_allocator.h
libstdc++-v3/include/ext/codecvt_specializations.h
libstdc++-v3/include/ext/debug_allocator.h
libstdc++-v3/include/ext/functional
libstdc++-v3/include/ext/hash_fun.h
libstdc++-v3/include/ext/hash_map
libstdc++-v3/include/ext/hash_set
libstdc++-v3/include/ext/hashtable.h
libstdc++-v3/include/ext/iterator
libstdc++-v3/include/ext/malloc_allocator.h
libstdc++-v3/include/ext/memory
libstdc++-v3/include/ext/mt_allocator.h
libstdc++-v3/include/ext/new_allocator.h
libstdc++-v3/include/ext/numeric
libstdc++-v3/include/ext/pod_char_traits.h
libstdc++-v3/include/ext/pool_allocator.h
libstdc++-v3/include/ext/rb_tree
libstdc++-v3/include/ext/rc_string_base.h
libstdc++-v3/include/ext/rope
libstdc++-v3/include/ext/ropeimpl.h
libstdc++-v3/include/ext/slist
libstdc++-v3/include/ext/sso_string_base.h
libstdc++-v3/include/ext/stdio_filebuf.h
libstdc++-v3/include/ext/stdio_sync_filebuf.h
libstdc++-v3/include/ext/typelist.h
libstdc++-v3/include/ext/vstring.h
libstdc++-v3/include/ext/vstring.tcc
libstdc++-v3/include/ext/vstring_fwd.h
libstdc++-v3/include/ext/vstring_util.h
libstdc++-v3/include/std/std_bitset.h
libstdc++-v3/include/std/std_complex.h
libstdc++-v3/include/std/std_fstream.h
libstdc++-v3/include/std/std_iomanip.h
libstdc++-v3/include/std/std_iosfwd.h
libstdc++-v3/include/std/std_iostream.h
libstdc++-v3/include/std/std_istream.h
libstdc++-v3/include/std/std_limits.h
libstdc++-v3/include/std/std_memory.h
libstdc++-v3/include/std/std_ostream.h
libstdc++-v3/include/std/std_sstream.h
libstdc++-v3/include/std/std_stdexcept.h
libstdc++-v3/include/std/std_streambuf.h
libstdc++-v3/include/std/std_valarray.h
libstdc++-v3/include/tr1/array
libstdc++-v3/include/tr1/boost_shared_ptr.h
libstdc++-v3/include/tr1/functional
libstdc++-v3/include/tr1/hashtable
libstdc++-v3/include/tr1/ref_fwd.h
libstdc++-v3/include/tr1/tuple
libstdc++-v3/include/tr1/type_traits
libstdc++-v3/include/tr1/type_traits_fwd.h
libstdc++-v3/include/tr1/unordered_map
libstdc++-v3/include/tr1/unordered_set
libstdc++-v3/include/tr1/utility
libstdc++-v3/libmath/Makefile.in
libstdc++-v3/libsupc++/Makefile.in
libstdc++-v3/libsupc++/eh_alloc.cc
libstdc++-v3/libsupc++/exception
libstdc++-v3/libsupc++/vterminate.cc
libstdc++-v3/po/Makefile.in
libstdc++-v3/src/Makefile.am
libstdc++-v3/src/Makefile.in
libstdc++-v3/src/allocator-inst.cc
libstdc++-v3/src/bitmap_allocator.cc
libstdc++-v3/src/codecvt.cc
libstdc++-v3/src/compatibility.cc
libstdc++-v3/src/complex_io.cc
libstdc++-v3/src/concept-inst.cc
libstdc++-v3/src/ctype.cc
libstdc++-v3/src/debug.cc
libstdc++-v3/src/ext-inst.cc
libstdc++-v3/src/fstream-inst.cc
libstdc++-v3/src/functexcept.cc
libstdc++-v3/src/globals_io.cc
libstdc++-v3/src/ios-inst.cc
libstdc++-v3/src/ios.cc
libstdc++-v3/src/ios_failure.cc
libstdc++-v3/src/ios_init.cc
libstdc++-v3/src/ios_locale.cc
libstdc++-v3/src/iostream-inst.cc
libstdc++-v3/src/istream-inst.cc
libstdc++-v3/src/istream.cc
libstdc++-v3/src/limits.cc
libstdc++-v3/src/list.cc
libstdc++-v3/src/locale-inst.cc
libstdc++-v3/src/locale-misc-inst.cc
libstdc++-v3/src/locale.cc
libstdc++-v3/src/locale_facets.cc
libstdc++-v3/src/locale_init.cc
libstdc++-v3/src/localename.cc
libstdc++-v3/src/misc-inst.cc
libstdc++-v3/src/mt_allocator.cc
libstdc++-v3/src/ostream-inst.cc
libstdc++-v3/src/pool_allocator.cc
libstdc++-v3/src/sstream-inst.cc
libstdc++-v3/src/stdexcept.cc
libstdc++-v3/src/streambuf-inst.cc
libstdc++-v3/src/streambuf.cc
libstdc++-v3/src/string-inst.cc
libstdc++-v3/src/strstream.cc
libstdc++-v3/src/tree.cc
libstdc++-v3/src/valarray-inst.cc
libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc
libstdc++-v3/testsuite/21_strings/basic_string/2.cc
libstdc++-v3/testsuite/23_containers/bitset/cons/16020.cc
libstdc++-v3/testsuite/23_containers/bitset/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/bitset/operations/13838.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/4.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/4.cc
libstdc++-v3/testsuite/23_containers/map/insert/16813.cc
libstdc++-v3/testsuite/23_containers/map/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/map/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/multimap/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/multimap/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/multiset/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/multiset/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/set/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/set/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/4.cc
libstdc++-v3/testsuite/Makefile.in
libstdc++-v3/testsuite/ext/hash_map/1.cc
libstdc++-v3/testsuite/ext/hash_map/14648.cc
libstdc++-v3/testsuite/testsuite_character.h

index 0f9c90f..90bfc9f 100644 (file)
@@ -1,3 +1,336 @@
+2005-12-18  Benjamin Kosnik  <bkoz@redhat.com>
+       
+       * include/bits/c++config: Add in revised namespace associations.
+       _GLIBCXX_BEGIN_NAMESPACE: New macro.
+       _GLIBCXX_END_NAMESPACE: Same.
+       _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
+       _GLIBCXX_END_NESTED_NAMESPACE: Same.
+       * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
+       * configure: Regenerated.
+       * config.h.in: Same.
+       * config/abi/pre/gnu-versioned-namespace.ver: New.
+       * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
+       debug mode items. 
+       * include/Makefile.am (${host_builddir}/c++config.h): Fill in
+       values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
+       * include/Makefile.in: Regnerate.
+       * src/compatibility.cc: Alias new, nested definitions to exported
+       symbols from non-nested __gnu_debug.
+       * src/Makefile.am:  Add in ENABLE_SYMVERS_GNU_NAMESPACE.
+       * src/Makefile.in: Regenerate.
+       
+       * docs/html/debug_mode.html: Revise for nested design.
+       * docs/html/debug.html: Use debug qualifications instead of
+       __gnu_debug.
+       * docs/html/configopts.html: Revise documentation for
+       --enable-symvers.
+       
+       * include/debug/formatter: Simplify namespace qualifications for
+       current, nested-only reality. Add top-level namespace alias,
+       namespace debug, for debug-mode containers.
+       * include/debug/safe_iterator.h: Same.  
+       * include/debug/set.h: Same.
+       * include/debug/hash_multimap.h: Same.
+       * include/debug/hash_set.h: Same.
+       * include/debug/bitset
+       * include/debug/safe_sequence.h: Same.
+       * include/debug/multiset.h: Same.
+       * include/debug/safe_base.h: Same.
+       * include/debug/functions.h: Same.
+       * include/debug/safe_iterator.tcc
+       * include/debug/hash_multiset.h: Same.
+       * include/debug/vector
+       * include/debug/map.h: Same.
+       * include/debug/deque
+       * include/debug/hash_map.h: Same.
+       * include/debug/string
+       * include/debug/macros.h: Same.
+       * include/debug/list
+       * include/debug/debug.h: Same.
+       * include/debug/multimap.h: Same.       
+       * src/debug.cc: Same.
+       * testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
+       * testsuite/23_containers/vector/invalidation/2.cc: Same.
+       * testsuite/23_containers/vector/invalidation/3.cc: Same.
+       * testsuite/23_containers/vector/invalidation/4.cc: Same.
+       * testsuite/23_containers/deque/invalidation/1.cc: Same.
+       * testsuite/23_containers/deque/invalidation/2.cc: Same.
+       * testsuite/23_containers/deque/invalidation/3.cc: Same.
+       * testsuite/23_containers/deque/invalidation/4.cc: Same.
+       * testsuite/23_containers/multiset/invalidation/1.cc: Same.
+       * testsuite/23_containers/multiset/invalidation/2.cc: Same.
+       * testsuite/23_containers/multimap/invalidation/1.cc: Same.
+       * testsuite/23_containers/multimap/invalidation/2.cc: Same.
+       * testsuite/23_containers/bitset/invalidation/1.cc: Same.
+       * testsuite/23_containers/bitset/cons/16020.cc: Same.
+       * testsuite/23_containers/bitset/operations/13838.cc: Same.
+       * testsuite/23_containers/list/invalidation/1.cc: Same.
+       * testsuite/23_containers/list/invalidation/2.cc: Same.
+       * testsuite/23_containers/list/invalidation/3.cc: Same.
+       * testsuite/23_containers/list/invalidation/4.cc: Same.
+       * testsuite/23_containers/set/invalidation/1.cc: Same.
+       * testsuite/23_containers/set/invalidation/2.cc: Same.
+       * testsuite/23_containers/map/invalidation/1.cc: Same.
+       * testsuite/23_containers/map/invalidation/2.cc: Same.
+       * testsuite/23_containers/map/insert/16813.cc: Same.
+       
+       * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
+       friends.        
+       * include/bits/stl_list.h: Same.
+       * include/bits/stl_map.h: Same.
+       * include/bits/stl_algobase.h: Same.
+       * include/bits/localefwd.h: Same.
+       * include/bits/valarray_array.tcc: Same.
+       * include/bits/valarray_after.h: Same.
+       * include/bits/gslice_array.h: Same.
+       * include/bits/stl_queue.h: Same.
+       * include/bits/gslice.h: Same.
+       * include/bits/locale_facets.tcc: Same.
+       * include/bits/locale_classes.h: Same.
+       * include/bits/stl_set.h: Same.
+       * include/bits/locale_facets.h: Same.
+       * include/bits/stl_stack.h: Same.
+       * include/bits/stl_iterator_base_types.h: Same.
+       * include/bits/stl_heap.h: Same.
+       * include/bits/indirect_array.h: Same.
+       * include/bits/atomicity.h: Same.
+       * include/bits/stream_iterator.h: Same.
+       * include/bits/concurrence.h: Same.
+       * include/bits/basic_string.h: Same.
+       * include/bits/stl_multimap.h: Same.
+       * include/bits/stl_pair.h: Same.
+       * include/bits/basic_ios.tcc: Same.
+       * include/bits/stl_raw_storage_iter.h: Same.
+       * include/bits/stl_vector.h: Same.
+       * include/bits/stl_numeric.h: Same.
+       * include/bits/ios_base.h: Same.
+       * include/bits/stl_deque.h: Same.
+       * include/bits/istream.tcc: Same.
+       * include/bits/postypes.h: Same.
+       * include/bits/stl_multiset.h: Same.
+       * include/bits/mask_array.h: Same.
+       * include/bits/stl_uninitialized.h: Same.
+       * include/bits/ostream.tcc: Same.
+       * include/bits/slice_array.h: Same.
+       * include/bits/boost_concept_check.h: Same.
+       * include/bits/sstream.tcc: Same.
+       * include/bits/stl_iterator_base_funcs.h: Same.
+       * include/bits/char_traits.h: Same.
+       * include/bits/stl_algo.h: Same.
+       * include/bits/stringfwd.h: Same.
+       * include/bits/c++config
+       * include/bits/stl_iterator.h: Same.
+       * include/bits/valarray_array.h: Same.
+       * include/bits/stl_tempbuf.h: Same.
+       * include/bits/vector.tcc: Same.
+       * include/bits/deque.tcc: Same.
+       * include/bits/stl_bvector.h: Same.
+       * include/bits/basic_string.tcc: Same.
+       * include/bits/list.tcc: Same.
+       * include/bits/streambuf_iterator.h: Same.
+       * include/bits/valarray_before.h: Same.
+       * include/bits/stl_construct.h: Same.
+       * include/bits/stl_function.h: Same.
+       * include/bits/cpp_type_traits.h: Same.
+       * include/bits/streambuf.tcc: Same.
+       * include/bits/allocator.h: Same.
+       * include/bits/stl_tree.h: Same.
+       * include/bits/fstream.tcc: Same.
+       * include/bits/stl_relops.h: Same.
+       * include/bits/functexcept.h: Same.
+       * include/std/std_valarray.h: Same.
+       * include/std/std_iostream.h: Same.
+       * include/std/std_streambuf.h: Same.
+       * include/std/std_bitset.h: Same.
+       * include/std/std_iosfwd.h: Same.
+       * include/std/std_iomanip.h: Same.
+       * include/std/std_fstream.h: Same.
+       * include/std/std_limits.h: Same.
+       * include/std/std_stdexcept.h: Same.
+       * include/std/std_istream.h: Same.
+       * include/std/std_complex.h: Same.
+       * include/std/std_memory.h: Same.
+       * include/std/std_ostream.h: Same.
+       * include/std/std_sstream.h: Same.
+       * include/c_std/std_csignal.h: Same.
+       * include/c_std/std_cstdlib.h: Same.
+       * include/c_std/std_cstdio.h: Same.
+       * include/c_std/std_cstdarg.h: Same.
+       * include/c_std/std_cctype.h: Same.
+       * include/c_std/std_cmath.h: Same.
+       * include/c_std/std_ctime.h: Same.
+       * include/c_std/std_clocale.h: Same.
+       * include/c_std/std_csetjmp.h: Same.
+       * include/c_std/std_cwchar.h: Same.
+       * include/c_std/std_cstring.h: Same.
+       * include/c_std/std_cstddef.h: Same.
+       * include/c_std/std_cwctype.h: Same.
+       * include/backward/iterator.h: Same.
+       * include/backward/set.h: Same.
+       * include/backward/hashtable.h: Same.
+       * include/backward/fstream.h: Same.
+       * include/backward/tempbuf.h: Same.
+       * include/backward/istream.h: Same.
+       * include/backward/bvector.h: Same.
+       * include/backward/stack.h: Same.
+       * include/backward/rope.h: Same.
+       * include/backward/complex.h: Same.
+       * include/backward/ostream.h: Same.
+       * include/backward/heap.h: Same.
+       * include/backward/iostream.h: Same.
+       * include/backward/function.h: Same.
+       * include/backward/multimap.h: Same.
+       * include/backward/pair.h: Same.
+       * include/backward/stream.h: Same.
+       * include/backward/iomanip.h: Same.
+       * include/backward/strstream
+       * include/backward/slist.h: Same.
+       * include/backward/tree.h: Same.
+       * include/backward/vector.h: Same.
+       * include/backward/deque.h: Same.
+       * include/backward/multiset.h: Same.
+       * include/backward/list.h: Same.
+       * include/backward/map.h: Same.
+       * include/backward/algobase.h: Same.
+       * include/backward/hash_map.h: Same.
+       * include/backward/algo.h: Same.
+       * include/backward/queue.h: Same.
+       * include/backward/streambuf.h: Same.
+       * src/allocator-inst.cc: Same.
+       * src/complex_io.cc: Same.
+       * src/localename.cc: Same.
+       * src/limits.cc: Same.
+       * src/ios_failure.cc: Same.
+       * src/locale-misc-inst.cc: Same.
+       * src/streambuf-inst.cc: Same.
+       * src/misc-inst.cc: Same.
+       * src/concept-inst.cc: Same.
+       * src/ios_locale.cc: Same.
+       * src/pool_allocator.cc: Same.
+       * src/fstream-inst.cc: Same.
+       * src/istream-inst.cc: Same.
+       * src/string-inst.cc: Same.
+       * src/locale_init.cc: Same.
+       * src/ctype.cc: Same.
+       * src/strstream.cc: Same.
+       * src/ostream-inst.cc: Same.
+       * src/functexcept.cc: Same.
+       * src/streambuf.cc: Same.
+       * src/sstream-inst.cc: Same.
+       * src/ios.cc: Same.
+       * src/valarray-inst.cc: Same.
+       * src/locale.cc: Same.
+       * src/tree.cc: Same.
+       * src/stdexcept.cc: Same.
+       * src/istream.cc: Same.
+       * src/compatibility.cc: Same.
+       * src/locale-inst.cc: Same.
+       * src/globals_io.cc: Same.
+       * src/list.cc: Same.
+       * src/ios_init.cc: Same.
+       * src/locale_facets.cc: Same.
+       * src/codecvt.cc: Same.
+
+       * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
+       * include/tr1/boost_shared_ptr.h: Same.
+       * include/tr1/tuple
+       * include/tr1/hashtable
+       * include/tr1/type_traits_fwd.h: Same.
+       * include/tr1/unordered_set
+       * include/tr1/functional
+       * include/tr1/ref_fwd.h: Same.
+       * include/tr1/utility
+       * include/tr1/type_traits
+       * include/tr1/array
+
+       * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
+       * include/ext/typelist.h: Same.
+       * include/ext/hash_map: Same.
+       * include/ext/rc_string_base.h: Same.
+       * include/ext/pool_allocator.h: Same.
+       * include/ext/iterator: Same.
+       * include/ext/rb_tree: Same.
+       * include/ext/numeric: Same.
+       * include/ext/vstring.tcc: Same.
+       * include/ext/sso_string_base.h: Same.
+       * include/ext/stdio_filebuf.h: Same.
+       * include/ext/algorithm: Same.
+       * include/ext/codecvt_specializations.h: Same.
+       * include/ext/new_allocator.h: Same.
+       * include/ext/array_allocator.h: Same.
+       * include/ext/vstring_util.h: Same.
+       * include/ext/vstring_fwd.h: Same.
+       * include/ext/mt_allocator.h: Same.
+       * include/ext/debug_allocator.h: Same.
+       * include/ext/slist: Same.
+       * include/ext/stdio_sync_filebuf.h: Same.
+       * include/ext/hash_fun.h: Same.
+       * include/ext/malloc_allocator.h: Same.
+       * include/ext/functional: Same.
+       * include/ext/bitmap_allocator.h: Same.
+       * include/ext/pod_char_traits.h: Same.
+       * include/ext/vstring.h: Same.
+       * include/ext/ropeimpl.h: Same.
+       * include/ext/hash_set: Same.
+       * include/ext/memory: Same.
+       * include/ext/rope: Same.
+       * include/bits/boost_concept_check.h: Same.
+       * include/bits/stl_iterator.h: Same.
+       * include/bits/char_traits.h: Same.
+       * include/bits/cpp_type_traits.h: Same.
+       * include/bits/concurrence.h: Same.
+       * include/bits/atomicity.h: Same.
+       * config/locale/gnu/numeric_members.cc: Same.
+       * config/locale/gnu/collate_members.cc: Same.
+       * config/locale/gnu/ctype_members.cc: Same.
+       * config/locale/gnu/c_locale.cc: Same.
+       * config/locale/gnu/codecvt_members.cc: Same.
+       * config/locale/gnu/messages_members.cc: Same.
+       * config/locale/gnu/c_locale.h: Same.
+       * config/locale/gnu/monetary_members.cc: Same.
+       * config/locale/gnu/time_members.cc: Same.
+       * config/locale/ieee_1003.1-2001/c_locale.h: Same.
+       * config/locale/generic/numeric_members.cc: Same.
+       * config/locale/generic/collate_members.cc: Same.
+       * config/locale/generic/ctype_members.cc: Same.
+       * config/locale/generic/c_locale.cc: Same.
+       * config/locale/generic/codecvt_members.cc: Same.
+       * config/locale/generic/messages_members.cc: Same.
+       * config/locale/generic/c_locale.h: Same.
+       * config/locale/generic/monetary_members.cc: Same.
+       * config/locale/generic/time_members.cc: Same.
+       * config/os/aix/atomicity.h: Same.
+       * config/os/irix/atomicity.h: Same.
+       * config/cpu/powerpc/atomicity.h: Same.
+       * config/cpu/cris/atomicity.h: Same.
+       * config/cpu/ia64/atomicity.h: Same.
+       * config/cpu/alpha/atomicity.h: Same.
+       * config/cpu/m68k/atomicity.h: Same.
+       * config/cpu/hppa/atomicity.h: Same.
+       * config/cpu/mips/atomicity.h: Same.
+       * config/cpu/sparc/atomicity.h: Same.
+       * config/cpu/i386/atomicity.h: Same.
+       * config/cpu/i486/atomicity.h: Same.
+       * config/cpu/sh/atomicity.h: Same.
+       * config/cpu/generic/atomicity.h: Same.
+       * config/cpu/s390/atomicity.h: Same.
+       * config/io/c_io_stdio.h: Same.
+       * config/io/basic_file_stdio.cc: Same.
+       * config/io/basic_file_stdio.h: Same.   
+       * src/misc-inst.cc: Same.
+       * src/concept-inst.cc: Same.
+       * src/ext-inst.cc: Same.
+       * src/string-inst.cc: Same.
+       * src/pool_allocator.cc: Same.
+       * src/bitmap_allocator.cc: Same.
+       * src/mt_allocator.cc: Same.
+       * libsupc++/exception: Same.
+       * libsupc++/vterminate.cc: Same.
+       * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
+       * testsuite/ext/hash_map/14648.cc: Same.        
+
+       * libsupc++/eh_alloc.cc: Correct comment line spacing.
+               
 2005-12-18  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
index f7d0f70..44686de 100644 (file)
@@ -135,6 +135,8 @@ 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@
 EXEEXT = @EXEEXT@
index d32c799..716dab5 100644 (file)
@@ -1685,7 +1685,7 @@ AC_DEFUN([GLIBCXX_ENABLE_SYMVERS], [
 
 GLIBCXX_ENABLE(symvers,$1,[=STYLE],
   [enables symbol versioning of the shared library],
-  [permit yes|no|gnu|darwin|darwin-export])
+  [permit yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export])
 
 # If we never went through the GLIBCXX_CHECK_LINKER_FEATURES macro, then we
 # don't know enough about $LD to do tricks...
@@ -1715,7 +1715,7 @@ if test x$enable_symvers = xdarwin-export ; then
 fi
 
 # Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
   # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
   AC_MSG_CHECKING([for shared libgcc])
   ac_save_CFLAGS="$CFLAGS"
@@ -1778,6 +1778,11 @@ case $enable_symvers in
     AC_DEFINE(_GLIBCXX_SYMVER_GNU, 1, 
               [Define to use GNU versioning in the shared library.])
     ;;
+  gnu-versioned-namespace)
+    SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+    AC_DEFINE(_GLIBCXX_SYMVER_GNU_NAMESPACE, 1, 
+              [Define to use GNU namespace versioning in the shared library.])
+    ;;
   darwin)
     SYMVER_FILE=config/abi/pre/gnu.ver
     AC_DEFINE(_GLIBCXX_SYMVER_DARWIN, 1, 
@@ -1794,6 +1799,7 @@ AC_SUBST(SYMVER_FILE)
 AC_SUBST(port_specific_symbol_files)
 GLIBCXX_CONDITIONAL(ENABLE_SYMVERS, test $enable_symvers != no)
 GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU, test $enable_symvers = gnu)
+GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU_NAMESPACE, test $enable_symvers = gnu-versioned-namespace)
 GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_DARWIN, test $enable_symvers = darwin)
 AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers)
 
index 124ce6e..0077a59 100644 (file)
 /* Define to use GNU versioning in the shared library. */
 #undef _GLIBCXX_SYMVER_GNU
 
+/* Define to use GNU namespace versioning in the shared library. */
+#undef _GLIBCXX_SYMVER_GNU_NAMESPACE
+
 /* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
    <stdio.h>, and <stdlib.h> can be used or exposed. */
 #undef _GLIBCXX_USE_C99
diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
new file mode 100644 (file)
index 0000000..3b9b475
--- /dev/null
@@ -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:
+    *;
+};
index fa13a61..c76bdf9 100644 (file)
@@ -1,9 +1,7 @@
-## Linker script for GNU ld 2.13.91+ only.
+## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
 ##
 ## 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
@@ -110,15 +108,7 @@ GLIBCXX_3.4 {
       std::__num_base::_S_atoms_out;
       std::__moneypunct_cache*;
       std::__numpunct_cache*;
-      std::__timepunct_cache*;
-      __gnu_debug::_Safe_iterator_base*;
-      __gnu_debug::_Safe_sequence_base*;
-      __gnu_debug::_Error_formatter*;
-      __gnu_norm::_List_node_base::hook*;
-      __gnu_norm::_List_node_base::swap*;
-      __gnu_norm::_List_node_base::unhook*;
-      __gnu_norm::_List_node_base::reverse*;
-      __gnu_norm::_List_node_base::transfer*
+      std::__timepunct_cache*
     };
 
     # Names not in an 'extern' block are mangled names.
@@ -337,6 +327,27 @@ GLIBCXX_3.4 {
     _ZN9__gnu_cxx12__atomic_add*;
     _ZN9__gnu_cxx18__exchange_and_add*;
 
+    # __gnu_debug
+_ZN10__gnu_norm15_List_node_base4hookEPS0_;
+_ZN10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZN10__gnu_norm15_List_node_base6unhookEv;
+_ZN10__gnu_norm15_List_node_base7reverseEv;
+_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_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_;
+_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_;
+_ZNK11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+
     # operator new(size_t)
     _Znw[jm];
     # operator new(size_t, std::nothrow_t const&)
@@ -585,6 +596,26 @@ GLIBCXX_3.4.7 {
 
     _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetE[jm];
 
+_ZNSt10__gnu_norm15_List_node_base4hookEPS0_;
+_ZNSt10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZNSt10__gnu_norm15_List_node_base6unhookEv;
+_ZNSt10__gnu_norm15_List_node_base7reverseEv;
+_ZNSt10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZNKSt11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNKSt11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNKSt11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNKSt11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+_ZNKSt11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNKSt11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+
 } GLIBCXX_3.4.6;
 
 # Symbols in the support library (libsupc++) have their own tag.
index 58e1413..39cb10d 100644 (file)
@@ -1,7 +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 linker.map), then
-# either 1) the configuration process determined that symbol versioning should
-# not be done, or 2) you specifically turned it off.
-# 
+# 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).
index f45b92b..d288483 100644 (file)
@@ -30,8 +30,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,5 +41,6 @@ namespace __gnu_cxx
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
 
index f0d8f02..0384b42 100644 (file)
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
   {
@@ -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
index ddeea4a..5ecb465 100644 (file)
@@ -1,6 +1,7 @@
 // Low-level functions for atomic operations: Generic version  -*- C++ -*-
 
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 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
@@ -35,8 +36,8 @@ namespace __gnu_internal
   __glibcxx_mutex_define_initialized(atomic_mutex);
 } // namespace __gnu_internal
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -53,4 +54,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
index 721dd03..1b1c883 100644 (file)
@@ -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
@@ -30,8 +30,8 @@
 #include <bits/c++config.h>
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   template<int _Inst>
     struct _Atomicity_lock
     {
@@ -94,4 +94,5 @@ namespace __gnu_cxx
     __asm__ __volatile__ ("stw,ma %1,0(%0)"
                          : : "r" (&lock), "r" (tmp) : "memory");
   }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index b670509..1b31c2d 100644 (file)
@@ -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
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_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
index 977070d..c2cf509 100644 (file)
@@ -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
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_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
 
index 0fd9b3b..baabedd 100644 (file)
@@ -30,8 +30,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word 
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,4 +41,5 @@ namespace __gnu_cxx
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __sync_fetch_and_add(__mem, __val); }
-}
+
+_GLIBCXX_END_NAMESPACE
index 880a371..370d77f 100644 (file)
@@ -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
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_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
index 561cd35..aae70df 100644 (file)
@@ -1,6 +1,6 @@
 // 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 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
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -80,4 +80,5 @@ namespace __gnu_cxx
        : "r"(__mem), "r"(__val)
        : "memory" );
   }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index 49ad718..dbd8592 100644 (file)
@@ -30,8 +30,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,4 +41,5 @@ namespace __gnu_cxx
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index 1332012..631795e 100644 (file)
@@ -1,6 +1,6 @@
 // Low-level functions for atomic operations: S/390 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
@@ -29,8 +29,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word 
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -40,4 +40,5 @@ namespace __gnu_cxx
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index 8760c8b..7a15beb 100644 (file)
@@ -1,4 +1,4 @@
-// Low-level functions for atomic operations: Generic version  -*- C++ -*-
+// Low-level functions for atomic operations: sh version  -*- C++ -*-
 
 // Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
@@ -82,8 +82,8 @@ namespace __gnu_internal
   __glibcxx_mutex_define_initialized(atomic_mutex);
 } // namespace __gnu_internal
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -100,7 +100,8 @@ namespace __gnu_cxx
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* !__SH4A__ */
 
index e49db77..ad43760 100644 (file)
@@ -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
@@ -29,8 +30,8 @@
 
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_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
index 071d0b3..3f4914b 100644 (file)
@@ -174,8 +174,9 @@ namespace __gnu_internal
 #endif
 } // namespace __gnu_internal
 
-namespace std 
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Definitions for __basic_file<char>.
   __basic_file<char>::__basic_file(__c_lock* /*__lock*/) 
   : _M_cfile(NULL), _M_cfile_created(false) { }
@@ -370,4 +371,6 @@ namespace std
 #endif
     return 0;
   }
-}  // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
index 7264f03..75468e0 100644 (file)
@@ -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
@@ -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 
index b756ebd..a1ed94a 100644 (file)
@@ -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
+// 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
@@ -36,8 +37,8 @@
 #include <cstddef>
 #include <bits/gthr.h>
 
-namespace std 
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   typedef __gthread_mutex_t __c_lock;
 
   // for basic_file.h
@@ -81,6 +82,7 @@ namespace std
     static const __int_type _S_out =           0x10;
     static const __int_type _S_trunc =         0x20;
   };
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index d6f67ee..68c3e76 100644 (file)
@@ -43,8 +43,8 @@
 #include <ieeefp.h>
 #endif
 
-namespace std 
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Specializations for all types used in num_get.
   template<>
     void
@@ -149,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", 
@@ -162,9 +163,11 @@ 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
index cf636ae..d6e2f65 100644 (file)
@@ -1,6 +1,6 @@
 // Wrapper for underlying C-language localization -*- 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
@@ -44,8 +44,8 @@
 
 #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
@@ -81,6 +81,7 @@ namespace std
        }
       return __ret;
     }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 3cd35ac..555c3b3 100644 (file)
@@ -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
@@ -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
index d94599e..f614037 100644 (file)
@@ -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
@@ -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
index 2468617..3af4440 100644 (file)
@@ -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
@@ -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<>
@@ -264,4 +264,5 @@ namespace std
       }  
   }
 #endif //  _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
index 96e55c1..2980ed9 100644 (file)
@@ -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
@@ -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
index 3a98458..3abcf33 100644 (file)
@@ -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
@@ -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
@@ -168,4 +168,5 @@ namespace std
     moneypunct<wchar_t, false>::~moneypunct()
     { delete _M_data; }
 #endif
-}
+
+_GLIBCXX_END_NAMESPACE
index cc2fc78..ce4f648 100644 (file)
@@ -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
@@ -35,8 +35,8 @@
 
 #include <locale>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<> 
     void
     numpunct<char>::_M_initialize_numpunct(__c_locale)
@@ -103,4 +103,6 @@ namespace std
     numpunct<wchar_t>::~numpunct()
     { delete _M_data; }
 #endif
-}
+
+_GLIBCXX_END_NAMESPACE
+
index f13ea19..dbb12ae 100644 (file)
@@ -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
@@ -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
index 7a45a6e..4025fb1 100644 (file)
@@ -40,8 +40,8 @@
 #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, 
@@ -107,10 +107,11 @@ namespace std
   __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", 
@@ -126,9 +127,11 @@ 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
index d28caf8..55e160e 100644 (file)
 #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
@@ -96,6 +97,7 @@ namespace std
 #endif
       return __ret;
     }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index ae2bc77..bc45422 100644 (file)
@@ -1,6 +1,6 @@
 // std::codecvt implementation details, GNU version -*- C++ -*-
 
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 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
@@ -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
@@ -303,4 +303,5 @@ namespace std
     return __ret; 
   }
 #endif
-}
+
+_GLIBCXX_END_NAMESPACE
index a0a0877..6f6b758 100644 (file)
@@ -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
@@ -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
index 3082b41..cb2887d 100644 (file)
@@ -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
@@ -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<>
@@ -300,4 +300,5 @@ namespace std
 #endif
   }
 #endif //  _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
index c3fc4b5..f206e44 100644 (file)
@@ -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
@@ -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
index ba7e242..b3cd05d 100644 (file)
@@ -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
@@ -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
@@ -652,4 +652,5 @@ namespace std
       delete _M_data;
     }
 #endif
-}
+
+_GLIBCXX_END_NAMESPACE
index 8e580f5..7a0400b 100644 (file)
@@ -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
@@ -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)
@@ -148,4 +148,5 @@ namespace std
     numpunct<wchar_t>::~numpunct()
     { delete _M_data; }
  #endif
-}
+
+_GLIBCXX_END_NAMESPACE
index bd91dc4..10faa8f 100644 (file)
@@ -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
@@ -37,8 +37,8 @@
 #include <locale>
 #include <bits/c++locale_internal.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<>
     void
     __timepunct<char>::
@@ -392,4 +392,5 @@ namespace std
        }
     }
 #endif
-}
+
+_GLIBCXX_END_NAMESPACE
index 1be2d0a..af5dc31 100644 (file)
@@ -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
@@ -38,7 +38,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
+
index 123766c..b44e630 100644 (file)
@@ -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
@@ -43,8 +43,8 @@ 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)
@@ -58,4 +58,5 @@ namespace __gnu_cxx
   {
     (void) ::fetch_and_add (const_cast<atomic_p>(__mem), __val);
   }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index 24b17c9..9261d26 100644 (file)
@@ -1,6 +1,6 @@
 // Low-level functions for atomic operations: IRIX version  -*- C++ -*-
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -30,8 +30,8 @@
 #include <mutex.h>
 #include <bits/atomicity.h>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
   { return (_Atomic_word) test_then_add((unsigned long*) const_cast<_Atomic_word*>(__mem), __val); }
@@ -39,4 +39,5 @@ namespace __gnu_cxx
   void
   __atomic_add(volatile _Atomic_word* __mem, int __val)
   { __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
index 246e520..b5fbb5b 100755 (executable)
@@ -309,7 +309,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_GNU_NAMESPACE_TRUE ENABLE_SYMVERS_GNU_NAMESPACE_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -87368,7 +87368,7 @@ if test "${enable_symvers+set}" = set; then
   enableval="$enable_symvers"
 
       case "$enableval" in
-       yes|no|gnu|darwin|darwin-export) ;;
+       yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export) ;;
        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable symvers" >&5
 echo "$as_me: error: Unknown argument to enable/disable symvers" >&2;}
    { (exit 1); exit 1; }; } ;;
@@ -87407,7 +87407,7 @@ if test x$enable_symvers = xdarwin-export ; then
 fi
 
 # Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
   # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
   echo "$as_me:$LINENO: checking for shared libgcc" >&5
 echo $ECHO_N "checking for shared libgcc... $ECHO_C" >&6
@@ -87583,6 +87583,14 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
     ;;
+  gnu-versioned-namespace)
+    SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1
+_ACEOF
+
+    ;;
   darwin)
     SYMVER_FILE=config/abi/pre/gnu.ver
 
@@ -87606,6 +87614,7 @@ fi
 
 
 
+
 { echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5
 echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
 
 
 
 
+if test $enable_symvers = gnu-versioned-namespace; then
+  ENABLE_SYMVERS_GNU_NAMESPACE_TRUE=
+  ENABLE_SYMVERS_GNU_NAMESPACE_FALSE='#'
+else
+  ENABLE_SYMVERS_GNU_NAMESPACE_TRUE='#'
+  ENABLE_SYMVERS_GNU_NAMESPACE_FALSE=
+fi
+
+
+
+
 if test $enable_symvers = darwin; then
   ENABLE_SYMVERS_DARWIN_TRUE=
   ENABLE_SYMVERS_DARWIN_FALSE='#'
@@ -88952,6 +88972,13 @@ echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_TRUE}" && test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${ENABLE_SYMVERS_DARWIN_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_DARWIN\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -89629,6 +89656,8 @@ s,@ENABLE_SYMVERS_TRUE@,$ENABLE_SYMVERS_TRUE,;t t
 s,@ENABLE_SYMVERS_FALSE@,$ENABLE_SYMVERS_FALSE,;t t
 s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMVERS_GNU_TRUE,;t t
 s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@,$ENABLE_SYMVERS_GNU_NAMESPACE_TRUE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@,$ENABLE_SYMVERS_GNU_NAMESPACE_FALSE,;t t
 s,@ENABLE_SYMVERS_DARWIN_TRUE@,$ENABLE_SYMVERS_DARWIN_TRUE,;t t
 s,@ENABLE_SYMVERS_DARWIN_FALSE@,$ENABLE_SYMVERS_DARWIN_FALSE,;t t
 s,@baseline_dir@,$baseline_dir,;t t
index b396a2d..a027c65 100644 (file)
@@ -277,14 +277,18 @@ options</a></h1>
  </dd>
 
  <dt><code>--enable-symvers[=style]  </code></dt>
+
  <dd><p>In 3.1 and later, tries to turn on symbol versioning in the
-        shared library (if a shared library has been requested).  The
-        only 'style' currently supported is 'gnu' which requires that
-        a recent version of the GNU linker be in use.  With no style
-        given, the configure script will try to guess if the 'gnu'
-        style can be used, and if so, will turn it on.  Hopefully
-        people will volunteer to do other 'style' options.
+        shared library (if a shared library has been
+        requested). Values for 'style' that are currently supported
+        are 'gnu', 'gnu-versioned-namespace', 'darwin', and
+        'darwin-export'. Both gnu- options require that a recent
+        version of the GNU linker be in use. Both darwin options are
+        equivalent. With no style given, the configure script will try
+        to guess if the 'gnu' style can be used, and if so, will turn
+        it on.
      </p>
+
  </dd>
 
  <dt><code>--enable-libstdcxx-pch  </code></dt>
index 0242d43..6bea7f4 100644 (file)
   <tr>
     <td>std::bitset</td>
     <td>&lt;bitset&gt;</td>
-    <td>__gnu_debug::bitset</td>
+    <td>debug::bitset</td>
     <td>&lt;debug/bitset&gt;</td>
   </tr>
   <tr>
     <td>std::deque</td>
     <td>&lt;deque&gt;</td>
-    <td>__gnu_debug::deque</td>
+    <td>debug::deque</td>
     <td>&lt;debug/deque&gt;</td>
   </tr>
   <tr>
     <td>std::list</td>
     <td>&lt;list&gt;</td>
-    <td>__gnu_debug::list</td>
+    <td>debug::list</td>
     <td>&lt;debug/list&gt;</td>
   </tr>
   <tr>
     <td>std::map</td>
     <td>&lt;map&gt;</td>
-    <td>__gnu_debug::map</td>
+    <td>debug::map</td>
     <td>&lt;debug/map&gt;</td>
   </tr>
   <tr>
     <td>std::multimap</td>
     <td>&lt;map&gt;</td>
-    <td>__gnu_debug::multimap</td>
+    <td>debug::multimap</td>
     <td>&lt;debug/map&gt;</td>
   </tr>
   <tr>
     <td>std::multiset</td>
     <td>&lt;set&gt;</td>
-    <td>__gnu_debug::multiset</td>
+    <td>debug::multiset</td>
     <td>&lt;debug/set&gt;</td>
   </tr>
   <tr>
     <td>std::set</td>
     <td>&lt;set&gt;</td>
-    <td>__gnu_debug::set</td>
+    <td>debug::set</td>
     <td>&lt;debug/set&gt;</td>
   </tr>
   <tr>
     <td>std::string</td>
     <td>&lt;string&gt;</td>
-    <td>__gnu_debug::string</td>
+    <td>debug::string</td>
     <td>&lt;debug/string&gt;</td>
   </tr>
   <tr>
     <td>std::wstring</td>
     <td>&lt;string&gt;</td>
-    <td>__gnu_debug::wstring</td>
+    <td>debug::wstring</td>
     <td>&lt;debug/string&gt;</td>
   </tr>
   <tr>
     <td>std::basic_string</td>
     <td>&lt;string&gt;</td>
-    <td>__gnu_debug::basic_string</td>
+    <td>debug::basic_string</td>
     <td>&lt;debug/string&gt;</td>
   </tr>
   <tr>
     <td>std::vector</td>
     <td>&lt;vector&gt;</td>
-    <td>__gnu_debug::vector</td>
+    <td>debug::vector</td>
     <td>&lt;debug/vector&gt;</td>
   </tr>
   <tr>
     <td>__gnu_cxx::hash_map</td>
     <td>&lt;ext/hash_map&gt;</td>
-    <td>__gnu_debug::hash_map</td>
+    <td>debug::hash_map</td>
     <td>&lt;debug/hash_map&gt;</td>
   </tr>
   <tr>
     <td>__gnu_cxx::hash_multimap</td>
     <td>&lt;ext/hash_map&gt;</td>
-    <td>__gnu_debug::hash_multimap</td>
+    <td>debug::hash_multimap</td>
     <td>&lt;debug/hash_map&gt;</td>
   </tr>
   <tr>
     <td>__gnu_cxx::hash_set</td>
     <td>&lt;ext/hash_set&gt;</td>
-    <td>__gnu_debug::hash_set</td>
+    <td>debug::hash_set</td>
     <td>&lt;debug/hash_set&gt;</td>
   </tr>
   <tr>
     <td>__gnu_cxx::hash_multiset</td>
     <td>&lt;ext/hash_set&gt;</td>
-    <td>__gnu_debug::hash_multiset</td>
+    <td>debug::hash_multiset</td>
     <td>&lt;debug/hash_set&gt;</td>
   </tr>
 </table>
   <li><code>std::basic_string</code> (no safe iterators)</li>
   <li><code>std::bitset</code></li>
   <li><code>std::deque</code></li>
-  <li><code>__gnu_cxx::hash_map</code></li>
-  <li><code>__gnu_cxx::hash_multimap</code></li>
-  <li><code>__gnu_cxx::hash_multiset</code></li>
-  <li><code>__gnu_cxx::hash_set</code></li>
   <li><code>std::list</code></li>
   <li><code>std::map</code></li>
   <li><code>std::multimap</code></li>
   <li><code>std::multiset</code></li>
   <li><code>std::set</code></li>
   <li><code>std::vector</code></li>
+  <li><code>__gnu_cxx::hash_map</code></li>
+  <li><code>__gnu_cxx::hash_multimap</code></li>
+  <li><code>__gnu_cxx::hash_multiset</code></li>
+  <li><code>__gnu_cxx::hash_set</code></li>
 </ul>
 
 
index b62ad8f..e531fd3 100644 (file)
@@ -330,68 +330,56 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt;
 <p>In release mode, we define only the release-mode version of the
   component with its standard name and do not include the debugging
   component at all. The release mode version is defined within the
-  namespace <code>__gnu_norm</code>, and then associated with namespace
-  <code>std</code> via a "strong using" directive. Minus the
-  namespace associations, this method leaves the behavior of release
-  mode completely unchanged from its behavior prior to the
-  introduction of the libstdc++ debug mode. Here's an example of what
-  this ends up looking like, in C++.</p>
+  namespace <code>std</code>. Minus the namespace associations, this
+  method leaves the behavior of release mode completely unchanged from
+  its behavior prior to the introduction of the libstdc++ debug
+  mode. Here's an example of what this ends up looking like, in
+  C++.</p>
 
 <pre>
-namespace __gnu_norm
+namespace std
 {
-  using namespace std; 
-  
   template&lt;typename _Tp, typename _Alloc = allocator&lt;_Tp&gt; &gt;
     class list
     {
       // ...
-    };
-} // namespace __gnu_norm
-
-namespace std
-{
-  using namespace __gnu_norm __attribute__ ((strong));
-}
+     };
+} // namespace std
 </pre>
   
-<p>In debug mode we include the release-mode container and also the
-debug-mode container. The release mode version is defined exactly as
-before, and the debug-mode container is defined within the namespace
-<code>__gnu_debug</code>, which is associated with namespace
+<p>In debug mode we include the release-mode container (which is now
+defined in in the namespace <code>__gnu_norm</code>) and also the
+debug-mode container. The debug-mode container is defined within the
+namespace <code>__gnu_debug</code>, which is associated with namespace
 <code>std</code> via a "strong using" directive.  This method allows
 the debug- and release-mode versions of the same component to coexist
-at compile-time without causing an unreasonable maintenance burden,
-while minimizing confusion. Again, this boils down to C++ code as
-follows:</p>
+at compile-time and link-time without causing an unreasonable
+maintenance burden, while minimizing confusion. Again, this boils down
+to C++ code as follows:</p>
 
 <pre>
-namespace __gnu_norm
-{
-  using namespace std; 
-  
-  template&lt;typename _Tp, typename _Alloc = allocator&lt;_Tp&gt; &gt;
-    class list
-    {
-      // ...
-    };
-} // namespace __gnu_norm
-
-namespace __gnu_debug
-{
-  using namespace std; 
-  
-  template&lt;typename _Tp, typename _Alloc = allocator&lt;_Tp&gt; &gt;
-    class list
-    : public __gnu_norm::list&lt;_Tp, _Alloc&gt;,
-      public __gnu_debug::_Safe_sequence&lt;list&lt;_Tp, _Alloc&gt; &gt;
-    {
-      // ...
-    };
-} // namespace __gnu_norm
-
 namespace std
 {
+  namespace __gnu_norm
+  {
+    template&lt;typename _Tp, typename _Alloc = allocator&lt;_Tp&gt; &gt;
+      class list
+      {
+        // ...
+      };
+  } // namespace __gnu_norm
+
+  namespace __gnu_debug
+  {
+    template&lt;typename _Tp, typename _Alloc = allocator&lt;_Tp&gt; &gt;
+      class list
+      : public __gnu_norm::list&lt;_Tp, _Alloc&gt;,
+        public __gnu_debug::_Safe_sequence&lt;list&lt;_Tp, _Alloc&gt; &gt;
+      {
+        // ...
+      };
+  } // namespace __gnu_norm
+
   using namespace __gnu_debug __attribute__ ((strong));
 }
 </pre>
index 0120543..e71b76a 100644 (file)
@@ -821,19 +821,30 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
        $(STAMP) stamp-host
 
 # Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
-                               ${glibcxx_srcdir}/include/bits/c++config \
-                               stamp-${host_alias} \
-                               ${toplevel_srcdir}/gcc/DATESTAMP
-       @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
-       sed -e 's/^/#define __GLIBCXX__ /' \
-            < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+if ENABLE_SYMVERS_GNU_NAMESPACE
+stamp-namespace-version:
+       echo 1 > stamp-namespace-version
+else
+stamp-namespace-version:
+       echo 0 > stamp-namespace-version
+endif
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+                             ${glibcxx_srcdir}/include/bits/c++config \
+                             stamp-${host_alias} \
+                             ${toplevel_srcdir}/gcc/DATESTAMP \
+                             stamp-namespace-version
+       @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+       nsa_version=`cat stamp-namespace-version` ;\
+       sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+       -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+            < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
        sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
            -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
            -e 's/VERSION/_GLIBCXX_VERSION/g' \
            -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
            < ${CONFIG_HEADER} >> $@ ;\
-       echo "#endif // _CXXCONFIG_" >>$@
+       echo "" >> $@ ;\
+       echo "#endif // _CXXCONFIG_" >> $@
 
 # Host includes for threads
 uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
index 590a107..6c97c63 100644 (file)
@@ -103,6 +103,8 @@ 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@
 EXEEXT = @EXEEXT@
@@ -1201,19 +1203,27 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
        $(STAMP) stamp-host
 
 # Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
-                               ${glibcxx_srcdir}/include/bits/c++config \
-                               stamp-${host_alias} \
-                               ${toplevel_srcdir}/gcc/DATESTAMP
-       @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
-       sed -e 's/^/#define __GLIBCXX__ /' \
-            < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@    echo 1 > stamp-namespace-version
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@   echo 0 > stamp-namespace-version
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+                             ${glibcxx_srcdir}/include/bits/c++config \
+                             stamp-${host_alias} \
+                             ${toplevel_srcdir}/gcc/DATESTAMP \
+                             stamp-namespace-version
+       @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+       nsa_version=`cat stamp-namespace-version` ;\
+       sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+       -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+            < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
        sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
            -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
            -e 's/VERSION/_GLIBCXX_VERSION/g' \
            -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
            < ${CONFIG_HEADER} >> $@ ;\
-       echo "#endif // _CXXCONFIG_" >>$@
+       echo "" >> $@ ;\
+       echo "#endif // _CXXCONFIG_" >> $@
 
 ${host_builddir}/gthr.h: ${toplevel_srcdir}/gcc/gthr.h stamp-${host_alias}
        sed -e '/^#pragma/b' \
index aaa8cdd..2474601 100644 (file)
@@ -143,7 +143,3 @@ using __gnu_cxx::power;
 using __gnu_cxx::iota;
 
 #endif /* _BACKWARD_ALGO_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 19bdcad..289e988 100644 (file)
@@ -89,7 +89,3 @@ using __gnu_cxx::lexicographical_compare_3way;
 using __gnu_cxx::uninitialized_copy_n;
 
 #endif /* _BACKWARD_ALGOBASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 10bafc8..9a2c44d 100644 (file)
@@ -62,7 +62,3 @@
 typedef std::vector<bool, std::allocator<bool> > bit_vector;
 
 #endif /* _BACKWARD_BVECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
index b03072e..7972cf7 100644 (file)
@@ -37,7 +37,3 @@ typedef complex<double>               double_complex;
 typedef complex<long double>   long_double_complex;
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index 54b65ec..a4a6b41 100644 (file)
@@ -64,7 +64,3 @@
 using std::deque;
 
 #endif /* _BACKWARD_DEQUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
index c721ca5..92835f9 100644 (file)
@@ -46,7 +46,3 @@ using std::wstreampos;
 #endif
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index e7f29a6..b5be371 100644 (file)
@@ -124,7 +124,3 @@ using __gnu_cxx::mem_fun1;
 using __gnu_cxx::mem_fun1_ref;
 
 #endif /* _BACKWARD_FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
index cbeed99..aa14522 100644 (file)
@@ -66,7 +66,3 @@ using __gnu_cxx::hash_map;
 using __gnu_cxx::hash_multimap;
 
 #endif /* _BACKWARD_HASH_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 72fd281..7b7511b 100644 (file)
@@ -70,7 +70,3 @@ using __gnu_cxx::hash;
 using __gnu_cxx::hashtable;
 
 #endif /* _BACKWARD_HASHTABLE_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 6e02c35..ef2e684 100644 (file)
@@ -65,7 +65,3 @@ using std::make_heap;
 using std::sort_heap;
 
 #endif /* _BACKWARD_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
index aeb7b1f..a4099a7 100644 (file)
@@ -64,7 +64,3 @@ using std::setprecision;
 using std::setw;
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index e22d113..ed275ff 100644 (file)
@@ -54,7 +54,3 @@ using std::ends;
 using std::flush;
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index 7db8f41..b1c55d1 100644 (file)
 #include "iostream.h"
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
-
-
-
-
-
index 815bd15..89496fb 100644 (file)
@@ -185,7 +185,3 @@ template <class _ForwardIterator>
 using std::raw_storage_iterator;
 
 #endif /* _BACKWARD_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
index f8f85e1..d70a6e4 100644 (file)
@@ -64,7 +64,3 @@
 using std::list;
 
 #endif /* _BACKWARD_LIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 0b5051d..2ff3cec 100644 (file)
@@ -63,7 +63,3 @@
 using std::map;
 
 #endif /* _BACKWARD_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 534d1c9..515d299 100644 (file)
@@ -63,7 +63,3 @@
 using std::multimap;
 
 #endif /* _BACKWARD_MULTIMAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 47af815..1f857ae 100644 (file)
@@ -63,7 +63,3 @@
 using std::multiset;
 
 #endif /* _BACKWARD_MULTISET_H */
-
-// Local Variables:
-// mode:C++
-// End:
index f30ebe4..07ef9b0 100644 (file)
@@ -32,7 +32,3 @@
 #include "iostream.h"
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index fa89efe..4985bcb 100644 (file)
@@ -64,7 +64,3 @@ using std::pair;
 using std::make_pair;
 
 #endif /* _BACKWARD_PAIR_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 1da475c..da7505c 100644 (file)
@@ -35,7 +35,3 @@ using std::queue;
 using std::priority_queue;
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index 6745c48..71e8815 100644 (file)
@@ -54,7 +54,3 @@ using __gnu_cxx::crope;
 using __gnu_cxx::wrope;
 
 #endif /* _BACKWARD_ROPE_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 0043494..3c6a390 100644 (file)
@@ -63,7 +63,3 @@
 using std::set;
 
 #endif /* _BACKWARD_SET_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 3764a77..9b9a43d 100644 (file)
@@ -50,7 +50,3 @@
 using __gnu_cxx::slist;
 
 #endif /* _BACKWARD_SLIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
index a4c586a..07df417 100644 (file)
@@ -66,7 +66,3 @@
 using std::stack;
 
 #endif /* _BACKWARD_STACK_H */
-
-// Local Variables:
-// mode:C++
-// End:
index ab27241..c137601 100644 (file)
@@ -32,7 +32,3 @@
 #include "iostream.h"
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index 86730ec..bac2449 100644 (file)
@@ -34,7 +34,3 @@
 using std::streambuf;
 
 #endif
-
-// Local Variables:
-// mode:C++
-// End:
index a8d94f4..d0d5a13 100644 (file)
@@ -1,6 +1,6 @@
 // Backward-compat support -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -55,8 +55,8 @@
 #include <ostream>
 #include <string>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Class strstreambuf, a streambuf class that manages an array of char.
   // Note that this class is not a template.
   class strstreambuf : public basic_streambuf<char, char_traits<char> >
@@ -175,5 +175,7 @@ namespace std
   private:
     strstreambuf _M_buf;
   };
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
 #endif
index c42db03..af6e57d 100644 (file)
@@ -72,7 +72,3 @@ using std::return_temporary_buffer;
 using __gnu_cxx::temporary_buffer;
 
 #endif /* _BACKWARD_TEMPBUF_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 25e4956..88a2f1d 100644 (file)
@@ -50,6 +50,3 @@
 using __gnu_cxx::rb_tree;
 
 #endif
-// Local Variables:
-// mode:C++
-// End:
index f4ab069..8cd8dd0 100644 (file)
@@ -64,7 +64,3 @@
 using std::vector;
 
 #endif /* _BACKWARD_VECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 5bba2a9..18bfd5f 100644 (file)
@@ -51,8 +51,8 @@
 // Define the base class to std::allocator.
 #include <bits/c++allocator.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Tp>
     class allocator;
 
@@ -127,6 +127,7 @@ namespace std
 
   // Undefine.
 #undef __glibcxx_base_allocator
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index aa73736..f436e0b 100644 (file)
@@ -1,6 +1,6 @@
 // Low-level functions for atomic operations -*- 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
 #ifndef _GLIBCXX_ATOMICITY_H
 #define _GLIBCXX_ATOMICITY_H   1
 
+#include <bits/c++config.h>
 #include <bits/atomic_word.h>
-  
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   _Atomic_word 
   __attribute__ ((__unused__))
   __exchange_and_add(volatile _Atomic_word* __mem, int __val);
@@ -46,7 +47,8 @@ namespace __gnu_cxx
   void
   __attribute__ ((__unused__))
   __atomic_add(volatile _Atomic_word* __mem, int __val);
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
 
 /* Even if the CPU doesn't need a memory barrier, we need to ensure that
    the compiler doesn't reorder memory accesses across the barriers.  */
index 9088671..d078431 100644 (file)
@@ -1,6 +1,6 @@
 // Iostreams base classes -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -43,8 +43,8 @@
 #include <bits/locale_classes.h>
 #include <bits/locale_facets.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 27.4.5  Template class basic_ios
   /**
    *  @brief  Virtual base class for all stream classes.
@@ -458,7 +458,8 @@ namespace std
       void
       _M_cache_locale(const locale& __loc);
     };
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #ifndef _GLIBCXX_EXPORT_TEMPLATE
 #include <bits/basic_ios.tcc>
index b536a0d..e8434a5 100644 (file)
@@ -1,6 +1,7 @@
 // basic_ios member functions -*- C++ -*-
 
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 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
@@ -37,8 +38,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _CharT, typename _Traits>
     void
     basic_ios<_CharT, _Traits>::clear(iostate __state)
@@ -195,6 +196,7 @@ namespace std
   extern template class basic_ios<wchar_t>;
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 0ff2e54..acd2f14 100644 (file)
@@ -45,8 +45,8 @@
 #include <bits/atomicity.h>
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @class basic_string basic_string.h <string>
    *  @brief  Managing sequences of characters and character-like objects.
@@ -2443,6 +2443,7 @@ namespace std
     getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
            wchar_t __delim);
 #endif  
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _BASIC_STRING_H */
index f8f9f3e..6b21d83 100644 (file)
@@ -45,8 +45,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Type>
     inline bool
     __is_null_pointer(_Type* __ptr)
@@ -993,6 +993,7 @@ namespace std
     getline(basic_istream<wchar_t>&, wstring&);
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 24160ed..38380b7 100644 (file)
@@ -1,4 +1,6 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// -*- C++ -*-
+
+// 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
@@ -48,8 +50,7 @@
 #include <bits/stl_iterator_base_types.h>    // for traits and tags
 #include <utility>                           // for pair<>
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
 #define _IsUnused __attribute__ ((__unused__))
 
@@ -923,7 +924,7 @@ struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; };
 
   // HashedAssociativeContainer
 
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
 
 #undef _IsUnused
 
index eb8dc79..31a60a7 100644 (file)
 // Pick up any CPU-specific definitions.
 #include <bits/cpu_defines.h>
 
-// Debug mode support. Debug mode basic_string is not allowed to be
-// associated with std, because of locale and exception link
-// dependence.
-namespace __gnu_debug_def { }
+// The current version of the C++ library in compressed ISO date format.
+#define __GLIBCXX__ 
 
-namespace __gnu_debug 
+// Macros for various namespace association schemes and modes.
+#ifdef _GLIBCXX_DEBUG
+# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
+#endif
+
+#define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 
+
+// Macros for namespaces.
+// _GLIBCXX_BEGIN_NAMESPACE
+// _GLIBCXX_END_NAMESPACE
+// _GLIBCXX_BEGIN_NESTED_NAMESPACE
+// _GLIBCXX_END_NESTED_NAMESPACE
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+# define _GLIBCXX_END_NESTED_NAMESPACE } }
+# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
+# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
+#else
+# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X { 
+# define _GLIBCXX_END_NAMESPACE } 
+# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+#  define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+#  define _GLIBCXX_END_NESTED_NAMESPACE  } }
+# else
+#  define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
+#  define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
+# endif
+#endif
+
+// Namespace associations for versioning mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+namespace std
+{
+  namespace _6 { }
+  using namespace _6 __attribute__ ((strong));
+}
+
+// In addition, other supported namespace configurations.
+namespace __gnu_cxx 
 { 
-  using namespace __gnu_debug_def;
+  namespace _6 { }
+  using namespace _6 __attribute__ ((strong));
 }
 
-#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_STD __gnu_norm
-# define _GLIBCXX_EXTERN_TEMPLATE 0
-namespace __gnu_norm 
+namespace __gnu_ext
 { 
-  using namespace std; 
+  namespace _6 { }
+  using namespace _6 __attribute__ ((strong));
 }
+
 namespace std
 {
+  namespace tr1 
+  { 
+    namespace _6 { }
+    using namespace _6 __attribute__ ((strong));
+  }
+}
+#endif
+
+// Namespace associations for debug mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+namespace std
+{ 
+  namespace __gnu_norm { }
+
+#if 1
+  namespace __gnu_debug_def { }
+  namespace __gnu_debug { using namespace __gnu_debug_def; } 
   using namespace __gnu_debug_def __attribute__ ((strong));
+#else
+  namespace __gnu_debug { namespace detail { } }
+  using namespace __gnu_debug __attribute__ ((strong));
+#endif
 }
+
+# define _GLIBCXX_STD __gnu_norm
+# define _GLIBCXX_EXTERN_TEMPLATE 0
 # if __NO_INLINE__ && !__GXX_WEAK__
 #  warning debug mode without inlining may fail due to lack of weak symbols
 # endif
 #else
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_STD _6
+#else
 # define _GLIBCXX_STD std
 #endif
+#endif
+
 
 // Allow use of "export template." This is currently not a feature
 // that g++ supports.
@@ -79,6 +144,7 @@ namespace std
 # define _GLIBCXX_EXTERN_TEMPLATE 1
 #endif
 
+
 // Certain function definitions that are meant to be overridable from
 // user code are decorated with this macro.  For some targets, this
 // macro causes these definitions to be weak.
index 6b4c916..410e01b 100644 (file)
@@ -46,8 +46,8 @@
 #include <bits/stl_algobase.h>// For copy, lexicographical_compare, fill_n
 #include <bits/postypes.h>    // For streampos
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   /**
    *  @brief  Mapping from character type to associated types.
    *
@@ -204,10 +204,11 @@ namespace __gnu_cxx
       std::fill_n(__s, __n, __a);
       return __s;
     }
-}
 
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 21.1
   /**
    *  @brief  Basis for explicit traits specializations.
@@ -361,6 +362,6 @@ namespace std
   };
 #endif //_GLIBCXX_USE_WCHAR_T
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 5f1b682..81bf2a6 100644 (file)
@@ -1,6 +1,6 @@
 // Support for concurrent programing -*- C++ -*-
 
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -72,8 +72,8 @@ __gthread_mutex_lock(&NAME)
 
 #endif
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   typedef __glibcxx_mutex_type mutex_type;
   
   /// @brief  Scoped lock idiom.
@@ -95,6 +95,7 @@ namespace __gnu_cxx
     lock(const lock&);
     lock& operator=(const lock&);
   };
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 5ac9c98..e75bf47 100644 (file)
@@ -84,17 +84,18 @@ namespace __gnu_internal
 } // namespace __gnu_internal
 
 // Forward declaration hack, should really include this from somewhere.
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   template<typename _Iterator, typename _Container>
     class __normal_iterator;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
 
 struct __true_type { };
 struct __false_type { };
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<bool>
     struct __truth_type
     { typedef __false_type __type; };
@@ -384,6 +385,6 @@ namespace std
        };
     };
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif //_CPP_TYPE_TRAITS_H
index d8f5ef6..2f45593 100644 (file)
@@ -61,8 +61,8 @@
 #ifndef _DEQUE_TCC
 #define _DEQUE_TCC 1
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   template <typename _Tp, typename _Alloc>
     deque<_Tp, _Alloc>&
     deque<_Tp, _Alloc>::
@@ -744,6 +744,7 @@ namespace _GLIBCXX_STD
       this->_M_impl._M_start._M_set_node(__new_nstart);
       this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
     }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif
index 652c54d..08fcdbe 100644 (file)
@@ -42,8 +42,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _CharT, typename _Traits>
     void
     basic_filebuf<_CharT, _Traits>::
@@ -899,6 +899,7 @@ namespace std
   extern template class basic_fstream<wchar_t>;
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 3e2ce2c..59358c4 100644 (file)
 #ifndef _FUNCTEXCEPT_H
 #define _FUNCTEXCEPT_H 1
 
+#include <bits/c++config.h>
 #include <exception_defines.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Helper for exception objects in <except>
   void
   __throw_bad_exception(void) __attribute__((__noreturn__));
@@ -88,6 +89,7 @@ namespace std
   // Helpers for exception objects in basic_ios
   void
   __throw_ios_failure(const char*) __attribute__((__noreturn__));
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 31cb102..560aeb5 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- gslice class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief  Class defining multi-dimensional subset of an array.
    *
@@ -165,10 +165,6 @@ namespace std
     return *this;
   }
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _GSLICE_H */
-
-// Local Variables:
-// mode:c++
-// End:
index 2904efe..0b12207 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- gslice_array class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief  Reference to multi-dimensional subset of an array.
    *
@@ -209,10 +209,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
 
 #undef _DEFINE_VALARRAY_OPERATOR
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _GSLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
index aca2fe3..c6038e3 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- indirect_array class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
 //  Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief  Reference to arbitrary subset of an array.
    *
@@ -203,10 +203,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
 
 #undef _DEFINE_VALARRAY_OPERATOR
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _INDIRECT_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
index 644c655..cc88f40 100644 (file)
@@ -1,6 +1,6 @@
 // Iostreams base classes -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -46,8 +46,8 @@
 #include <bits/localefwd.h>
 #include <bits/locale_classes.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // The following definitions of bitmask types are enums, not ints,
   // as permitted (but not required) in the standard, in order to provide
   // better type safety in iostream calls.  A side effect is that
@@ -961,7 +961,8 @@ namespace std
     __base.setf(ios_base::scientific, ios_base::floatfield);
     return __base;
   }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _IOS_BASE_H */
 
index 21299e6..541e75a 100644 (file)
@@ -45,8 +45,8 @@
 #include <locale>
 #include <ostream> // For flush()
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _CharT, typename _Traits>
     basic_istream<_CharT, _Traits>::sentry::
     sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
@@ -1281,6 +1281,7 @@ namespace std
   extern template class basic_iostream<wchar_t>;
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index ece0430..355ec75 100644 (file)
@@ -61,8 +61,8 @@
 #ifndef _LIST_TCC
 #define _LIST_TCC 1
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   template<typename _Tp, typename _Alloc>
     void
     _List_base<_Tp, _Alloc>::
@@ -373,7 +373,8 @@ namespace _GLIBCXX_STD
            swap(*(__fill - 1));
          }
       }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _LIST_TCC */
 
index aed938d..3abe415 100644 (file)
@@ -1,6 +1,6 @@
 // Locale support -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -48,8 +48,8 @@
 #include <bits/atomicity.h>
 #include <bits/gthr.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 22.1.1 Class locale
   /**
    *  @brief  Container class for localization functionality.
@@ -577,6 +577,7 @@ namespace std
       delete [] _M_impl->_M_names[0];
       _M_impl->_M_names[0] = 0;   // Unnamed.
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index b4cd513..339bb53 100644 (file)
@@ -48,8 +48,8 @@
 #include <bits/ios_base.h>  // For ios_base, ios_base::iostate
 #include <streambuf>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // NB: Don't instantiate required wchar_t facets if no wchar_t support.
 #ifdef _GLIBCXX_USE_WCHAR_T
 # define  _GLIBCXX_NUM_FACETS 28
@@ -4573,6 +4573,7 @@ namespace std
     inline _CharT
     tolower(_CharT __c, const locale& __loc)
     { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index eb4a352..9d337e9 100644 (file)
@@ -42,8 +42,8 @@
 #include <typeinfo>            // For bad_cast.
 #include <bits/streambuf_iterator.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Facet>
     locale
     locale::combine(const locale& __other) const
@@ -2761,6 +2761,7 @@ namespace std
     has_facet<messages<wchar_t> >(const locale&);
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 258fcc1..94cafb2 100644 (file)
@@ -1,6 +1,6 @@
 // Locale support -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -47,8 +47,8 @@
 #include <iosfwd>              // For ostreambuf_iterator, istreambuf_iterator
 #include <bits/functexcept.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 22.1.1 Locale
   class locale;
 
@@ -187,6 +187,7 @@ namespace std
        __throw_bad_cast();
       return *__f;
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 592aad7..f2c6661 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- mask_array class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
 //  Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief  Reference to selected subset of an array.
    *
@@ -199,10 +199,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
 
 #undef _DEFINE_VALARRAY_OPERATOR
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _MASK_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
index e26ad50..1642583 100644 (file)
@@ -44,8 +44,8 @@
 
 #include <locale>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _CharT, typename _Traits>
     basic_ostream<_CharT, _Traits>::sentry::
     sentry(basic_ostream<_CharT, _Traits>& __os)
@@ -818,6 +818,7 @@ namespace std
   extern template wostream& operator<<(wostream&, const char*);
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 6df0ef9..97ab8d1 100644 (file)
@@ -1,6 +1,6 @@
 // Position types -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -49,8 +49,8 @@
 #include <stdint.h> // For int64_t
 #endif
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // The types streamoff, streampos and wstreampos and the class
   // template fpos<> are described in clauses 21.1.2, 21.1.3, 27.1.2,
   // 27.2, 27.4.1, 27.4.3 and D.6. Despite all this verbage, the
@@ -210,6 +210,7 @@ namespace std
   typedef fpos<mbstate_t> streampos;
   /// File position for wchar_t streams.
   typedef fpos<mbstate_t> wstreampos;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index bde07d5..41debfe 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- slice_array class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief  Class defining one-dimensional subset of an array.
    *
@@ -264,10 +264,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
 
 #undef _DEFINE_VALARRAY_OPERATOR
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _SLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
index 28fb195..eb12ca4 100644 (file)
@@ -1,6 +1,6 @@
 // String based streams -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -44,8 +44,8 @@
 
 #include <sstream>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template <class _CharT, class _Traits, class _Alloc>
     typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
     basic_stringbuf<_CharT, _Traits, _Alloc>::
@@ -233,6 +233,7 @@ namespace std
   extern template class basic_stringstream<wchar_t>;
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 6cb9c0b..355d859 100644 (file)
@@ -67,8 +67,8 @@
 
 // See concept_check.h for the __glibcxx_*_requires macros.
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @brief Find the median of three values.
    *  @param  a  A value.
@@ -5337,6 +5337,6 @@ namespace std
                             __comp);
     }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _ALGO_H */
index c339832..7306996 100644 (file)
@@ -75,8 +75,7 @@
 #include <bits/concept_check.h>
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
 
   /**
    *  @brief Swaps two values.
@@ -909,6 +908,6 @@ namespace std
 #endif /* CHAR_MAX == SCHAR_MAX */
   }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 05c7e09..0779ea6 100644 (file)
@@ -61,8 +61,8 @@
 #ifndef _BVECTOR_H
 #define _BVECTOR_H 1
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   typedef unsigned long _Bit_type;
   enum { _S_word_bit = int(CHAR_BIT * sizeof(_Bit_type)) };
 
@@ -397,13 +397,14 @@ namespace _GLIBCXX_STD
                             _M_impl._M_end_of_storage - _M_impl._M_start._M_p);
       }
     };
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 // Declare a partial specialization of vector<T, Alloc>.
 #include <bits/stl_vector.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   /**
    *  @brief  A specialization of vector for booleans which offers fixed time
    *  access to individual elements in any order.
@@ -953,6 +954,7 @@ template<typename _Alloc>
     clear()
     { erase(begin(), end()); }
   };
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif
index 8f78d8c..0a03fb7 100644 (file)
@@ -64,8 +64,8 @@
 #include <bits/cpp_type_traits.h>
 #include <new>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    * @if maint
    * Constructs an object in existing memory by invoking an allocated
@@ -181,9 +181,8 @@ namespace std
     {
       _Destroy(__first, __last);
     }
-   
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_CONSTRUCT_H */
 
index 15401ba..107bbfe 100644 (file)
@@ -65,8 +65,8 @@
 #include <bits/stl_iterator_base_types.h>
 #include <bits/stl_iterator_base_funcs.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   /**
    *  @if maint
    *  @brief This function controls the size of memory nodes.
@@ -1580,6 +1580,7 @@ namespace _GLIBCXX_STD
     inline void
     swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
     { __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _DEQUE_H */
index dac19c8..db213dc 100644 (file)
@@ -61,8 +61,8 @@
 #ifndef _FUNCTION_H
 #define _FUNCTION_H 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 20.3.1 base classes
   /** @defgroup s20_3_1_base Functor Base Classes
    *  Function objects, or @e functors, are objects with an @c operator()
@@ -750,10 +750,6 @@ namespace std
 
   /** @}  */
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 3dd0001..f9e337f 100644 (file)
@@ -1,6 +1,6 @@
 // Heap implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -62,8 +62,8 @@
 
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // is_heap, a predicate testing whether or not a range is
   // a heap.  This function is an extension, not part of the C++
   // standard.
@@ -458,10 +458,6 @@ namespace std
        std::pop_heap(__first, __last--, __comp);
     }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
index 12b2e9c..7746aa2 100644 (file)
@@ -67,8 +67,8 @@
 
 #include <bits/cpp_type_traits.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 24.4.1 Reverse iterators
   /**
    *  "Bidirectional and random access iterators have corresponding reverse
@@ -616,10 +616,11 @@ namespace std
       return insert_iterator<_Container>(__x,
                                         typename _Container::iterator(__i));
     }
-} // namespace std
 
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   // This iterator adapter is 'normal' in the sense that it does not
   // change the semantics of any of the operators of its iterator
   // parameter.  Its primary purpose is to convert an iterator that is
@@ -819,10 +820,7 @@ namespace __gnu_cxx
     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
              __n, const __normal_iterator<_Iterator, _Container>& __i)
     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
-} // namespace __gnu_cxx
 
-#endif
+_GLIBCXX_END_NAMESPACE
 
-// Local Variables:
-// mode:C++
-// End:
+#endif
index 6e550fa..82bf040 100644 (file)
@@ -1,6 +1,6 @@
 // Functions used by iterators -*- 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
@@ -67,8 +67,8 @@
 #pragma GCC system_header
 #include <bits/concept_check.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _InputIterator>
     inline typename iterator_traits<_InputIterator>::difference_type
     __distance(_InputIterator __first, _InputIterator __last,
@@ -174,6 +174,7 @@ namespace std
       // concept requirements -- taken care of in __advance
       std::__advance(__i, __n, std::__iterator_category(__i));
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _ITERATOR_BASE_FUNCS_H */
index 2161f2a..c02cd26 100644 (file)
@@ -1,6 +1,6 @@
 // Types used in iterator implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -66,8 +66,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   //@{
   /**
    *  @defgroup iterator_tags Iterator Tags
@@ -164,7 +164,7 @@ namespace std
     __iterator_category(const _Iter&)
     { return typename iterator_traits<_Iter>::iterator_category(); }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _ITERATOR_BASE_TYPES_H */
 
index f93a032..03b70a3 100644 (file)
@@ -63,8 +63,8 @@
 
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   // Supporting structures are split into common and templated types; the
   // latter publicly inherits from the former in an effort to reduce code
   // duplication.  This results in some "needless" static_cast'ing later on,
@@ -1221,7 +1221,8 @@ namespace _GLIBCXX_STD
     inline void
     swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
     { __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _LIST_H */
 
index 4d4dd7e..a1cfafb 100644 (file)
@@ -64,8 +64,8 @@
 #include <bits/functexcept.h>
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   /**
    *  @brief A standard container made up of (key,value) pairs, which can be
    *  retrieved based on a key, in logarithmic time.
@@ -726,6 +726,7 @@ namespace _GLIBCXX_STD
     swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
         map<_Key, _Tp, _Compare, _Alloc>& __y)
     { __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _MAP_H */
index 5c66227..4adf65b 100644 (file)
@@ -63,8 +63,8 @@
 
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   // Forward declaration of operators < and ==, needed for friend declaration.
 
   template <typename _Key, typename _Tp,
@@ -679,6 +679,7 @@ namespace _GLIBCXX_STD
     swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x,
          multimap<_Key, _Tp, _Compare, _Alloc>& __y)
     { __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _MULTIMAP_H */
index 185f51c..f685b4f 100644 (file)
@@ -63,8 +63,7 @@
 
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
 
   // Forward declaration of operators < and ==, needed for friend declaration.
   template <class _Key, class _Compare = std::less<_Key>,
@@ -575,6 +574,6 @@ namespace _GLIBCXX_STD
         multiset<_Key, _Compare, _Alloc>& __y)
     { __x.swap(__y); }
 
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _MULTISET_H */
index 7970680..82bee21 100644 (file)
@@ -1,6 +1,6 @@
 // Numeric functions implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -63,8 +63,7 @@
 
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
 
   /**
    *  @brief  Accumulate values in a range.
@@ -335,6 +334,6 @@ namespace std
       return ++__result;
     }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_NUMERIC_H */
index b97de33..b4bb00c 100644 (file)
@@ -1,6 +1,6 @@
 // Pair implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -61,8 +61,8 @@
 #ifndef _PAIR_H
 #define _PAIR_H 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /// pair holds two objects of arbitrary type.
   template<class _T1, class _T2>
     struct pair
@@ -143,6 +143,7 @@ namespace std
     inline pair<_T1, _T2>
     make_pair(_T1 __x, _T2 __y)
     { return pair<_T1, _T2>(__x, __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _PAIR_H */
index b7d03b8..e0da22f 100644 (file)
@@ -1,6 +1,7 @@
 // Queue implementation -*- 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
@@ -64,8 +65,8 @@
 #include <bits/concept_check.h>
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Forward declarations of operators < and ==, needed for friend declaration.
   template<typename _Tp, typename _Sequence = deque<_Tp> >
     class queue;
@@ -465,6 +466,7 @@ namespace std
     };
 
   // No equality/comparison operators are provided for priority_queue.
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _QUEUE_H */
index 4057765..615da28 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C++ -*-
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -61,8 +61,8 @@
 #ifndef _STL_RAW_STORAGE_ITERATOR_H
 #define _STL_RAW_STORAGE_ITERATOR_H 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  This iterator class lets algorithms store their results into
    *  uninitialized memory.
@@ -104,10 +104,7 @@ namespace std
        return __tmp;
       }
     };
-} // namespace std
 
-#endif
+_GLIBCXX_END_NAMESPACE
 
-// Local Variables:
-// mode:C++
-// End:
+#endif
index 1395472..11fc30d 100644 (file)
@@ -1,6 +1,6 @@
 // std::rel_ops implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -71,8 +71,8 @@
 #ifndef _STL_RELOPS_H
 #define _STL_RELOPS_H 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   namespace rel_ops
   {
     /** @namespace std::rel_ops
@@ -132,6 +132,7 @@ namespace std
       { return !(__x < __y); }
 
   } // namespace rel_ops
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_RELOPS_H */
index 1172e50..042e95f 100644 (file)
@@ -63,8 +63,8 @@
 
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   // Forward declarations of operators < and ==, needed for friend declaration.
   template<class _Key, class _Compare = std::less<_Key>,
           class _Alloc = std::allocator<_Key> >
@@ -587,6 +587,6 @@ namespace _GLIBCXX_STD
     swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y)
     { __x.swap(__y); }
 
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _SET_H */
index c3a5275..22e5660 100644 (file)
@@ -1,6 +1,6 @@
 // Stack implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -64,8 +64,8 @@
 #include <bits/concept_check.h>
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Forward declarations of operators == and <, needed for friend
   // declaration.
   template<typename _Tp, typename _Sequence = deque<_Tp> >
@@ -267,6 +267,7 @@ namespace std
     inline bool
     operator>=(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
     { return !(__x < __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STACK_H */
index 7263099..970af45 100644 (file)
@@ -63,8 +63,8 @@
 
 #include <memory>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /**
    *  @if maint
    *  This class is used in two places: stl_algo.h and ext/memory,
@@ -164,7 +164,8 @@ namespace std
          __throw_exception_again;
        }
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _TEMPBUF_H */
 
index 13088ca..ad0e68d 100644 (file)
@@ -69,8 +69,8 @@
 #include <bits/stl_function.h>
 #include <bits/cpp_type_traits.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // Red-black tree class, designed for use in implementing STL
   // associative containers (set, multiset, map, and multimap). The
   // insertion and deletion algorithms are based on those in Cormen,
@@ -1492,6 +1492,7 @@ namespace std
        return false;
       return true;
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 6b06ad0..c5748fc 100644 (file)
@@ -63,8 +63,8 @@
 
 #include <cstring>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // uninitialized_copy
   template<typename _InputIterator, typename _ForwardIterator>
     inline _ForwardIterator
@@ -392,6 +392,6 @@ namespace std
        }
     }
 
-} // namespace std
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_UNINITIALIZED_H */
index 731806b..c4107fa 100644 (file)
@@ -65,8 +65,8 @@
 #include <bits/functexcept.h>
 #include <bits/concept_check.h>
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   /**
    *  @if maint
    *  See bits/stl_deque.h's _Deque_base for an explanation.
@@ -985,6 +985,7 @@ namespace _GLIBCXX_STD
     inline void
     swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
     { __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _VECTOR_H */
index c247868..dabb9ce 100644 (file)
@@ -1,6 +1,6 @@
 // Stream iterators
 
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 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
@@ -39,8 +39,8 @@
 
 #include <debug/debug.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   /// Provides input iterator semantics for streams.
   template<typename _Tp, typename _CharT = char,
            typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
@@ -210,5 +210,7 @@ namespace std
       operator++(int)
       { return *this; }
     };
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
 #endif
index e6c54ed..b1a4876 100644 (file)
@@ -42,8 +42,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _CharT, typename _Traits>
     streamsize
     basic_streambuf<_CharT, _Traits>::
@@ -149,6 +149,7 @@ namespace std
     __copy_streambufs(basic_streambuf<wchar_t>*, basic_streambuf<wchar_t>*);
 #endif
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 0de5922..e3b5a3b 100644 (file)
@@ -1,6 +1,6 @@
 // Streambuf iterators
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -43,8 +43,8 @@
 
 // NB: Should specialize copy, find algorithms for streambuf iterators.
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   // 24.5.3 Template class istreambuf_iterator
   /// Provides input iterator semantics for streambufs.
   template<typename _CharT, typename _Traits>
@@ -254,5 +254,7 @@ namespace std
        return *this;
       }
     };
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
 #endif
index 8bb59d9..8158e85 100644 (file)
@@ -1,6 +1,6 @@
 // String support -*- 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
@@ -43,8 +43,8 @@
 
 #include <bits/c++config.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Alloc>
     class allocator;
 
@@ -64,6 +64,7 @@ namespace std
 
   typedef basic_string<wchar_t> wstring;
 #endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif // _STRINGFWD_H
index 8d73d42..62d9853 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- internal _Meta class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,8 +40,8 @@
 
 #pragma GCC system_header
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   //
   // gslice_array closure.
   //
@@ -549,10 +549,6 @@ _DEFINE_EXPR_BINARY_FUNCTION(pow)
 
 #undef _DEFINE_EXPR_BINARY_FUNCTION
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _CPP_VALARRAY_AFTER_H */
-
-// Local Variables:
-// mode:c++
-// End:
index 940d886..490384f 100644 (file)
@@ -46,8 +46,8 @@
 #include <cstring>
 #include <new>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   //
   // Helper functions on raw pointers
   //
@@ -682,7 +682,8 @@ namespace std
    _DEFINE_ARRAY_FUNCTION(>>, __shift_right)
 
 #undef _DEFINE_VALARRAY_FUNCTION
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #ifndef _GLIBCXX_EXPORT_TEMPLATE
 # include <bits/valarray_array.tcc>
index b4be2c7..f00ffb4 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- internal _Array helper class.
 
-// Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2003, 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
@@ -37,8 +37,8 @@
 #ifndef _VALARRAY_ARRAY_TCC
 #define _VALARRAY_ARRAY_TCC 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Tp>
     void
     __valarray_fill(_Array<_Tp> __a, size_t __n, _Array<bool> __m,
@@ -240,6 +240,7 @@ namespace std
          new (__q) _Tp(*__p);
        }
     }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _VALARRAY_ARRAY_TCC */
index 2f1a64f..5a294af 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- internal _Meta class.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -42,8 +42,8 @@
 
 #include <bits/slice_array.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   //
   // Implementing a loosened valarray return value is tricky.
   // First we need to meet 26.3.1/3: we should not add more than
@@ -730,10 +730,6 @@ namespace std
       _SClos (_Array<_Tp> __a, const slice& __s) : _Base (__a, __s) {}
     };
 
-} // std::
+_GLIBCXX_END_NAMESPACE
 
 #endif /* _CPP_VALARRAY_BEFORE_H */
-
-// Local Variables:
-// mode:c++
-// End:
index 9213057..f476c46 100644 (file)
@@ -61,8 +61,8 @@
 #ifndef _VECTOR_TCC
 #define _VECTOR_TCC 1
 
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
   template<typename _Tp, typename _Alloc>
     void
     vector<_Tp, _Alloc>::
@@ -490,6 +490,7 @@ namespace _GLIBCXX_STD
              }
          }
       }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _VECTOR_TCC */
index 008f706..9247398 100644 (file)
@@ -65,8 +65,8 @@
 #undef tolower
 #undef toupper
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::isalnum;
   using ::isalpha;
   using ::iscntrl;
@@ -80,6 +80,7 @@ namespace std
   using ::isxdigit;
   using ::tolower;
   using ::toupper;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 9a3e516..2ec904c 100644 (file)
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <locale.h>
 
 // Get rid of those macros defined in <locale.h> in lieu of real functions.
 #undef setlocale
 #undef localeconv
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::lconv;
   using ::setlocale;
   using ::localeconv;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 115fe47..7728faf 100644 (file)
@@ -78,9 +78,8 @@
 #undef tan
 #undef tanh
 
+_GLIBCXX_BEGIN_NAMESPACE(std)
 
-namespace std
-{
   // Forward declaration of a helper function.  This really should be
   // an `exported' forward declaration.
   template<typename _Tp> _Tp __cmath_power(_Tp, unsigned int);
@@ -435,15 +434,17 @@ namespace std
     inline typename __enable_if<double, __is_integer<_Tp>::__value>::__type
     tanh(_Tp __x)
     { return __builtin_tanh(__x); }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #if _GLIBCXX_USE_C99_MATH
 #if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
 // These are possible macros imported from C99-land. For strict
 // conformance, remove possible C99-injected names from the global
 // namespace, and sequester them in the __gnu_cxx extension namespace.
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
   template<typename _Tp>
     inline int
     __capture_fpclassify(_Tp __f) { return fpclassify(__f); }
@@ -496,7 +497,8 @@ namespace __gnu_cxx
     inline int
     __capture_isunordered(_Tp __f1, _Tp __f2)
     { return isunordered(__f1, __f2); }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 // Only undefine the C99 FP macros, if actually captured for namespace movement
 #undef fpclassify
@@ -512,62 +514,64 @@ namespace __gnu_cxx
 #undef islessgreater
 #undef isunordered
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   template<typename _Tp>
     inline int
-    fpclassify(_Tp __f) { return __gnu_cxx::__capture_fpclassify(__f); }
+    fpclassify(_Tp __f) { return ::__gnu_cxx::__capture_fpclassify(__f); }
 
   template<typename _Tp>
     inline int
-    isfinite(_Tp __f) { return __gnu_cxx::__capture_isfinite(__f); }
+    isfinite(_Tp __f) { return ::__gnu_cxx::__capture_isfinite(__f); }
 
   template<typename _Tp>
     inline int
-    isinf(_Tp __f) { return __gnu_cxx::__capture_isinf(__f); }
+    isinf(_Tp __f) { return ::__gnu_cxx::__capture_isinf(__f); }
 
   template<typename _Tp>
     inline int
-    isnan(_Tp __f) { return __gnu_cxx::__capture_isnan(__f); }
+    isnan(_Tp __f) { return ::__gnu_cxx::__capture_isnan(__f); }
 
   template<typename _Tp>
     inline int
-    isnormal(_Tp __f) { return __gnu_cxx::__capture_isnormal(__f); }
+    isnormal(_Tp __f) { return ::__gnu_cxx::__capture_isnormal(__f); }
 
   template<typename _Tp>
     inline int
-    signbit(_Tp __f) { return __gnu_cxx::__capture_signbit(__f); }
+    signbit(_Tp __f) { return ::__gnu_cxx::__capture_signbit(__f); }
 
   template<typename _Tp>
     inline int
     isgreater(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_isgreater(__f1, __f2); }
+    { return ::__gnu_cxx::__capture_isgreater(__f1, __f2); }
 
   template<typename _Tp>
     inline int
     isgreaterequal(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
+    { return ::__gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
 
   template<typename _Tp>
     inline int
     isless(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_isless(__f1, __f2); }
+    { return ::__gnu_cxx::__capture_isless(__f1, __f2); }
 
   template<typename _Tp>
     inline int
     islessequal(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_islessequal(__f1, __f2); }
+    { return ::__gnu_cxx::__capture_islessequal(__f1, __f2); }
 
   template<typename _Tp>
     inline int
     islessgreater(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_islessgreater(__f1, __f2); }
+    { return ::__gnu_cxx::__capture_islessgreater(__f1, __f2); }
 
   template<typename _Tp>
     inline int
     isunordered(_Tp __f1, _Tp __f2)
-    { return __gnu_cxx::__capture_isunordered(__f1, __f2); }
-}
+    { return ::__gnu_cxx::__capture_isunordered(__f1, __f2); }
+
+_GLIBCXX_END_NAMESPACE
+
 #endif /* _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC */
 #endif
 
index 290f2e9..5d664eb 100644 (file)
@@ -47,6 +47,7 @@
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <setjmp.h>
 
 // Get rid of those macros defined in <setjmp.h> in lieu of real functions.
 #define setjmp(env) setjmp (env)
 #endif
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::jmp_buf;
   using ::longjmp;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 0db1c11..4202b77 100644 (file)
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <signal.h>
 
 // Get rid of those macros defined in <signal.h> in lieu of real functions.
 #undef raise
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::sig_atomic_t;
   using ::signal;
   using ::raise;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index c98b5db..bbc3b33 100644 (file)
@@ -47,6 +47,7 @@
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <stdarg.h>
 
 // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
 #define va_end(ap) va_end (ap)
 #endif
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::va_list;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index f1860a7..ad529d5 100644 (file)
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <stddef.h>
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::ptrdiff_t;
   using ::size_t;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 9f5f7dd..c8109c0 100644 (file)
@@ -95,8 +95,8 @@
 #undef vprintf
 #undef vsprintf
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::FILE;
   using ::fpos_t;
 
@@ -141,7 +141,8 @@ namespace std
   using ::vfprintf;
   using ::vprintf;
   using ::vsprintf;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #if _GLIBCXX_USE_C99
 
@@ -151,8 +152,8 @@ namespace std
 #undef vsnprintf
 #undef vsscanf
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
 #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
   extern "C" int
   (snprintf)(char * restrict, size_t, const char * restrict, ...);
@@ -172,16 +173,19 @@ namespace __gnu_cxx
   using ::vsnprintf;
   using ::vsscanf;
 #endif
-}
-
-namespace std
-{
-  using __gnu_cxx::snprintf;
-  using __gnu_cxx::vfscanf;
-  using __gnu_cxx::vscanf;
-  using __gnu_cxx::vsnprintf;
-  using __gnu_cxx::vsscanf;
-}
+
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+  using ::__gnu_cxx::snprintf;
+  using ::__gnu_cxx::vfscanf;
+  using ::__gnu_cxx::vscanf;
+  using ::__gnu_cxx::vsnprintf;
+  using ::__gnu_cxx::vsscanf;
+
+_GLIBCXX_END_NAMESPACE
+
 #endif
 
 #endif
index 2139092..cc2a8cf 100644 (file)
 #define EXIT_SUCCESS 0
 #define EXIT_FAILURE 1
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   extern "C" void abort(void);
   extern "C" int atexit(void (*)());
   extern "C" void exit(int);
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #else
 
@@ -100,8 +101,8 @@ namespace std
 #undef wcstombs
 #undef wctomb
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::div_t;
   using ::ldiv_t;
 
@@ -143,7 +144,8 @@ namespace std
 
   inline ldiv_t
   div(long __i, long __j) { return ldiv(__i, __j); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
 
 #if _GLIBCXX_USE_C99
 
@@ -156,8 +158,8 @@ namespace std
 #undef strtof
 #undef strtold
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
   using ::lldiv_t;
 #endif
@@ -195,10 +197,11 @@ namespace __gnu_cxx
 #endif
   using ::strtof;
   using ::strtold;
-}
 
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
   using ::__gnu_cxx::lldiv_t;
 #endif
@@ -214,7 +217,8 @@ namespace std
   using ::__gnu_cxx::strtoll;
   using ::__gnu_cxx::strtoull;
   using ::__gnu_cxx::strtold;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif // _GLIBCXX_USE_C99
 
index 7efbf8f..a77e7c2 100644 (file)
@@ -47,8 +47,8 @@
 
 #pragma GCC system_header
 
+#include <bits/c++config.h>
 #include <cstddef>
-
 #include <string.h>
 
 // Get rid of those macros defined in <string.h> in lieu of real functions.
@@ -75,8 +75,8 @@
 #undef strerror
 #undef strlen
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::memcpy;
   using ::memmove;
   using ::strcpy;
@@ -124,6 +124,7 @@ namespace std
   inline char*
   strstr(char* __s1, const char* __s2)
   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index ef3307e..05295cf 100644 (file)
@@ -48,7 +48,6 @@
 #pragma GCC system_header
 
 #include <cstddef>
-
 #include <time.h>
 
 // Get rid of those macros defined in <time.h> in lieu of real functions.
@@ -62,8 +61,8 @@
 #undef localtime
 #undef strftime
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::clock_t;
   using ::time_t;
   using ::tm;
@@ -77,6 +76,7 @@ namespace std
   using ::gmtime;
   using ::localtime;
   using ::strftime;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #endif
index 5e3ab90..8f03a41 100644 (file)
@@ -67,10 +67,11 @@ extern "C"
 }
 #endif
 
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::mbstate_t;
-}
+
+_GLIBCXX_END_NAMESPACE
 
 // Get rid of those macros defined in <wchar.h> in lieu of real functions.
 #undef btowc
@@ -139,8 +140,9 @@ namespace std
 #undef wscanf
 
 #if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::wint_t;
 
   using ::btowc;
@@ -232,7 +234,8 @@ namespace std
   inline wchar_t*
   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
-}
+
+_GLIBCXX_END_NAMESPACE
 
 #if _GLIBCXX_USE_C99
 
@@ -240,8 +243,8 @@ namespace std
 #undef wcstoll
 #undef wcstoull
 
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
 #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
   extern "C" long double
     (wcstold)(const wchar_t * restrict, wchar_t ** restrict);
@@ -259,14 +262,17 @@ namespace __gnu_cxx
   using ::wcstoll;
   using ::wcstoull;
 #endif
-}
 
-namespace std
-{
-  using __gnu_cxx::wcstold;
-  using __gnu_cxx::wcstoll;
-  using __gnu_cxx::wcstoull;
-}
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+  using ::__gnu_cxx::wcstold;
+  using ::__gnu_cxx::wcstoll;
+  using ::__gnu_cxx::wcstoull;
+
+_GLIBCXX_END_NAMESPACE
+
 #endif
 
 #endif //_GLIBCXX_USE_WCHAR_T
index 9f297c4..ba699b7 100644 (file)
@@ -76,8 +76,9 @@
 #undef wctype
 
 #if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
   using ::wint_t;        // cwchar
 
   using ::wctype_t;
@@ -103,7 +104,9 @@ namespace std
   using ::towupper;
   using ::wctrans;
   using ::wctype;
-}
+
+_GLIBCXX_END_NAMESPACE
+
 #endif //_GLIBCXX_USE_WCHAR_T
 
 #endif
index 2bdca18..11970c6 100644 (file)
@@ -35,6 +35,8 @@
 #include <debug/safe_sequence.h>
 #include <debug/safe_iterator.h>
 
+namespace std
+{
 namespace __gnu_debug_def
 {
   template<size_t _Nb>
@@ -68,7 +70,7 @@ namespace __gnu_debug_def
        operator=(bool __x)
        {
          _GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
-                             _M_message(::__gnu_debug::__msg_bad_bitset_write)
+                             _M_message(__gnu_debug::__msg_bad_bitset_write)
                                ._M_iterator(*this));
          *static_cast<_Base_ref*>(this) = __x;
          return *this;
@@ -78,10 +80,10 @@ namespace __gnu_debug_def
        operator=(const reference& __x)
        {
          _GLIBCXX_DEBUG_VERIFY(! __x._M_singular(),
-                              _M_message(::__gnu_debug::__msg_bad_bitset_read)
+                              _M_message(__gnu_debug::__msg_bad_bitset_read)
                                ._M_iterator(__x));
          _GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
-                             _M_message(::__gnu_debug::__msg_bad_bitset_write)
+                             _M_message(__gnu_debug::__msg_bad_bitset_write)
                                ._M_iterator(*this));
          *static_cast<_Base_ref*>(this) = __x;
          return *this;
@@ -91,7 +93,7 @@ namespace __gnu_debug_def
        operator~() const
        {
          _GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
-                              _M_message(::__gnu_debug::__msg_bad_bitset_read)
+                              _M_message(__gnu_debug::__msg_bad_bitset_read)
                                ._M_iterator(*this));
          return ~(*static_cast<const _Base_ref*>(this));
        }
@@ -99,7 +101,7 @@ namespace __gnu_debug_def
        operator bool() const
        {
          _GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
-                             _M_message(::__gnu_debug::__msg_bad_bitset_read)
+                             _M_message(__gnu_debug::__msg_bad_bitset_read)
                                ._M_iterator(*this));
          return *static_cast<const _Base_ref*>(this);
        }
@@ -108,7 +110,7 @@ namespace __gnu_debug_def
        flip()
        {
          _GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
-                             _M_message(::__gnu_debug::__msg_bad_bitset_flip)
+                             _M_message(__gnu_debug::__msg_bad_bitset_flip)
                                ._M_iterator(*this));
          _Base_ref::flip();
          return *this;
@@ -317,5 +319,6 @@ namespace __gnu_debug_def
               const bitset<_Nb>& __x)
     { return __os << __x._M_base(); }
 } // namespace __gnu_debug_def
+} // namespace std
 
 #endif
index c291096..4eff05b 100644 (file)
  *  standard library algorithms.
 */
 
+
+namespace std 
+{ 
+  namespace __gnu_debug_def { } 
+  namespace __gnu_debug { using namespace __gnu_debug_def; } 
+}
+
+namespace debug = std::__gnu_debug;
+
 #ifdef _GLIBCXX_DEBUG
 
-# include <debug/macros.h>
 # include <cstdlib>
 # include <cstdio>
+# include <debug/macros.h>
 
-// Avoid the use of assert, because we're trying to keep the <cassert>
-// include out of the mix.
+namespace std
+{
 namespace __gnu_debug
 { 
+  // Avoid the use of assert, because we're trying to keep the <cassert>
+  // include out of the mix.
   inline void
   __replacement_assert(const char* __file, int __line, const char* __function,
                       const char* __condition)
@@ -57,12 +68,13 @@ namespace __gnu_debug
                __function, __condition);
     std::abort();
   }
-}
+} // namespace __gnu_debug
+} // namespace std
 
 #define _GLIBCXX_DEBUG_ASSERT(_Condition)                               \
   do {                                                                  \
     if (! (_Condition))                                                 \
-      ::__gnu_debug::__replacement_assert(__FILE__, __LINE__,           \
+      std::__gnu_debug::__replacement_assert(__FILE__, __LINE__,           \
                                   __PRETTY_FUNCTION__,                 \
                                   #_Condition);                        \
   } while (false)
index a69ce62..48cbe1a 100644 (file)
@@ -35,6 +35,8 @@
 #include <debug/safe_sequence.h>
 #include <debug/safe_iterator.h>
 
+namespace std
+{
 namespace __gnu_debug_def
 {
   template<typename _Tp, typename _Allocator = std::allocator<_Tp> >
@@ -382,5 +384,6 @@ namespace __gnu_debug_def
     swap(deque<_Tp, _Alloc>& __lhs, deque<_Tp, _Alloc>& __rhs)
     { __lhs.swap(__rhs); }
 } // namespace __gnu_debug_def
+} // namespace std
 
 #endif