ABIcheck, a vague idea of checking ABI compatibility
.
- .
+ .
C++ ABI Reference
.
- .
+ .
Intel® Compilers for Linux* -Compatibility with the GNU Compilers
.
- .
+ .
Intel® Compilers for Linux* -Compatibility with the GNU Compilers
.
- .
+ .
Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386)
.
- .
+ .
Sun Solaris 2.9 : C++ Migration Guide (document 816-2459)
.
- .
+ .
ELF Symbol Versioning
. UlrichDrepper.
- .
+ .
C++ ABI for the ARM Architecture
.
- .
+ .
Dynamic Shared Objects: Survey and Issues
.
ISO C++ J16/06-0046
. BenjaminKosnik.
- .
+ .
Versioning With Namespaces
.
ISO C++ J16/06-0083
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 4b093b1cbf4b..95e7636f5b35 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -72,11 +72,11 @@ _Alloc_traits have been removed.
__alloc to select an underlying allocator that
satisfied memory allocation requests. The selection of this
underlying allocator was not user-configurable.
-
Table B.1. Extension Allocators
Allocator (3.4)
Header (3.4)
Allocator (3.[0-3])
Header (3.[0-3])
__gnu_cxx::new_allocator<T>
ext/new_allocator.h
std::__new_alloc
memory
__gnu_cxx::malloc_allocator<T>
ext/malloc_allocator.h
std::__malloc_alloc_template<int>
memory
__gnu_cxx::debug_allocator<T>
ext/debug_allocator.h
std::debug_alloc<T>
memory
__gnu_cxx::__pool_alloc<T>
ext/pool_allocator.h
std::__default_alloc_template<bool,int>
memory
__gnu_cxx::__mt_alloc<T>
ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>
ext/bitmap_allocator.h
Releases after gcc-3.4 have continued to add to the collection
+
Table B.1. Extension Allocators
Allocator (3.4)
Header (3.4)
Allocator (3.[0-3])
Header (3.[0-3])
__gnu_cxx::new_allocator<T>
ext/new_allocator.h
std::__new_alloc
memory
__gnu_cxx::malloc_allocator<T>
ext/malloc_allocator.h
std::__malloc_alloc_template<int>
memory
__gnu_cxx::debug_allocator<T>
ext/debug_allocator.h
std::debug_alloc<T>
memory
__gnu_cxx::__pool_alloc<T>
ext/pool_allocator.h
std::__default_alloc_template<bool,int>
memory
__gnu_cxx::__mt_alloc<T>
ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>
ext/bitmap_allocator.h
Releases after gcc-3.4 have continued to add to the collection
of available allocators. All of these new allocators are
standard-style. The following table includes details, along with
the first released version of GCC that included the extension allocator.
-
Table B.2. Extension Allocators Continued
Allocator
Include
Version
__gnu_cxx::array_allocator<T>
ext/array_allocator.h
4.0.0
__gnu_cxx::throw_allocator<T>
ext/throw_allocator.h
4.2.0
+
Table B.2. Extension Allocators Continued
Allocator
Include
Version
__gnu_cxx::array_allocator<T>
ext/array_allocator.h
4.0.0
__gnu_cxx::throw_allocator<T>
ext/throw_allocator.h
4.2.0
Debug mode first appears.
Precompiled header support PCH support.
diff --git a/libstdc++-v3/doc/html/manual/backwards.html b/libstdc++-v3/doc/html/manual/backwards.html
index 4e7f6e33c98d..b0e62138d1e1 100644
--- a/libstdc++-v3/doc/html/manual/backwards.html
+++ b/libstdc++-v3/doc/html/manual/backwards.html
@@ -14,8 +14,8 @@ ISO Standard (e.g., statistical analysis). While there are a lot of
really useful things that are used by a lot of people, the Standards
Committee couldn't include everything, and so a lot of those
âobviousâ classes didn't get included.
-
Known Issues include many of the limitations of its immediate ancestor.
Portability notes and known implementation limitations are as follows.
No ios_base
At least some older implementations don't have std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit.
-
No cout in ostream.h, no cin in istream.h
+
Known Issues include many of the limitations of its immediate ancestor.
Portability notes and known implementation limitations are as follows.
No ios_base
At least some older implementations don't have std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit.
+
No cout in ostream.h, no cin in istream.h
In earlier versions of the standard,
fstream.h,
ostream.h
@@ -41,7 +41,7 @@ considered replaced and rewritten.
archived. The code is considered replaced and rewritten.
Portability notes and known implementation limitations are as follows.
-
Namespace std:: not supported
+
Namespace std:: not supported
Some care is required to support C++ compiler and or library
implementation that do not have the standard library in
namespace std.
@@ -105,7 +105,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
fi
])
-
Illegal iterator usage
+
Illegal iterator usage
The following illustrate implementation-allowed illegal iterator
use, and then correct use.
There are two functions for deleting the contents of a string:
clear and erase (the latter returns the
string).
@@ -203,12 +203,12 @@ erase(size_type __pos = 0, size_type __n = npos)
Unfortunately, clear is not implemented in this
version, so you should use erase (which is probably
faster than operator=(charT*)).
-
+
Removal of ostream::form and istream::scan
extensions
These are no longer supported. Please use stringstreams instead.
-
No basic_stringbuf, basic_stringstream
+
No basic_stringbuf, basic_stringstream
Although the ISO standard i/ostringstream-classes are
provided, (sstream), for
compatibility with older implementations the pre-ISO
@@ -296,14 +296,14 @@ any = temp;
Another example of using stringstreams is in this howto.
There is additional information in the libstdc++-v2 info files, in
particular âinfo iostreamâ.
-
Little or no wide character support
+
Little or no wide character support
Classes wstring and
char_traits<wchar_t> are
not supported.
-
No templatized iostreams
+
No templatized iostreams
Classes wfilebuf and
wstringstream are not supported.
-
Thread safety issues
+
Thread safety issues
Earlier GCC releases had a somewhat different approach to
threading configuration and proper compilation. Before GCC 3.0,
configuration of the threading model was dictated by compiler
@@ -361,7 +361,7 @@ libstdc++-v3.
of the SGI STL (version 3.3), with extensive changes.
A more formal description of the V3 goals can be found in the
official design document.
-
Portability notes and known implementation limitations are as follows.
Pre-ISO headers moved to backwards or removed
The pre-ISO C++ headers
+
Portability notes and known implementation limitations are as follows.
Pre-ISO headers moved to backwards or removed
The pre-ISO C++ headers
(iostream.h, defalloc.h etc.) are
available, unlike previous libstdc++ versions, but inclusion
generates a warning that you are using deprecated headers.
@@ -433,7 +433,7 @@ like vector.h can be replaced with using namespace std; can be put at the global
scope. This should be enough to get this code compiling, assuming the
other usage is correct.
-
Extension headers hash_map, hash_set moved to ext or backwards
At this time most of the features of the SGI STL extension have been
+
Extension headers hash_map, hash_set moved to ext or backwards
At this time most of the features of the SGI STL extension have been
replaced by standardized libraries.
In particular, the unordered_map and unordered_set containers of TR1
are suitable replacement for the non-standard hash_map and hash_set
@@ -505,7 +505,7 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
fi
])
-
No ios::nocreate/ios::noreplace.
+
No ios::nocreate/ios::noreplace.
The existence of ios::nocreate being used for
input-streams has been confirmed, most probably because the author
thought it would be more correct to specify nocreate explicitly. So
@@ -516,7 +516,7 @@ open the file for reading, check if it has been opened, and then
decide whether you want to create/replace or not. To my knowledge,
even older implementations support app, ate
and trunc (except for app ?).
-
+
No stream::attach(int fd)
Phil Edwards writes: It was considered and rejected for the ISO
@@ -539,7 +539,7 @@ No stream::attach(int fd)
For another example of this, refer to
fdstream example
by Nicolai Josuttis.
-
+
Support for C++98 dialect.
Check for complete library coverage of the C++1998/2003 standard.
@@ -607,7 +607,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
fi
])
-
+
Support for C++TR1 dialect.
Check for library coverage of the TR1 standard.
@@ -684,7 +684,7 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
fi
])
-
+
Support for C++0x dialect.
Check for baseline language coverage in the compiler for the C++0xstandard.
@@ -896,27 +896,27 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
fi
])
-
+
Container::iterator_type is not necessarily Container::value_type*
This is a change in behavior from the previous version. Now, most
iterator_type typedefs in container classes are POD
objects, not value_type pointers.
-
Bibliography
[
+
Bibliography
[
kegel41
]
Migrating to GCC 4.1
. DanKegel.
- .
[
+ .
[
kegel41
]
Building the Whole Debian Archive with GCC 4.1: A Summary
. MartinMichlmayr.
- .
Consider a block of size 64 ints. In memory, it would look like this:
(assume a 32-bit system where, size_t is a 32-bit entity).
-
Table 32.1. Bitmap Allocator Memory Map
268
0
4294967295
4294967295
Data -> Space for 64 ints
+
Table 32.1. Bitmap Allocator Memory Map
268
0
4294967295
4294967295
Data -> Space for 64 ints
The first Column(268) represents the size of the Block in bytes as
seen by the Bitmap Allocator. Internally, a global free list is
used to keep track of the free blocks used and given back by the
diff --git a/libstdc++-v3/doc/html/manual/bk01pt01ch01.html b/libstdc++-v3/doc/html/manual/bk01pt01ch01.html
index 688f019c03ac..82a2e92355dc 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt01ch01.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt01ch01.html
@@ -6101,7 +6101,7 @@ In this implementation the header names are prefixed by
This page describes the TR1 support in mainline GCC SVN, not in any particular
release.
-
Table 1.1. C++ TR1 Implementation Status
Section
Description
Done
Broken
Missing
Comments
2
General Utilities
2.1
Reference wrappers
done
Â
Â
Â
2.1.1
Additions to header <functional> synopsis
done
Â
Â
Â
2.1.2
Class template reference_wrapper
done
Â
Â
Â
2.1.2.1
reference_wrapper construct/copy/destroy
done
Â
Â
Â
2.1.2.2
reference_wrapper assignment
done
Â
Â
Â
2.1.2.3
reference_wrapper access
done
Â
Â
Â
2.1.2.4
reference_wrapper invocation
done
Â
Â
Â
2.1.2.5
reference_wrapper helper functions
done
Â
Â
Â
2.2
Smart pointers
done
Â
Â
Â
2.2.1
Additions to header <memory> synopsis
done
Â
Â
Â
2.2.2
Class bad_weak_ptr
done
Â
Â
Â
2.2.3
Class template shared_ptr
done
Â
Â
See Footnotes
2.2.3.1
shared_ptr constructors
done
Â
Â
Â
2.2.3.2
shared_ptr destructor
done
Â
Â
Â
2.2.3.3
shared_ptr assignment
done
Â
Â
Â
2.2.3.4
shared_ptr modifiers
done
Â
Â
Â
2.2.3.5
shared_ptr observers
done
Â
Â
Â
2.2.3.6
shared_ptr comparison
done
Â
Â
Â
2.2.3.7
shared_ptr I/O
done
Â
Â
Â
2.2.3.8
shared_ptr specialized algorithms
done
Â
Â
Â
2.2.3.9
shared_ptr casts
done
Â
Â
Â
2.2.3.10
get_deleter
done
Â
Â
Â
2.2.4
Class template weak_ptr
done
Â
Â
Â
2.2.4.1
weak_ptr constructors
done
Â
Â
Â
2.2.4.2
weak_ptr destructor
done
Â
Â
Â
2.2.4.3
weak_ptr assignment
done
Â
Â
Â
2.2.4.4
weak_ptr modifiers
done
Â
Â
Â
2.2.4.5
weak_ptr observers
done
Â
Â
Â
2.2.4.6
weak_ptr comparison
done
Â
Â
Â
2.2.4.7
weak_ptr specialized algorithms
done
Â
Â
Â
2.2.5
Class template enable_shared_from_this
done
Â
Â
Â
3
Function Objects
3.1
Definitions
done
Â
Â
Â
3.2
Additions to <functional> synopsis
done
Â
Â
Â
3.3
Requirements
done
Â
Â
Â
3.4
Function return types
done
Â
Â
Â
3.5
Function template mem_fn
done
Â
Â
Â
3.6
Function object binders
done
Â
Â
Â
3.6.1
Class template is_bind_expression
done
Â
Â
Â
3.6.2
Class template is_placeholder
done
Â
Â
Â
3.6.3
Function template bind
done
Â
Â
Â
3.6.4
Placeholders
done
Â
Â
Â
3.7
Polymorphic function wrappers
done
Â
Â
Â
3.7.1
Class bad_function_call
done
Â
Â
Â
3.7.1.1
bad_function_call constructor
done
Â
Â
Â
3.7.2
Class template function
done
Â
Â
Â
3.7.2.1
function construct/copy/destroy
done
Â
Â
Â
3.7.2.2
function modifiers
done
Â
Â
Â
3.7.2.3
function capacity
done
Â
Â
Â
3.7.2.4
function invocation
done
Â
Â
Â
3.7.2.5
function target access
done
Â
Â
Â
3.7.2.6
undefined operators
done
Â
Â
Â
3.7.2.7
null pointer comparison operators
done
Â
Â
Â
3.7.2.8
specialized algorithms
done
Â
Â
Â
4
Metaprogramming and type traits
4.1
Requirements
done
Â
Â
Â
4.2
Header <type_traits> synopsis
done
Â
Â
Â
4.3
Helper classes
done
Â
Â
Â
4.4
General Requirements
done
Â
Â
Â
4.5
Unary Type Traits
done
Â
Â
Â
4.5.1
Primary Type Categories
done
Â
Â
Â
4.5.2
Composite type traits
done
Â
Â
Â
4.5.3
Type properties
done
Â
Â
Â
4.6
Relationships between types
done
Â
Â
Â
4.7
Transformations between types
done
Â
Â
Â
4.7.1
Const-volatile modifications
done
Â
Â
Â
4.7.2
Reference modifications
done
Â
Â
Â
4.7.3
Array modifications
done
Â
Â
Â
4.7.4
Pointer modifications
done
Â
Â
Â
4.8
Other transformations
done
Â
Â
Â
4.9
Implementation requirements
done
Â
Â
Â
5
Numerical Facilities
5.1
Random number generation
done
Â
Â
Â
5.1.1
Requirements
done
Â
Â
Â
5.1.2
Header <random> synopsis
done
Â
Â
Â
5.1.3
Class template variate_generator
done
Â
Â
Â
5.1.4
Random number engine class templates
done
Â
Â
Â
5.1.4.1
Class template linear_congruential
done
Â
Â
Â
5.1.4.2
Class template mersenne_twister
done
Â
Â
Â
5.1.4.3
Class template subtract_with_carry
done
Â
Â
Â
5.1.4.4
Class template subtract_with_carry_01
done
Â
Â
Â
5.1.4.5
Class template discard_block
done
Â
Â
Â
5.1.4.6
Class template xor_combine
done
Â
Â
operator()() per N2079
5.1.5
Engines with predefined parameters
done
Â
Â
Â
5.1.6
Class random_device
done
Â
Â
Â
5.1.7
Random distribution class templates
done
Â
Â
Â
5.1.7.1
Class template uniform_int
done
Â
Â
Â
5.1.7.2
Class bernoulli_distribution
done
Â
Â
Â
5.1.7.3
Class template geometric_distribution
done
Â
Â
Â
5.1.7.4
Class template poisson_distribution
done
Â
Â
Â
5.1.7.5
Class template binomial_distribution
done
Â
Â
Â
5.1.7.6
Class template uniform_real
done
Â
Â
Â
5.1.7.7
Class template exponential_distribution
done
Â
Â
Â
5.1.7.8
Class template normal_distribution
done
Â
Â
Â
5.1.7.9
Class template gamma_distribution
done
Â
Â
Â
5.2
Mathematical special functions
done
Â
Â
Â
5.2.1
Additions to header <cmath> synopsis
done
Â
Â
Â
5.2.1.1
associated Laguerre polynomials
done
Â
Â
Â
5.2.1.2
associated Legendre functions
done
Â
Â
Â
5.2.1.3
beta function
done
Â
Â
Â
5.2.1.4
(complete) elliptic integral of the first kind
done
Â
Â
Â
5.2.1.5
(complete) elliptic integral of the second kind
done
Â
Â
Â
5.2.1.6
(complete) elliptic integral of the third kind
done
Â
Â
Â
5.2.1.7
confluent hypergeometric functions
done
Â
Â
Â
5.2.1.8
regular modified cylindrical Bessel functions
done
Â
Â
Â
5.2.1.9
cylindrical Bessel functions (of the first kind)
done
Â
Â
Â
5.2.1.10
irregular modified cylindrical Bessel functions
done
Â
Â
Â
5.2.1.11
cylindrical Neumann functions
done
Â
Â
Â
5.2.1.12
(incomplete) elliptic integral of the first kind
done
Â
Â
Â
5.2.1.13
(incomplete) elliptic integral of the second kind
done
Â
Â
Â
5.2.1.14
(incomplete) elliptic integral of the third kind
done
Â
Â
Â
5.2.1.15
exponential integral
done
Â
Â
Â
5.2.1.16
Hermite polynomials
done
Â
Â
Â
5.2.1.17
hypergeometric functions
done
Â
Â
Â
5.2.1.18
Laguerre polynomials
done
Â
Â
Â
5.2.1.19
Legendre polynomials
done
Â
Â
Â
5.2.1.20
Riemann zeta function
done
Â
Â
Â
5.2.1.21
spherical Bessel functions (of the first kind)
done
Â
Â
Â
5.2.1.22
spherical associated Legendre functions
done
Â
Â
Â
5.2.1.23
spherical Neumann functions
done
Â
Â
Â
5.2.2
Additions to header <math.h> synopsis
done
Â
Â
Â
6
Containers
6.1
Tuple types
done
Â
Â
Â
6.1.1
Header <tuple> synopsis
done
Â
Â
Â
6.1.2
Additions to header <utility> synopsis
done
Â
Â
Â
6.1.3
Class template tuple
done
Â
Â
Â
6.1.3.1
Construction
done
Â
Â
Â
6.1.3.2
Tuple creation functions
done
Â
Â
Â
6.1.3.3
Tuple helper classes
done
Â
Â
Â
6.1.3.4
Element access
done
Â
Â
Â
6.1.3.5
Relational operators
done
Â
Â
Â
6.1.4
Pairs
done
Â
Â
Â
6.2
Fixed size array
done
Â
Â
Â
6.2.1
Header <array> synopsis
done
Â
Â
Â
6.2.2
Class template array
done
Â
Â
Â
6.2.2.1
array constructors, copy, and assignment
done
Â
Â
Â
6.2.2.2
array specialized algorithms
done
Â
Â
Â
6.2.2.3
array size
done
Â
Â
Â
6.2.2.4
Zero sized arrays
done
Â
Â
Â
6.2.2.5
Tuple interface to class template array
done
Â
Â
Â
6.3
Unordered associative containers
done
Â
Â
Â
6.3.1
Unordered associative container requirements
done
Â
Â
Â
6.3.1.1
Exception safety guarantees
done
Â
Â
Â
6.3.2
Additions to header <functional> synopsis
done
Â
Â
Â
6.3.3
Class template hash
done
Â
Â
Â
6.3.4
Unordered associative container classes
done
Â
Â
Â
6.3.4.1
Header <unordered_set> synopsis
done
Â
Â
Â
6.3.4.2
Header <unordered_map> synopsis
done
Â
Â
Â
6.3.4.3
Class template unordered_set
done
Â
Â
Â
6.3.4.3.1
unordered_set constructors
done
Â
Â
Â
6.3.4.3.2
unordered_set swap
done
Â
Â
Â
6.3.4.4
Class template unordered_map
done
Â
Â
Â
6.3.4.4.1
unordered_map constructors
done
Â
Â
Â
6.3.4.4.2
unordered_map element access
done
Â
Â
Â
6.3.4.4.3
unordered_map swap
done
Â
Â
Â
6.3.4.5
Class template unordered_multiset
done
Â
Â
Â
6.3.4.5.1
unordered_multiset constructors
done
Â
Â
Â
6.3.4.5.2
unordered_multiset swap
done
Â
Â
Â
6.3.4.6
Class template unordered_multimap
done
Â
Â
Â
6.3.4.6.1
unordered_multimap constructors
done
Â
Â
Â
6.3.4.6.2
unordered_multimap swap
done
Â
Â
Â
7
Regular Expressions
7.1
Definitions
Â
Â
missing
Â
7.2
Requirements
Â
Â
missing
Â
7.3
Regular expressions summary
Â
Â
missing
Â
7.4
Header <regex> synopsis
Â
Â
missing
Â
7.5
Namespace tr1::regex_constants
Â
Â
missing
Â
7.5.1
Bitmask Type syntax_option_type
Â
Â
missing
Â
7.5.2
Bitmask Type regex_constants::match_flag_type
Â
Â
missing
Â
7.5.3
Implementation defined error_type
Â
Â
missing
Â
7.6
Class regex_error
Â
Â
missing
Â
7.7
Class template regex_traits
Â
Â
missing
Â
7.8
Class template basic_regex
Â
Â
missing
Â
7.8.1
basic_regex constants
Â
Â
missing
Â
7.8.2
basic_regex constructors
Â
Â
missing
Â
7.8.3
basic_regex assign
Â
Â
missing
Â
7.8.4
basic_regex constant operations
Â
Â
missing
Â
7.8.5
basic_regex locale
Â
Â
missing
Â
7.8.6
basic_regex swap
Â
Â
missing
Â
7.8.7
basic_regex non-member functions
Â
Â
missing
Â
7.8.7.1
basic_regex non-member swap
Â
Â
missing
Â
7.9
Class template sub_match
Â
Â
missing
Â
7.9.1
sub_match members
Â
Â
missing
Â
7.9.2
sub_match non-member operators
Â
Â
missing
Â
7.10
Class template match_results
Â
Â
missing
Â
7.10.1
match_results constructors
Â
Â
missing
Â
7.10.2
match_results size
Â
Â
missing
Â
7.10.3
match_results element access
Â
Â
missing
Â
7.10.4
match_results formatting
Â
Â
missing
Â
7.10.5
match_results allocator
Â
Â
missing
Â
7.10.6
match_results swap
Â
Â
missing
Â
7.11
Regular expression algorithms
Â
Â
missing
Â
7.11.1
exceptions
Â
Â
missing
Â
7.11.2
regex_match
Â
Â
missing
Â
7.11.3
regex_search
Â
Â
missing
Â
7.11.4
regex_replace
Â
Â
missing
Â
7.12
Regular expression Iterators
Â
Â
missing
Â
7.12.1
Class template regex_iterator
Â
Â
missing
Â
7.12.1.1
regex_iterator constructors
Â
Â
missing
Â
7.12.1.2
regex_iterator comparisons
Â
Â
missing
Â
7.12.1.3
regex_iterator dereference
Â
Â
missing
Â
7.12.1.4
regex_iterator increment
Â
Â
missing
Â
7.12.2
Class template regex_token_iterator
Â
Â
missing
Â
7.12.2.1
regex_token_iterator constructors
Â
Â
missing
Â
7.12.2.2
regex_token_iterator comparisons
Â
Â
missing
Â
7.12.2.3
regex_token_iterator dereference
Â
Â
missing
Â
7.12.2.4
regex_token_iterator increment
Â
Â
missing
Â
7.13
Modified ECMAScript regular expression grammar
Â
Â
missing
Â
8
C Compatibility
8.1
Additions to header <complex>
done
Â
Â
Â
8.1.1
Synopsis
done
Â
Â
Â
8.1.2
Function acos
done
Â
Â
Â
8.1.3
Function asin
done
Â
Â
Â
8.1.4
Function atan
done
Â
Â
Â
8.1.5
Function acosh
done
Â
Â
Â
8.1.6
Function asinh
done
Â
Â
Â
8.1.7
Function atanh
done
Â
Â
Â
8.1.8
Function fabs
done
Â
Â
Â
8.1.9
Additional Overloads
done
Â
Â
Â
8.2
Header <ccomplex>
Â
Â
missing
DR 551
8.3
Header <complex.h>
Â
Â
missing
DR 551
8.4
Additions to header <cctype>
done
Â
Â
Â
8.4.1
Synopsis
done
Â
Â
Â
8.4.2
Function isblank
done
Â
Â
Â
8.5
Additions to header <ctype.h>
done
Â
Â
Â
8.6
Header <cfenv>
done
Â
Â
Â
8.6.1
Synopsis
done
Â
Â
Â
8.6.2
Definitions
done
Â
Â
Â
8.7
Header <fenv.h>
done
Â
Â
Â
8.8
Additions to header <cfloat>
done
Â
Â
Â
8.9
Additions to header <float.h>
done
Â
Â
Â
8.10
Additions to header <ios>
Â
Â
missing
Â
8.10.1
Synopsis
Â
Â
missing
Â
8.10.2
Function hexfloat
Â
Â
missing
Â
8.11
Header <cinttypes>
done
Â
Â
Â
8.11.1
Synopsis
done
Â
Â
DR 557
8.11.2
Definitions
done
Â
Â
Â
8.12
Header <inttypes.h>
done
Â
Â
Â
8.13
Additions to header <climits>
done
Â
Â
Â
8.14
Additions to header <limits.h>
done
Â
Â
Â
8.15
Additions to header <locale>
Â
Â
missing
Â
8.16
Additions to header <cmath>
done
Â
Â
Â
8.16.1
Synopsis
done
Â
Â
Â
8.16.2
Definitions
done
Â
Â
Â
8.16.3
Function template definitions
done
Â
Â
Â
8.16.4
Additional overloads
done
Â
Â
DR 568; DR 550
8.17
Additions to header <math.h>
done
Â
Â
Â
8.18
Additions to header <cstdarg>
done
Â
Â
Â
8.19
Additions to header <stdarg.h>
done
Â
Â
Â
8.20
The header <cstdbool>
done
Â
Â
Â
8.21
The header <stdbool.h>
done
Â
Â
Â
8.22
The header <cstdint>
done
Â
Â
Â
8.22.1
Synopsis
done
Â
Â
Â
8.22.2
Definitions
done
Â
Â
Â
8.23
The header <stdint.h>
done
Â
Â
Â
8.24
Additions to header <cstdio>
done
Â
Â
Â
8.24.1
Synopsis
done
Â
Â
Â
8.24.2
Definitions
done
Â
Â
Â
8.24.3
Additional format specifiers
done
Â
Â
C library responsibility
8.24.4
Additions to header <stdio.h>
done
Â
Â
Â
8.25
Additions to header <cstdlib>
done
Â
Â
Â
8.25.1
Synopsis
done
Â
Â
Â
8.25.2
Definitions
done
Â
Â
Â
8.25.3
Function abs
done
Â
Â
Â
8.25.4
Function div
done
Â
Â
Â
8.26
Additions to header <stdlib.h>
done
Â
Â
Â
8.27
Header <ctgmath>
done
Â
Â
DR 551
8.28
Header <tgmath.h>
done
Â
Â
DR 551
8.29
Additions to header <ctime>
done
Â
Â
C library responsibility
8.30
Additions to header <cwchar>
done
Â
Â
Â
8.30.1
Synopsis
done
Â
Â
Â
8.30.2
Definitions
done
Â
Â
Â
8.30.3
Additional wide format specifiers
done
Â
Â
C library responsibility
8.31
Additions to header <wchar.h>
done
Â
Â
Â
8.32
Additions to header <cwctype>
done
Â
Â
Â
8.32.1
Synopsis
done
Â
Â
Â
8.32.2
Function iswblank
done
Â
Â
Â
8.33
Additions to header <wctype.h>
done
Â
Â
Â
+
Table 1.1. C++ TR1 Implementation Status
Section
Description
Done
Broken
Missing
Comments
2
General Utilities
2.1
Reference wrappers
done
Â
Â
Â
2.1.1
Additions to header <functional> synopsis
done
Â
Â
Â
2.1.2
Class template reference_wrapper
done
Â
Â
Â
2.1.2.1
reference_wrapper construct/copy/destroy
done
Â
Â
Â
2.1.2.2
reference_wrapper assignment
done
Â
Â
Â
2.1.2.3
reference_wrapper access
done
Â
Â
Â
2.1.2.4
reference_wrapper invocation
done
Â
Â
Â
2.1.2.5
reference_wrapper helper functions
done
Â
Â
Â
2.2
Smart pointers
done
Â
Â
Â
2.2.1
Additions to header <memory> synopsis
done
Â
Â
Â
2.2.2
Class bad_weak_ptr
done
Â
Â
Â
2.2.3
Class template shared_ptr
done
Â
Â
See Footnotes
2.2.3.1
shared_ptr constructors
done
Â
Â
Â
2.2.3.2
shared_ptr destructor
done
Â
Â
Â
2.2.3.3
shared_ptr assignment
done
Â
Â
Â
2.2.3.4
shared_ptr modifiers
done
Â
Â
Â
2.2.3.5
shared_ptr observers
done
Â
Â
Â
2.2.3.6
shared_ptr comparison
done
Â
Â
Â
2.2.3.7
shared_ptr I/O
done
Â
Â
Â
2.2.3.8
shared_ptr specialized algorithms
done
Â
Â
Â
2.2.3.9
shared_ptr casts
done
Â
Â
Â
2.2.3.10
get_deleter
done
Â
Â
Â
2.2.4
Class template weak_ptr
done
Â
Â
Â
2.2.4.1
weak_ptr constructors
done
Â
Â
Â
2.2.4.2
weak_ptr destructor
done
Â
Â
Â
2.2.4.3
weak_ptr assignment
done
Â
Â
Â
2.2.4.4
weak_ptr modifiers
done
Â
Â
Â
2.2.4.5
weak_ptr observers
done
Â
Â
Â
2.2.4.6
weak_ptr comparison
done
Â
Â
Â
2.2.4.7
weak_ptr specialized algorithms
done
Â
Â
Â
2.2.5
Class template enable_shared_from_this
done
Â
Â
Â
3
Function Objects
3.1
Definitions
done
Â
Â
Â
3.2
Additions to <functional> synopsis
done
Â
Â
Â
3.3
Requirements
done
Â
Â
Â
3.4
Function return types
done
Â
Â
Â
3.5
Function template mem_fn
done
Â
Â
Â
3.6
Function object binders
done
Â
Â
Â
3.6.1
Class template is_bind_expression
done
Â
Â
Â
3.6.2
Class template is_placeholder
done
Â
Â
Â
3.6.3
Function template bind
done
Â
Â
Â
3.6.4
Placeholders
done
Â
Â
Â
3.7
Polymorphic function wrappers
done
Â
Â
Â
3.7.1
Class bad_function_call
done
Â
Â
Â
3.7.1.1
bad_function_call constructor
done
Â
Â
Â
3.7.2
Class template function
done
Â
Â
Â
3.7.2.1
function construct/copy/destroy
done
Â
Â
Â
3.7.2.2
function modifiers
done
Â
Â
Â
3.7.2.3
function capacity
done
Â
Â
Â
3.7.2.4
function invocation
done
Â
Â
Â
3.7.2.5
function target access
done
Â
Â
Â
3.7.2.6
undefined operators
done
Â
Â
Â
3.7.2.7
null pointer comparison operators
done
Â
Â
Â
3.7.2.8
specialized algorithms
done
Â
Â
Â
4
Metaprogramming and type traits
4.1
Requirements
done
Â
Â
Â
4.2
Header <type_traits> synopsis
done
Â
Â
Â
4.3
Helper classes
done
Â
Â
Â
4.4
General Requirements
done
Â
Â
Â
4.5
Unary Type Traits
done
Â
Â
Â
4.5.1
Primary Type Categories
done
Â
Â
Â
4.5.2
Composite type traits
done
Â
Â
Â
4.5.3
Type properties
done
Â
Â
Â
4.6
Relationships between types
done
Â
Â
Â
4.7
Transformations between types
done
Â
Â
Â
4.7.1
Const-volatile modifications
done
Â
Â
Â
4.7.2
Reference modifications
done
Â
Â
Â
4.7.3
Array modifications
done
Â
Â
Â
4.7.4
Pointer modifications
done
Â
Â
Â
4.8
Other transformations
done
Â
Â
Â
4.9
Implementation requirements
done
Â
Â
Â
5
Numerical Facilities
5.1
Random number generation
done
Â
Â
Â
5.1.1
Requirements
done
Â
Â
Â
5.1.2
Header <random> synopsis
done
Â
Â
Â
5.1.3
Class template variate_generator
done
Â
Â
Â
5.1.4
Random number engine class templates
done
Â
Â
Â
5.1.4.1
Class template linear_congruential
done
Â
Â
Â
5.1.4.2
Class template mersenne_twister
done
Â
Â
Â
5.1.4.3
Class template subtract_with_carry
done
Â
Â
Â
5.1.4.4
Class template subtract_with_carry_01
done
Â
Â
Â
5.1.4.5
Class template discard_block
done
Â
Â
Â
5.1.4.6
Class template xor_combine
done
Â
Â
operator()() per N2079
5.1.5
Engines with predefined parameters
done
Â
Â
Â
5.1.6
Class random_device
done
Â
Â
Â
5.1.7
Random distribution class templates
done
Â
Â
Â
5.1.7.1
Class template uniform_int
done
Â
Â
Â
5.1.7.2
Class bernoulli_distribution
done
Â
Â
Â
5.1.7.3
Class template geometric_distribution
done
Â
Â
Â
5.1.7.4
Class template poisson_distribution
done
Â
Â
Â
5.1.7.5
Class template binomial_distribution
done
Â
Â
Â
5.1.7.6
Class template uniform_real
done
Â
Â
Â
5.1.7.7
Class template exponential_distribution
done
Â
Â
Â
5.1.7.8
Class template normal_distribution
done
Â
Â
Â
5.1.7.9
Class template gamma_distribution
done
Â
Â
Â
5.2
Mathematical special functions
done
Â
Â
Â
5.2.1
Additions to header <cmath> synopsis
done
Â
Â
Â
5.2.1.1
associated Laguerre polynomials
done
Â
Â
Â
5.2.1.2
associated Legendre functions
done
Â
Â
Â
5.2.1.3
beta function
done
Â
Â
Â
5.2.1.4
(complete) elliptic integral of the first kind
done
Â
Â
Â
5.2.1.5
(complete) elliptic integral of the second kind
done
Â
Â
Â
5.2.1.6
(complete) elliptic integral of the third kind
done
Â
Â
Â
5.2.1.7
confluent hypergeometric functions
done
Â
Â
Â
5.2.1.8
regular modified cylindrical Bessel functions
done
Â
Â
Â
5.2.1.9
cylindrical Bessel functions (of the first kind)
done
Â
Â
Â
5.2.1.10
irregular modified cylindrical Bessel functions
done
Â
Â
Â
5.2.1.11
cylindrical Neumann functions
done
Â
Â
Â
5.2.1.12
(incomplete) elliptic integral of the first kind
done
Â
Â
Â
5.2.1.13
(incomplete) elliptic integral of the second kind
done
Â
Â
Â
5.2.1.14
(incomplete) elliptic integral of the third kind
done
Â
Â
Â
5.2.1.15
exponential integral
done
Â
Â
Â
5.2.1.16
Hermite polynomials
done
Â
Â
Â
5.2.1.17
hypergeometric functions
done
Â
Â
Â
5.2.1.18
Laguerre polynomials
done
Â
Â
Â
5.2.1.19
Legendre polynomials
done
Â
Â
Â
5.2.1.20
Riemann zeta function
done
Â
Â
Â
5.2.1.21
spherical Bessel functions (of the first kind)
done
Â
Â
Â
5.2.1.22
spherical associated Legendre functions
done
Â
Â
Â
5.2.1.23
spherical Neumann functions
done
Â
Â
Â
5.2.2
Additions to header <math.h> synopsis
done
Â
Â
Â
6
Containers
6.1
Tuple types
done
Â
Â
Â
6.1.1
Header <tuple> synopsis
done
Â
Â
Â
6.1.2
Additions to header <utility> synopsis
done
Â
Â
Â
6.1.3
Class template tuple
done
Â
Â
Â
6.1.3.1
Construction
done
Â
Â
Â
6.1.3.2
Tuple creation functions
done
Â
Â
Â
6.1.3.3
Tuple helper classes
done
Â
Â
Â
6.1.3.4
Element access
done
Â
Â
Â
6.1.3.5
Relational operators
done
Â
Â
Â
6.1.4
Pairs
done
Â
Â
Â
6.2
Fixed size array
done
Â
Â
Â
6.2.1
Header <array> synopsis
done
Â
Â
Â
6.2.2
Class template array
done
Â
Â
Â
6.2.2.1
array constructors, copy, and assignment
done
Â
Â
Â
6.2.2.2
array specialized algorithms
done
Â
Â
Â
6.2.2.3
array size
done
Â
Â
Â
6.2.2.4
Zero sized arrays
done
Â
Â
Â
6.2.2.5
Tuple interface to class template array
done
Â
Â
Â
6.3
Unordered associative containers
done
Â
Â
Â
6.3.1
Unordered associative container requirements
done
Â
Â
Â
6.3.1.1
Exception safety guarantees
done
Â
Â
Â
6.3.2
Additions to header <functional> synopsis
done
Â
Â
Â
6.3.3
Class template hash
done
Â
Â
Â
6.3.4
Unordered associative container classes
done
Â
Â
Â
6.3.4.1
Header <unordered_set> synopsis
done
Â
Â
Â
6.3.4.2
Header <unordered_map> synopsis
done
Â
Â
Â
6.3.4.3
Class template unordered_set
done
Â
Â
Â
6.3.4.3.1
unordered_set constructors
done
Â
Â
Â
6.3.4.3.2
unordered_set swap
done
Â
Â
Â
6.3.4.4
Class template unordered_map
done
Â
Â
Â
6.3.4.4.1
unordered_map constructors
done
Â
Â
Â
6.3.4.4.2
unordered_map element access
done
Â
Â
Â
6.3.4.4.3
unordered_map swap
done
Â
Â
Â
6.3.4.5
Class template unordered_multiset
done
Â
Â
Â
6.3.4.5.1
unordered_multiset constructors
done
Â
Â
Â
6.3.4.5.2
unordered_multiset swap
done
Â
Â
Â
6.3.4.6
Class template unordered_multimap
done
Â
Â
Â
6.3.4.6.1
unordered_multimap constructors
done
Â
Â
Â
6.3.4.6.2
unordered_multimap swap
done
Â
Â
Â
7
Regular Expressions
7.1
Definitions
Â
Â
missing
Â
7.2
Requirements
Â
Â
missing
Â
7.3
Regular expressions summary
Â
Â
missing
Â
7.4
Header <regex> synopsis
Â
Â
missing
Â
7.5
Namespace tr1::regex_constants
Â
Â
missing
Â
7.5.1
Bitmask Type syntax_option_type
Â
Â
missing
Â
7.5.2
Bitmask Type regex_constants::match_flag_type
Â
Â
missing
Â
7.5.3
Implementation defined error_type
Â
Â
missing
Â
7.6
Class regex_error
Â
Â
missing
Â
7.7
Class template regex_traits
Â
Â
missing
Â
7.8
Class template basic_regex
Â
Â
missing
Â
7.8.1
basic_regex constants
Â
Â
missing
Â
7.8.2
basic_regex constructors
Â
Â
missing
Â
7.8.3
basic_regex assign
Â
Â
missing
Â
7.8.4
basic_regex constant operations
Â
Â
missing
Â
7.8.5
basic_regex locale
Â
Â
missing
Â
7.8.6
basic_regex swap
Â
Â
missing
Â
7.8.7
basic_regex non-member functions
Â
Â
missing
Â
7.8.7.1
basic_regex non-member swap
Â
Â
missing
Â
7.9
Class template sub_match
Â
Â
missing
Â
7.9.1
sub_match members
Â
Â
missing
Â
7.9.2
sub_match non-member operators
Â
Â
missing
Â
7.10
Class template match_results
Â
Â
missing
Â
7.10.1
match_results constructors
Â
Â
missing
Â
7.10.2
match_results size
Â
Â
missing
Â
7.10.3
match_results element access
Â
Â
missing
Â
7.10.4
match_results formatting
Â
Â
missing
Â
7.10.5
match_results allocator
Â
Â
missing
Â
7.10.6
match_results swap
Â
Â
missing
Â
7.11
Regular expression algorithms
Â
Â
missing
Â
7.11.1
exceptions
Â
Â
missing
Â
7.11.2
regex_match
Â
Â
missing
Â
7.11.3
regex_search
Â
Â
missing
Â
7.11.4
regex_replace
Â
Â
missing
Â
7.12
Regular expression Iterators
Â
Â
missing
Â
7.12.1
Class template regex_iterator
Â
Â
missing
Â
7.12.1.1
regex_iterator constructors
Â
Â
missing
Â
7.12.1.2
regex_iterator comparisons
Â
Â
missing
Â
7.12.1.3
regex_iterator dereference
Â
Â
missing
Â
7.12.1.4
regex_iterator increment
Â
Â
missing
Â
7.12.2
Class template regex_token_iterator
Â
Â
missing
Â
7.12.2.1
regex_token_iterator constructors
Â
Â
missing
Â
7.12.2.2
regex_token_iterator comparisons
Â
Â
missing
Â
7.12.2.3
regex_token_iterator dereference
Â
Â
missing
Â
7.12.2.4
regex_token_iterator increment
Â
Â
missing
Â
7.13
Modified ECMAScript regular expression grammar
Â
Â
missing
Â
8
C Compatibility
8.1
Additions to header <complex>
done
Â
Â
Â
8.1.1
Synopsis
done
Â
Â
Â
8.1.2
Function acos
done
Â
Â
Â
8.1.3
Function asin
done
Â
Â
Â
8.1.4
Function atan
done
Â
Â
Â
8.1.5
Function acosh
done
Â
Â
Â
8.1.6
Function asinh
done
Â
Â
Â
8.1.7
Function atanh
done
Â
Â
Â
8.1.8
Function fabs
done
Â
Â
Â
8.1.9
Additional Overloads
done
Â
Â
Â
8.2
Header <ccomplex>
Â
Â
missing
DR 551
8.3
Header <complex.h>
Â
Â
missing
DR 551
8.4
Additions to header <cctype>
done
Â
Â
Â
8.4.1
Synopsis
done
Â
Â
Â
8.4.2
Function isblank
done
Â
Â
Â
8.5
Additions to header <ctype.h>
done
Â
Â
Â
8.6
Header <cfenv>
done
Â
Â
Â
8.6.1
Synopsis
done
Â
Â
Â
8.6.2
Definitions
done
Â
Â
Â
8.7
Header <fenv.h>
done
Â
Â
Â
8.8
Additions to header <cfloat>
done
Â
Â
Â
8.9
Additions to header <float.h>
done
Â
Â
Â
8.10
Additions to header <ios>
Â
Â
missing
Â
8.10.1
Synopsis
Â
Â
missing
Â
8.10.2
Function hexfloat
Â
Â
missing
Â
8.11
Header <cinttypes>
done
Â
Â
Â
8.11.1
Synopsis
done
Â
Â
DR 557
8.11.2
Definitions
done
Â
Â
Â
8.12
Header <inttypes.h>
done
Â
Â
Â
8.13
Additions to header <climits>
done
Â
Â
Â
8.14
Additions to header <limits.h>
done
Â
Â
Â
8.15
Additions to header <locale>
Â
Â
missing
Â
8.16
Additions to header <cmath>
done
Â
Â
Â
8.16.1
Synopsis
done
Â
Â
Â
8.16.2
Definitions
done
Â
Â
Â
8.16.3
Function template definitions
done
Â
Â
Â
8.16.4
Additional overloads
done
Â
Â
DR 568; DR 550
8.17
Additions to header <math.h>
done
Â
Â
Â
8.18
Additions to header <cstdarg>
done
Â
Â
Â
8.19
Additions to header <stdarg.h>
done
Â
Â
Â
8.20
The header <cstdbool>
done
Â
Â
Â
8.21
The header <stdbool.h>
done
Â
Â
Â
8.22
The header <cstdint>
done
Â
Â
Â
8.22.1
Synopsis
done
Â
Â
Â
8.22.2
Definitions
done
Â
Â
Â
8.23
The header <stdint.h>
done
Â
Â
Â
8.24
Additions to header <cstdio>
done
Â
Â
Â
8.24.1
Synopsis
done
Â
Â
Â
8.24.2
Definitions
done
Â
Â
Â
8.24.3
Additional format specifiers
done
Â
Â
C library responsibility
8.24.4
Additions to header <stdio.h>
done
Â
Â
Â
8.25
Additions to header <cstdlib>
done
Â
Â
Â
8.25.1
Synopsis
done
Â
Â
Â
8.25.2
Definitions
done
Â
Â
Â
8.25.3
Function abs
done
Â
Â
Â
8.25.4
Function div
done
Â
Â
Â
8.26
Additions to header <stdlib.h>
done
Â
Â
Â
8.27
Header <ctgmath>
done
Â
Â
DR 551
8.28
Header <tgmath.h>
done
Â
Â
DR 551
8.29
Additions to header <ctime>
done
Â
Â
C library responsibility
8.30
Additions to header <cwchar>
done
Â
Â
Â
8.30.1
Synopsis
done
Â
Â
Â
8.30.2
Definitions
done
Â
Â
Â
8.30.3
Additional wide format specifiers
done
Â
Â
C library responsibility
8.31
Additions to header <wchar.h>
done
Â
Â
Â
8.32
Additions to header <cwctype>
done
Â
Â
Â
8.32.1
Synopsis
done
Â
Â
Â
8.32.2
Function iswblank
done
Â
Â
Â
8.33
Additions to header <wctype.h>
done
Â
Â
Â
Footnotes
The shared_ptr implementation uses some code from the
@@ -6120,7 +6120,7 @@ presence of the required flag.
This page describes the C++0x support in mainline GCC SVN, not in any
particular release.
-
- Here are some of the non-obvious options to libstdc++'s configure.
- Keep in mind that
-
- they
- all have opposite forms as well
- (enable/disable and with/without). The defaults are for current
- development sources, which may be different than those for
- released versions.
-
The canonical way to find out the configure options that are
- available for a given set of libstdc++ sources is to go to the
- source directory and then type: ./configure --help
-
--enable-multilib[default]
This is part of the generic multilib support for building cross
- compilers. As such, targets like "powerpc-elf" will have
- libstdc++ built many different ways: "-msoft-float"
- and not, etc. A different libstdc++ will be built for each of
- the different multilib versions. This option is on by default.
-
--enable-sjlj-exceptions
Forces old, set-jump/long-jump exception handling model. If
- at all possible, the new, frame unwinding exception handling routines
- should be used instead, as they significantly reduce both
- runtime memory usage and executable size. This option can
- change the library ABI.
-
--enable-version-specific-runtime-libs
Specify that run-time libraries should be installed in the
- compiler-specific subdirectory (i.e.,
- ${libdir}/gcc-lib/${target_alias}/${gcc_version})
- instead of ${libdir}. This option is useful if you
- intend to use several versions of gcc in parallel. In addition,
- libstdc++'s include files will be installed in
- ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++,
- unless you also specify
- --with-gxx-include-dir=dirname during configuration.
-
--with-gxx-include-dir=<include-files dir>
Adds support for named libstdc++ include directory. For instance,
- the following puts all the libstdc++ headers into a directory
- called "2.97-20001008" instead of the usual
- "c++/(version)".
-
This is an abbreviated form of '--enable-cstdio=stdio'
- (described next). This option can change the library ABI.
-
--enable-cstdio=OPTION
Select a target-specific I/O package. At the moment, the only
- choice is to use 'stdio', a generic "C" abstraction.
- The default is 'stdio'.
-
--enable-clocale
This is an abbreviated form of '--enable-clocale=generic'
- (described next). This option can change the library ABI.
-
--enable-clocale=OPTION
Select a target-specific underlying locale package. The
- choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix
- (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets,
- 'gnu' to specify a model based on functionality from the GNU C
- library (langinfo/iconv/gettext) (from glibc, the GNU C
- library), or 'generic' to use a generic "C"
- abstraction which consists of "C" locale info.
-
As part of the configuration process, the "C" library is
- probed both for sufficient vintage, and installed locale
- data. If either of these elements are not present, the C++
- locale model default to 'generic.' On glibc-based systems of
- version 2.2.5 and above with installed locale files, 'gnu' is
- automatically selected.
-
--enable-libstdcxx-allocator
This is an abbreviated form of
- '--enable-libstdcxx-allocator=auto' (described
- next). This option can change the library ABI.
-
--enable-libstdcxx-allocator=OPTION
Select a target-specific underlying std::allocator. The
- choices are 'new' to specify a wrapper for new, 'malloc' to
- specify a wrapper for malloc, 'mt' for a fixed power of two allocator
- (documented under extensions),
- 'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
- This option can change the library ABI.
-
--enable-cheaders=OPTION
This allows the user to define the approach taken for C header
- compatibility with C++. Options are c, c_std, and c_global.
- These correspond to the source directory's include/c,
- include/c_std, and include/c_global, and may also include
- include/c_compatibility. The default is c_global.
-
--enable-threads
This is an abbreviated form of '--enable-threads=yes'
- (described next). This option can change the library ABI.
-
Build separate debug libraries in addition to what is normally built.
- By default, the debug libraries are compiled with
- CXXFLAGS='-g3 -O0'
- , are installed in ${libdir}/debug, and have the
- same names and versioning information as the non-debug
- libraries. This option is off by default.
-
Note this make command, executed in
- the build directory, will do much the same thing, without the
- configuration difference and without building everything twice:
- make CXXFLAGS='-g3 -O0' all
-
--enable-libstdcxx-debug-flags=FLAGS
This option is only valid when --enable-debug
- is also specified, and applies to the debug builds only. With
- this option, you can pass a specific string of flags to the
- compiler to use when building the debug versions of libstdc++.
- FLAGS is a quoted string of options, like
-
With this option, you can pass a string of -f (functionality)
- flags to the compiler to use when building libstdc++. This
- option can change the library ABI. FLAGS is a quoted string of
- options, like
-
- Note that the flags don't necessarily have to all be -f flags,
- as shown, but usually those are the ones that will make sense
- for experimentation and configure-time overriding.
-
The advantage of --enable-cxx-flags over setting CXXFLAGS in
- the 'make' environment is that, if files are automatically
- rebuilt, the same flags will be used when compiling those files
- as well, so that everything matches.
-
and opposite forms (-fno-) of the same. Tell us (the libstdc++
- mailing list) if you discover more!
-
--enable-c99
The "long long" type was introduced in C99, along
- with many other functions for wide characters, and math
- classification macros, etc. If enabled, all C99 functions not
- specified by the C++ standard will be put into namespace
- __gnu_cxx, and then all these names will
- be injected into namespace std, so that C99 functions can be
- used "as if" they were in the C++ standard (as they
- will eventually be in some future revision of the standard,
- without a doubt). By default, C99 support is on, assuming the
- configure probes find all the necessary functions and bits
- necessary. This option can change the library ABI.
-
--enable-wchar_t[default]
Template specializations for the "wchar_t" type are
- required for wide character conversion support. Disabling
- wide character specializations may be expedient for initial
- porting efforts, but builds only a subset of what is required by
- ISO, and is not recommended. By default, this option is on.
- This option can change the library ABI.
-
--enable-long-long
The "long long" type was introduced in C99. It is
- provided as a GNU extension to C++98 in g++. This flag builds
- support for "long long" into the library (specialized
- templates and the like for iostreams). This option is on by default:
- if enabled, users will have to either use the new-style "C"
- headers by default (i.e., <cmath> not <math.h>)
- or add appropriate compile-time flags to all compile lines to
- allow "C" visibility of this feature (on GNU/Linux,
- the flag is -D_ISOC99_SOURCE, which is added automatically via
- CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE).
- This option can change the library ABI.
-
--enable-fully-dynamic-string
This option enables a special version of basic_string avoiding
- the optimization that allocates empty objects in static memory.
- Mostly useful together with shared memory allocators, see PR
- libstdc++/16612 for details.
-
--enable-concept-checks
This turns on additional compile-time checks for instantiated
- library templates, in the form of specialized templates,
- described here. They
- can help users discover when they break the rules of the STL, before
- their programs run.
-
--enable-symvers[=style]
In 3.1 and later, tries to turn on symbol versioning in the
- 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 correct defaults for the host system, probe to see if
- additional requirements are necessary and present for
- activation, and if so, will turn symbol versioning on. This
- option can change the library ABI.
-
--enable-visibility
In 4.2 and later, enables or disables visibility attributes.
- If enabled (as by default), and the compiler seems capable of
- passing the simple sanity checks thrown at it, adjusts items
- in namespace std, namespace std::tr1, and namespace __gnu_cxx
- so that -fvisibility options work.
-
--enable-libstdcxx-pch
In 3.4 and later, tries to turn on the generation of
- stdc++.h.gch, a pre-compiled file including all the standard
- C++ includes. If enabled (as by default), and the compiler
- seems capable of passing the simple sanity checks thrown at
- it, try to build stdc++.h.gch as part of the make process.
- In addition, this generated file is used later on (by appending
- --include bits/stdc++.h to CXXFLAGS) when running the
- testsuite.
-
--disable-hosted-libstdcxx
- By default, a complete hosted C++ library is
- built. The C++ Standard also describes a
- freestanding environment, in which only a
- minimal set of headers are provided. This option builds such an
- environment.
-
To transform libstdc++ sources into installed include files
+ and properly built binaries useful for linking to other software is
+ a multi-step process. Steps include getting the sources,
+ configuring and building the sources, testing, and installation.
+
The general outline of commands is something like:
+
+ get gcc sources
+ extract into gccsrcdir
+ mkdir gccbuilddir
+ cd gccbuilddir
+ gccsrcdir/configure --prefix=destdir --other-opts...
+ make
+ make check
+ make install
+
+ Each step is described in more detail in the following sections.
+
Prerequisites
+ Because libstdc++ is part of GCC, the primary source for
+ installation instructions is
+ the GCC install page.
+ In particular, list of prerequisite software needed to build the library
+
+ starts with those requirements. The same pages also list
+ the tools you will need if you wish to modify the source.
+
+ Additional data is given here only where it applies to libstdc++.
+
As of GCC 4.0.1 the minimum version of binutils required to build
+ libstdc++ is 2.15.90.0.1.1. You can get snapshots
+ (as well as releases) of binutils from
+
+ ftp://sources.redhat.com/pub/binutils.
+ Older releases of libstdc++ do not require such a recent version,
+ but to take full advantage of useful space-saving features and
+ bug-fixes you should use a recent binutils whenever possible.
+ The configure process will automatically detect and use these
+ features if the underlying support is present.
+
+ Finally, a few system-specific requirements:
+
linux
+ If gcc 3.1.0 or later on is being used on linux, an attempt
+ will be made to use "C" library functionality necessary for
+ C++ named locale support. For gcc 3.2.1 and later, this
+ means that glibc 2.2.5 or later is required and the "C"
+ library de_DE locale information must be installed.
+
+ Note however that the sanity checks involving the de_DE
+ locale are skipped when an explicit --enable-clocale=gnu
+ configure option is used: only the basic checks are carried
+ out, defending against misconfigurations.
+
+ If the 'gnu' locale model is being used, the following
+ locales are used and tested in the libstdc++ testsuites.
+ The first column is the name of the locale, the second is
+ the character set it is expected to use.
+
Failure to have the underlying "C" library locale
+ information installed will mean that C++ named locales for the
+ above regions will not work: because of this, the libstdc++
+ testsuite will skip the named locale tests. If this isn't an
+ issue, don't worry about it. If named locales are needed, the
+ underlying locale information must be installed. Note that
+ rebuilding libstdc++ after the "C" locales are installed is not
+ necessary.
+
+ To install support for locales, do only one of the following:
+
âConfigurableâ (or âNot configurableâ) means
that the symbol is initially chosen (or not) based on
--enable/--disable options at library build and configure time
- (documented here), with the
+ (documented here), with the
various --enable/--disable choices being translated to
#define/#undef).
ABI means that changing from the default value may
diff --git a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html
index 6f7451e9ae7c..88f2cd62f4d2 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html
@@ -1,6 +1,6 @@
-
This part deals with the functions called and objects created
automatically during the course of a program's existence.
diff --git a/libstdc++-v3/doc/html/manual/bk01pt04ch11.html b/libstdc++-v3/doc/html/manual/bk01pt04ch11.html
index 905be71755b5..e4058fa35d34 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt04ch11.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt04ch11.html
@@ -90,7 +90,7 @@
or loading and unloading shared objects in memory. As such, using
caching allocators on systems that do not support
abi::__cxa_atexit is not recommended.
-
Implementation
Interface Design
+
Implementation
Interface Design
The only allocator interface that
is support is the standard C++ interface. As such, all STL
containers have been adjusted, and all external allocators have
@@ -103,7 +103,7 @@
The base class that allocator is derived from
may not be user-configurable.
-
Selecting Default Allocation Policy
+
Selecting Default Allocation Policy
It's difficult to pick an allocation strategy that will provide
maximum utility, without excessively penalizing some behavior. In
fact, it's difficult just deciding which typical actions to measure
@@ -140,7 +140,7 @@
The current default choice for
allocator is
__gnu_cxx::new_allocator.
-
Disabling Memory Caching
+
Disabling Memory Caching
In use, allocator may allocate and
deallocate using implementation-specified strategies and
heuristics. Because of this, every call to an allocator object's
@@ -305,11 +305,11 @@
A high-performance allocator that uses a bit-map to keep track
of the used and unused memory locations. It has its own
documentation, found here.
-
Bibliography
+
Bibliography
ISO/IEC 14882:1998 Programming languages - C++
.
isoc++_1998
- 20.4 Memory.
The Standard Librarian: What Are Allocators Good
+ 20.4 Memory.
The Standard Librarian: What Are Allocators Good
.
austernm
MattAustern.
@@ -317,28 +317,28 @@
.
- .
The Hoard Memory Allocator.
+ .
The Hoard Memory Allocator.
emeryb
EmeryBerger.
- .
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
conversions are made between the internal character set (always UCS4
on GNU/Linux) and whatever the currently selected locale for the
@@ -47,25 +47,25 @@ characters.
Rename abstract base class. See if just smash-overriding is a
better approach. Clarify, add sanity to naming.
-
The neatest accomplishment of the algorithms chapter is that all the
work is done via iterators, not containers directly. This means two
important things:
diff --git a/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html b/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html
index d3c60f88747c..a24243e185a1 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html
@@ -19,6 +19,6 @@
mode or with debug mode. The
following table provides the names and headers of the debugging
containers:
-
Table 30.1. Debugging Containers
Container
Header
Debug container
Debug header
Â
Â
std::bitset
bitset
__gnu_debug::bitset
bitset
Â
Â
std::deque
deque
__gnu_debug::deque
deque
Â
Â
std::list
list
__gnu_debug::list
list
Â
Â
std::map
map
__gnu_debug::map
map
Â
Â
std::multimap
map
__gnu_debug::multimap
map
Â
Â
std::multiset
set
__gnu_debug::multiset
set
Â
Â
std::set
set
__gnu_debug::set
set
Â
Â
std::string
string
__gnu_debug::string
string
Â
Â
std::wstring
string
__gnu_debug::wstring
string
Â
Â
std::basic_string
string
__gnu_debug::basic_string
string
Â
Â
std::vector
vector
__gnu_debug::vector
vector
Â
Â
In addition, when compiling in C++0x mode, these additional
+
Table 30.1. Debugging Containers
Container
Header
Debug container
Debug header
Â
Â
std::bitset
bitset
__gnu_debug::bitset
bitset
Â
Â
std::deque
deque
__gnu_debug::deque
deque
Â
Â
std::list
list
__gnu_debug::list
list
Â
Â
std::map
map
__gnu_debug::map
map
Â
Â
std::multimap
map
__gnu_debug::multimap
map
Â
Â
std::multiset
set
__gnu_debug::multiset
set
Â
Â
std::set
set
__gnu_debug::set
set
Â
Â
std::string
string
__gnu_debug::string
string
Â
Â
std::wstring
string
__gnu_debug::wstring
string
Â
Â
std::basic_string
string
__gnu_debug::basic_string
string
Â
Â
std::vector
vector
__gnu_debug::vector
vector
Â
Â
In addition, when compiling in C++0x mode, these additional
containers have additional debug capability.
-
Table 30.2. Debugging Containers C++0x
Container
Header
Debug container
Debug header
Â
Â
std::unordered_map
unordered_map
__gnu_debug::unordered_map
unordered_map
Â
Â
std::unordered_multimap
unordered_map
__gnu_debug::unordered_multimap
unordered_map
Â
Â
std::unordered_set
unordered_set
__gnu_debug::unordered_set
unordered_set
Â
Â
std::unordered_multiset
unordered_set
__gnu_debug::unordered_multiset
unordered_set
Â
Â
+
Table 30.2. Debugging Containers C++0x
Container
Header
Debug container
Debug header
Â
Â
std::unordered_map
unordered_map
__gnu_debug::unordered_map
unordered_map
Â
Â
std::unordered_multimap
unordered_map
__gnu_debug::unordered_multimap
unordered_map
Â
Â
std::unordered_set
unordered_set
__gnu_debug::unordered_set
unordered_set
Â
Â
std::unordered_multiset
unordered_set
__gnu_debug::unordered_multiset
unordered_set
Â
Â
diff --git a/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html b/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html
index 53a56bf526c9..364998c0dc47 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html
@@ -63,4 +63,4 @@ Then compile this code with the prerequisite compiler flags
flags for atomic operations.)
The following table provides the names and headers of all the
parallel algorithms that can be used in a similar manner:
-
Here we will make an attempt at describing the non-Standard extensions to
the library. Some of these are from SGI's STL, some of these are GNU's,
and some just seemed to appear on the doorstep.
diff --git a/libstdc++-v3/doc/html/manual/build.html b/libstdc++-v3/doc/html/manual/build.html
deleted file mode 100644
index 4322717cf52b..000000000000
--- a/libstdc++-v3/doc/html/manual/build.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
- Because libstdc++ is part of GCC, the primary source for
- installation instructions is
- the GCC install page.
- Additional data is given here only where it applies to libstdc++.
-
Prerequisites
- The list of software needed to build the library is kept with the
- rest of the compiler, at
-
- http://gcc.gnu.org/install/prerequisites.html. The same page
- also lists the tools you will need if you wish to modify the source.
-
As of GCC 4.0.1 the minimum version of binutils required to build
- libstdc++ is 2.15.90.0.1.1. You can get snapshots
- (as well as releases) of binutils from
-
- ftp://sources.redhat.com/pub/binutils.
- Older releases of libstdc++ do not require such a recent version,
- but to take full advantage of useful space-saving features and
- bug-fixes you should use a recent binutils if possible.
- The configure process will automatically detect and use these
- features if the underlying support is present.
-
- Finally, a few system-specific requirements:
-
linux
- If gcc 3.1.0 or later on is being used on linux, an attempt
- will be made to use "C" library functionality necessary for
- C++ named locale support. For gcc 3.2.1 and later, this
- means that glibc 2.2.5 or later is required and the "C"
- library de_DE locale information must be installed.
-
- Note however that the sanity checks involving the de_DE
- locale are skipped when an explicit --enable-clocale=gnu
- configure option is used: only the basic checks are carried
- out, defending against misconfigurations.
-
- If the 'gnu' locale model is being used, the following
- locales are used and tested in the libstdc++ testsuites.
- The first column is the name of the locale, the second is
- the character set it is expected to use.
-
Failure to have the underlying "C" library locale
- information installed will mean that C++ named locales for the
- above regions will not work: because of this, the libstdc++
- testsuite will skip the named locale tests. If this isn't an
- issue, don't worry about it. If named locales are needed, the
- underlying locale information must be installed. Note that
- rebuilding libstdc++ after the "C" locales are installed is not
- necessary.
-
- To install support for locales, do only one of the following:
-
- Instructions for other operating systems solicited.
-
install just the necessary locales
with Debian Linux:
Add the above list, as shown, to the file
- /etc/locale.gen
run /usr/sbin/locale-gen
on most Unix-like operating systems:
localedef -i de_DE -f ISO-8859-1 de_DE
(repeat for each entry in the above list)
- Instructions for other operating systems solicited.
-
Make
If you have never done this before, you should read the basic
- GCC Installation
- Instructions first. Read all of them.
- Twice.
-
When building libstdc++ you'll have to configure
- the entire gccsrcdir directory. The full list of libstdc++
- specific configuration options, not dependent on the specific compiler
- release being used, can be found here.
-
Consider possibly using --enable-languages=c++ to save time by only
- building the C++ language parts.
-
- cd gccbuilddir
- gccsrcdir/configure --prefix=destdir --other-opts...
+ When configuring libstdc++, you'll have to configure the entire
+ gccsrcdir directory. Consider using the
+ toplevel gcc configuration option
+ --enable-languages=c++, which saves time by only
+ building the C++ toolchain.
+
+ Here are all of the configure options specific to libstdc++. Keep
+ in mind that
+
+ they
+ all have opposite forms as well (enable/disable and
+ with/without). The defaults are for the current
+ development sources, which may be different than those
+ for released versions.
+
The canonical way to find out the configure options that are
+ available for a given set of libstdc++ sources is to go to the
+ source directory and then type:./configure --help.
+
--enable-multilib[default]
This is part of the generic multilib support for building cross
+ compilers. As such, targets like "powerpc-elf" will have
+ libstdc++ built many different ways: "-msoft-float"
+ and not, etc. A different libstdc++ will be built for each of
+ the different multilib versions. This option is on by default.
+
--enable-sjlj-exceptions
Forces old, set-jump/long-jump exception handling model. If
+ at all possible, the new, frame unwinding exception handling routines
+ should be used instead, as they significantly reduce both
+ runtime memory usage and executable size. This option can
+ change the library ABI.
+
--enable-version-specific-runtime-libs
Specify that run-time libraries should be installed in the
+ compiler-specific subdirectory (i.e.,
+ ${libdir}/gcc-lib/${target_alias}/${gcc_version})
+ instead of ${libdir}. This option is useful if you
+ intend to use several versions of gcc in parallel. In addition,
+ libstdc++'s include files will be installed in
+ ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++,
+ unless you also specify
+ --with-gxx-include-dir=dirname during configuration.
+
--with-gxx-include-dir=<include-files dir>
Adds support for named libstdc++ include directory. For instance,
+ the following puts all the libstdc++ headers into a directory
+ called "2.97-20001008" instead of the usual
+ "c++/(version)".
+
This is an abbreviated form of '--enable-cstdio=stdio'
+ (described next). This option can change the library ABI.
+
--enable-cstdio=OPTION
Select a target-specific I/O package. At the moment, the only
+ choice is to use 'stdio', a generic "C" abstraction.
+ The default is 'stdio'.
+
--enable-clocale
This is an abbreviated form of '--enable-clocale=generic'
+ (described next). This option can change the library ABI.
+
--enable-clocale=OPTION
Select a target-specific underlying locale package. The
+ choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix
+ (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets,
+ 'gnu' to specify a model based on functionality from the GNU C
+ library (langinfo/iconv/gettext) (from glibc, the GNU C
+ library), or 'generic' to use a generic "C"
+ abstraction which consists of "C" locale info.
+
As part of the configuration process, the "C" library is
+ probed both for sufficient vintage, and installed locale
+ data. If either of these elements are not present, the C++
+ locale model default to 'generic.' On glibc-based systems of
+ version 2.2.5 and above with installed locale files, 'gnu' is
+ automatically selected.
+
--enable-libstdcxx-allocator
This is an abbreviated form of
+ '--enable-libstdcxx-allocator=auto' (described
+ next). This option can change the library ABI.
+
--enable-libstdcxx-allocator=OPTION
Select a target-specific underlying std::allocator. The
+ choices are 'new' to specify a wrapper for new, 'malloc' to
+ specify a wrapper for malloc, 'mt' for a fixed power of two allocator,
+ 'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
+ This option can change the library ABI. See this page for more information on allocator
+ extensions
+
--enable-cheaders=OPTION
This allows the user to define the approach taken for C header
+ compatibility with C++. Options are c, c_std, and c_global.
+ These correspond to the source directory's include/c,
+ include/c_std, and include/c_global, and may also include
+ include/c_compatibility. The default is c_global.
+
--enable-threads
This is an abbreviated form of '--enable-threads=yes'
+ (described next). This option can change the library ABI.
+
Build separate debug libraries in addition to what is normally built.
+ By default, the debug libraries are compiled with
+ CXXFLAGS='-g3 -O0 -fno-inline'
+ , are installed in ${libdir}/debug, and have the
+ same names and versioning information as the non-debug
+ libraries. This option is off by default.
+
Note this make command, executed in
+ the build directory, will do much the same thing, without the
+ configuration difference and without building everything twice:
+ make CXXFLAGS='-g3 -O0 -fno-inline' all
+
--enable-libstdcxx-debug-flags=FLAGS
This option is only valid when --enable-debug
+ is also specified, and applies to the debug builds only. With
+ this option, you can pass a specific string of flags to the
+ compiler to use when building the debug versions of libstdc++.
+ FLAGS is a quoted string of options, like
+
With this option, you can pass a string of -f (functionality)
+ flags to the compiler to use when building libstdc++. This
+ option can change the library ABI. FLAGS is a quoted string of
+ options, like
+
+ Note that the flags don't necessarily have to all be -f flags,
+ as shown, but usually those are the ones that will make sense
+ for experimentation and configure-time overriding.
+
The advantage of --enable-cxx-flags over setting CXXFLAGS in
+ the 'make' environment is that, if files are automatically
+ rebuilt, the same flags will be used when compiling those files
+ as well, so that everything matches.
+
and opposite forms (-fno-) of the same. Tell us (the libstdc++
+ mailing list) if you discover more!
+
--enable-c99
The "long long" type was introduced in C99, along
+ with many other functions for wide characters, and math
+ classification macros, etc. If enabled, all C99 functions not
+ specified by the C++ standard will be put into namespace
+ __gnu_cxx, and then all these names will
+ be injected into namespace std, so that C99 functions can be
+ used "as if" they were in the C++ standard (as they
+ will eventually be in some future revision of the standard,
+ without a doubt). By default, C99 support is on, assuming the
+ configure probes find all the necessary functions and bits
+ necessary. This option can change the library ABI.
+
--enable-wchar_t[default]
Template specializations for the "wchar_t" type are
+ required for wide character conversion support. Disabling
+ wide character specializations may be expedient for initial
+ porting efforts, but builds only a subset of what is required by
+ ISO, and is not recommended. By default, this option is on.
+ This option can change the library ABI.
+
--enable-long-long
The "long long" type was introduced in C99. It is
+ provided as a GNU extension to C++98 in g++. This flag builds
+ support for "long long" into the library (specialized
+ templates and the like for iostreams). This option is on by default:
+ if enabled, users will have to either use the new-style "C"
+ headers by default (i.e., <cmath> not <math.h>)
+ or add appropriate compile-time flags to all compile lines to
+ allow "C" visibility of this feature (on GNU/Linux,
+ the flag is -D_ISOC99_SOURCE, which is added automatically via
+ CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE).
+ This option can change the library ABI.
+
--enable-fully-dynamic-string
This option enables a special version of basic_string avoiding
+ the optimization that allocates empty objects in static memory.
+ Mostly useful together with shared memory allocators, see PR
+ libstdc++/16612 for details.
+
--enable-concept-checks
This turns on additional compile-time checks for instantiated
+ library templates, in the form of specialized templates,
+ described here. They
+ can help users discover when they break the rules of the STL, before
+ their programs run.
+
--enable-symvers[=style]
In 3.1 and later, tries to turn on symbol versioning in the
+ 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 correct defaults for the host system, probe to see if
+ additional requirements are necessary and present for
+ activation, and if so, will turn symbol versioning on. This
+ option can change the library ABI.
+
--enable-visibility
In 4.2 and later, enables or disables visibility attributes.
+ If enabled (as by default), and the compiler seems capable of
+ passing the simple sanity checks thrown at it, adjusts items
+ in namespace std, namespace std::tr1, and namespace __gnu_cxx
+ so that -fvisibility options work.
+
--enable-libstdcxx-pch
In 3.4 and later, tries to turn on the generation of
+ stdc++.h.gch, a pre-compiled file including all the standard
+ C++ includes. If enabled (as by default), and the compiler
+ seems capable of passing the simple sanity checks thrown at
+ it, try to build stdc++.h.gch as part of the make process.
+ In addition, this generated file is used later on (by appending
+ --include bits/stdc++.h to CXXFLAGS) when running the
+ testsuite.
+
--disable-hosted-libstdcxx
+ By default, a complete hosted C++ library is
+ built. The C++ Standard also describes a
+ freestanding environment, in which only a
+ minimal set of headers are provided. This option builds such an
+ environment.
+
--enable-clock-gettime
This is an abbreviated form of
+ '--enable-clock-gettime=yes'(described next).
+
--enable-clock-gettime=OPTION
Enables link-type checks for the availability of the
+ clock_gettime clocks, used in [time.clock] of the current C++0x draft.
+ The choice OPTION=yes checks for the availability of the monotonic and
+ realtime clocks in libc and libposix4. In case of need the latter is
+ also linked to libstdc++ as part of the build process. OPTION=rt
+ also searches (and, in case, links) librt. Note that the latter
+ is not always desirable because, in glibc, for example, in turn it
+ triggers the linking of libpthread too, which activates locking,
+ a large overhead for single-thread programs. OPTION=no skips the
+ tests completely. The default is OPTION=no.
+
diff --git a/libstdc++-v3/doc/html/manual/debug.html b/libstdc++-v3/doc/html/manual/debug.html
index a975621a7c5a..311438cee91e 100644
--- a/libstdc++-v3/doc/html/manual/debug.html
+++ b/libstdc++-v3/doc/html/manual/debug.html
@@ -11,19 +11,20 @@
The default optimizations and debug flags for a libstdc++ build
are -g -O2. However, both debug and optimization
flags can be varied to change debugging characteristics. For
- instance, turning off all optimization via the -g -O0
- flag will disable inlining, so that stepping through all
- functions, including inlined constructors and destructors, is
- possible. In addition,
- -fno-eliminate-unused-debug-types can be used when
- additional debug information, such as nested class info, is
- desired.
+ instance, turning off all optimization via the -g -O0
+ -fno-inline flags will disable inlining and optimizations,
+ and add debugging information, so that stepping through all functions,
+ (including inlined constructors and destructors) is possible. In
+ addition, -fno-eliminate-unused-debug-types can be
+ used when additional debug information, such as nested class info,
+ is desired.
Or, the debug format that the compiler and debugger use to
communicate information about source constructs can be changed via
- -gdwarf-2 or -gstabs flags: some
- debugging formats permit more expressive type and scope information
- to be shown in gdb. The default debug information for a particular
+ -gdwarf-2 or -gstabs flags: some debugging
+ formats permit more expressive type and scope information to be
+ shown in gdb. Expressiveness can be enhanced by flags like
+ -g3. The default debug information for a particular
platform can be identified via the value set by the
PREFERRED_DEBUGGING_TYPE macro in the gcc sources.
@@ -43,15 +44,15 @@
debug build will persist, without having to specify
CXXFLAGS, and the debug library will be installed in a
separate directory tree, in (prefix)/lib/debug. For
- more information, look at the configuration options document.
+ more information, look at the configuration section.
A second approach is to use the configuration flags
- make CXXFLAGS='-g3 -O0' all
+ make CXXFLAGS='-g3 -fno-inline -O0' all
This quick and dirty approach is often sufficient for quick
debugging tasks, when you cannot or don't want to recompile your
- application to use the debug mode.
There are various third party memory tracing and debug utilities
that can be used to provide detailed memory allocation information
about C++ code. An exhaustive list of tools is not going to be
@@ -66,7 +67,7 @@
thing of great importance to keep in mind when debugging C++ code
that uses new and delete: there are
different kinds of allocation schemes that can be used by
- std::allocator . For implementation details, see the mt allocator documentation and
+ std::allocator . For implementation details, see the mt allocator documentation and
look specifically for GLIBCXX_FORCE_NEW.
In a nutshell, the default allocator used by
@@ -122,7 +123,7 @@
valgrind -v --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes a.out
diff --git a/libstdc++-v3/doc/html/manual/messages.html b/libstdc++-v3/doc/html/manual/messages.html
index 5284e8f11ccb..4a94e5805eb6 100644
--- a/libstdc++-v3/doc/html/manual/messages.html
+++ b/libstdc++-v3/doc/html/manual/messages.html
@@ -241,38 +241,38 @@ void test01()
model. As of this writing, it is unknown how to query to see
if a specified message catalog exists using the gettext
package.
-
Java 2 Platform, Standard Edition, v 1.3.1 API Specification
. java.util.Properties, java.text.MessageFormat,
java.util.Locale, java.util.ResourceBundle.
- .
+ .
GNU gettext tools, version 0.10.38, Native Language Support
Library and Tools.
.
diff --git a/libstdc++-v3/doc/html/manual/parallel_mode.html b/libstdc++-v3/doc/html/manual/parallel_mode.html
index f008aa39bc66..57fe700a76a9 100644
--- a/libstdc++-v3/doc/html/manual/parallel_mode.html
+++ b/libstdc++-v3/doc/html/manual/parallel_mode.html
@@ -10,11 +10,11 @@ explicit source declaration or by compiling existing sources with a
specific compiler flag.
Intro
The following library components in the include
numeric are included in the parallel mode:
std::accumulate
std::adjacent_difference
std::inner_product
std::partial_sum
The following library components in the include
-algorithm are included in the parallel mode:
A shared_ptr<T> contains a pointer of
type T* and an object of type
__shared_count. The shared_count contains a
@@ -71,7 +71,7 @@ be forwarded to Tp's constructor.
Unlike the other _Sp_counted_* classes, this one is parameterized on the
type of object, not the type of pointer; this is purely a convenience
that simplifies the implementation slightly.
-
Thread Safety
+
Thread Safety
The interface of tr1::shared_ptr was extended for C++0x
with support for rvalue-references and the other features from
N2351. As with other libstdc++ headers shared by TR1 and C++0x,
@@ -129,7 +129,7 @@ compiler, standard library, platform etc. For the version of
shared_ptr in libstdc++ the compiler and library are fixed, which
makes things much simpler: we have an atomic CAS or we don't, see Lock
Policy below for details.
-
Selecting Lock Policy
+
Selecting Lock Policy
There is a single _Sp_counted_base class,
which is a template parameterized on the enum
@@ -170,7 +170,7 @@ used when libstdc++ is built without --enable-threadsext/atomicity.h, which detect if the program
is multi-threaded. If only one thread of execution exists in
the program then less expensive non-atomic operations are used.
-
Dual C++0x and TR1 Implementation
+
Dual C++0x and TR1 Implementation
The classes derived from _Sp_counted_base (see Class Hierarchy
below) and __shared_count are implemented separately for C++0x
and TR1, in bits/boost_sp_shared_count.h and
@@ -181,7 +181,7 @@ The TR1 implementation is considered relatively stable, so is unlikely to
change unless bug fixes require it. If the code that is common to both
C++0x and TR1 modes needs to diverge further then it might be necessary to
duplicate additional classes and only make changes to the C++0x versions.
-
As noted in N2351, these functions can be implemented non-intrusively using
the alias constructor. However the aliasing constructor is only available
@@ -214,10 +214,10 @@ is called. Users should not try to use this.
As well as the extra constructors, this implementation also needs some
members of _Sp_counted_deleter to be protected where they could otherwise
be private.
-
Use
Examples
+
Use
Examples
Examples of use can be found in the testsuite, under
testsuite/tr1/2_general_utilities/shared_ptr.
-
Unresolved Issues
+
Unresolved Issues
The resolution to C++ Standard Library issue 674,
"shared_ptr interface changes for consistency with N1856" will
need to be implemented after it is accepted into the working
@@ -265,7 +265,7 @@ be private.
code to work with, Peter Dimov in particular for his help and
invaluable advice on thread safety. Phillip Jordan and Paolo
Carlini for the lock policy implementation.
-
Bibliography
[
+
Bibliography
[
n2351
]
Improving shared_ptr for C++0x, Revision 2
@@ -274,7 +274,7 @@ be private.
.
- .
[
+ .
[
n2456
]
C++ Standard Library Active Issues List (Revision R52)
@@ -283,7 +283,7 @@ be private.
.
- .
[
+ .
[
n2461
]
Working Draft, Standard for Programming Language C++
@@ -292,7 +292,7 @@ be private.
.
- .
[
+ .
[
boostshared_ptr
]
Boost C++ Libraries documentation - shared_ptr class template
diff --git a/libstdc++-v3/doc/html/manual/spine.html b/libstdc++-v3/doc/html/manual/spine.html
index 8b9327070324..1c4833ff6817 100644
--- a/libstdc++-v3/doc/html/manual/spine.html
+++ b/libstdc++-v3/doc/html/manual/spine.html
@@ -2,6 +2,6 @@
The GNU C++ Library
+The libstdc++ testsuite includes testing for standard conformance,
+regressions, ABI, and performance.
+
Organization
Directory Layout
The directory libsrcdir/testsuite contains the
individual test cases organized in sub-directories corresponding to
chapters of the C++ standard (detailed below), the dejagnu test
@@ -69,7 +72,7 @@ util Files for libtestc++, utilities and testing routines.
All new tests should be written with the policy of one test
case, one file in mind.
-
Naming Conventions
+
Naming Conventions
In addition, there are some special names and suffixes that are
used within the testsuite to designate particular kinds of
tests.
@@ -123,69 +126,7 @@ cat 27_io/objects/char/3_xin.in | a.out
analyze runtime performance, for performance regression testing,
or for other optimization related analysis. At the moment, these
test cases are not run by default.
-
Utilities
-
- The testsuite directory also contains some files that implement
- functionality that is intended to make writing test cases easier,
- or to avoid duplication, or to provide error checking in a way that
- is consistent across platforms and test harnesses. A stand-alone
- executable, called abi_check, and a static
- library called libtestc++ are
- constructed. Both of these items are not installed, and only used
- during testing.
-
- These files include the following functionality:
-
- Creates the executable abi_check.
- Used to check correctness of symbol versioning, visibility of
- exported symbols, and compatibility on symbols in the shared
- library, for hosts that support this feature. More information
- can be found in the ABI documentation here
-
- Contains specialized allocators that keep track of construction
- and destruction. Also, support for overriding global new and
- delete operators, including verification that new and delete
- are called during execution, and that allocation over max_size
- fails.
-
- testsuite_character.h
-
- Contains std::char_traits and
- std::codecvt specializations for a user-defined
- POD.
-
- testsuite_hooks.h,
- testsuite_hooks.cc
-
- A large number of utilities, including:
-
VERIFY
set_memory_limits
verify_demangle
run_tests_wrapped_locale
run_tests_wrapped_env
try_named_locale
try_mkfifo
func_callback
counter
copy_tracker
copy_constructor
assignment_operator
destructor
pod_char, pod_int and associated char_traits specializations
- testsuite_io.h
-
- Error, exception, and constraint checking for
- std::streambuf, std::basic_stringbuf, std::basic_filebuf.
-
- testsuite_iterators.h
-
- Wrappers for various iterators.
-
- testsuite_performance.h
-
- A number of class abstractions for performance counters, and
- reporting functions including:
-
time_counter
resource_counter
report_performance
Running the Testsuite
Basic Results
- There are several options for running tests, including testing
- the regression tests, testing a subset of the regression tests,
- testing the performance tests, testing just compilation, testing
- installed tools, etc. In addition, there is a special rule for
- checking the exported symbols of the shared library.
-
+
Running the Testsuite
Basic
You can check the status of the build without installing it
using the dejagnu harness, much like the rest of the gcc
tools.
make check
in the libbuilddir directory.
or
make check-target-libstdc++-v3
in the gccbuilddir directory.
@@ -200,12 +141,18 @@ cat 27_io/objects/char/3_xin.in | a.out
output, and the executable output (if any).
Archives of test results for various versions and platforms are
- available on the GCC website in the build
+ available on the GCC website in the build
status section of each individual release, and are also
archived on a daily basis on the gcc-testresults
mailing list. Please check either of these places for a similar
combination of source version, operating system, and host CPU.
-
Options
+
Variations
+ There are several options for running tests, including testing
+ the regression tests, testing a subset of the regression tests,
+ testing the performance tests, testing just compilation, testing
+ installed tools, etc. In addition, there is a special rule for
+ checking the exported symbols of the shared library.
+
To debug the dejagnu test harness during runs, try invoking with a
specific argument to the variable RUNTESTFLAGS, as below.
@@ -325,7 +272,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
We are interested in any strange failures of the testsuite;
please email the main libstdc++ mailing list if you see
something odd or have questions.
-
Test Permutations
+
Permutations
To run the libstdc++ test suite under the debug mode, edit
libstdc++-v3/scripts/testsuite_flags to add the
compile-time flag -D_GLIBCXX_DEBUG to the
@@ -336,10 +283,16 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
precisely the same results under debug mode that it does under
release mode: any deviation indicates an error in either the
library or the test suite.
+
+ The parallel
+ mode can be tested in much the same manner, substituting
+ -D_GLIBCXX_PARALLEL for
+ -D_GLIBCXX_DEBUG in the previous paragraph.
Or, just run the testsuites with CXXFLAGS
- set to -D_GLIBCXX_DEBUG.
-
New Test Cases
+ set to -D_GLIBCXX_DEBUG or
+ -D_GLIBCXX_PARALLEL.
+
Writing a new test case
The first step in making a new test case is to choose the correct
directory and file name, given the organization as previously
described.
@@ -450,8 +403,10 @@ up in the normal.exp file.
// { dg-options "-O0" { target *-*-* } }
More examples can be found in the libstdc++-v3/testsuite/*/*.cc files.
-
Test Harness Details
- Underlying details of testing are abstracted via the GNU Dejagnu package.
+
Test Harness and Utilities
Dejagnu Harness Details
+ Underlying details of testing for conformance and regressions are
+ abstracted via the GNU Dejagnu package. This is similar to the
+ rest of GCC.
This is information for those looking at making changes to the testsuite
structure, and/or needing to trace dejagnu's actions with --verbose. This
will not be useful to people who are "merely" adding new tests to the existing
@@ -475,29 +430,60 @@ callbacks loaded from the support library.
The config directory is searched for any particular "target
board" information unique to this library. This is currently unused and sets
only default variables.
-
Future
+
Utilities
-Shared runs need to be implemented, for targets that support shared libraries.
-
-Diffing of expected output to standard streams needs to be finished off.
-
-The V3 testing framework supports, or will eventually support,
-additional keywords for the purpose of easing the job of writing
-test cases. All V3-keywords are of the form @xxx@.
-Currently plans for supported keywords include:
-
@require@ <files>
- The existence of <files> is essential for the test to complete
- successfully. For example, a test case foo.C using bar.baz as
- input file could say
-
- // @require@ bar.baz
- The special variable % stands for the rootname, e.g. the
- file-name without its `.C' extension. Example of use (taken
- verbatim from 27_io/filebuf.cc)
-
- // @require@ %-*.tst %-*.txt
@diff@ <first-list> <second-list>
- After the test case compiles and ran successfully, diff
- <first-list> against <second-list>, these lists should
- have the same length. The test fails if diff returns non-zero a
- pair of files.
-
+ The testsuite directory also contains some files that implement
+ functionality that is intended to make writing test cases easier,
+ or to avoid duplication, or to provide error checking in a way that
+ is consistent across platforms and test harnesses. A stand-alone
+ executable, called abi_check, and a static
+ library called libtestc++ are
+ constructed. Both of these items are not installed, and only used
+ during testing.
+
+ These files include the following functionality:
+
+ Creates the executable abi_check.
+ Used to check correctness of symbol versioning, visibility of
+ exported symbols, and compatibility on symbols in the shared
+ library, for hosts that support this feature. More information
+ can be found in the ABI documentation here
+
+ Contains specialized allocators that keep track of construction
+ and destruction. Also, support for overriding global new and
+ delete operators, including verification that new and delete
+ are called during execution, and that allocation over max_size
+ fails.
+
+ testsuite_character.h
+
+ Contains std::char_traits and
+ std::codecvt specializations for a user-defined
+ POD.
+
+ testsuite_hooks.h,
+ testsuite_hooks.cc
+
+ A large number of utilities, including:
+
VERIFY
set_memory_limits
verify_demangle
run_tests_wrapped_locale
run_tests_wrapped_env
try_named_locale
try_mkfifo
func_callback
counter
copy_tracker
copy_constructor
assignment_operator
destructor
pod_char, pod_int and associated char_traits specializations
+ testsuite_io.h
+
+ Error, exception, and constraint checking for
+ std::streambuf, std::basic_stringbuf, std::basic_filebuf.
+
+ testsuite_iterators.h
+
+ Wrappers for various iterators.
+
+ testsuite_performance.h
+
+ A number of class abstractions for performance counters, and
+ reporting functions including:
+
time_counter
resource_counter
report_performance
diff --git a/libstdc++-v3/doc/html/spine.html b/libstdc++-v3/doc/html/spine.html
index 87cbe66353ce..432f577c7637 100644
--- a/libstdc++-v3/doc/html/spine.html
+++ b/libstdc++-v3/doc/html/spine.html
@@ -2,4 +2,4 @@
The GNU C++ Library Documentation
diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml
index b30b0d04e078..9ddd31cf89e1 100644
--- a/libstdc++-v3/doc/xml/manual/configure.xml
+++ b/libstdc++-v3/doc/xml/manual/configure.xml
@@ -18,18 +18,26 @@
Configure
- Here are some of the non-obvious options to libstdc++'s configure.
- Keep in mind that
+ When configuring libstdc++, you'll have to configure the entire
+ gccsrcdir directory. Consider using the
+ toplevel gcc configuration option
+ --enable-languages=c++, which saves time by only
+ building the C++ toolchain.
+
+
+
+ Here are all of the configure options specific to libstdc++. Keep
+ in mind that
they
- all have opposite forms as well
- (enable/disable and with/without). The defaults are for current
- development sources, which may be different than those for
- released versions.
+ all have opposite forms as well (enable/disable and
+ with/without). The defaults are for the current
+ development sources, which may be different than those
+ for released versions.
The canonical way to find out the configure options that are
available for a given set of libstdc++ sources is to go to the
- source directory and then type: ./configure --help
+ source directory and then type:./configure --help.
@@ -121,10 +129,10 @@
--enable-libstdcxx-allocator=OPTION Select a target-specific underlying std::allocator. The
choices are 'new' to specify a wrapper for new, 'malloc' to
- specify a wrapper for malloc, 'mt' for a fixed power of two allocator
- (documented under extensions),
+ specify a wrapper for malloc, 'mt' for a fixed power of two allocator,
'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator.
- This option can change the library ABI.
+ This option can change the library ABI. See this page for more information on allocator
+ extensions
@@ -153,7 +161,7 @@
--enable-libstdcxx-debugBuild separate debug libraries in addition to what is normally built.
By default, the debug libraries are compiled with
- CXXFLAGS='-g3 -O0'
+ CXXFLAGS='-g3 -O0 -fno-inline'
, are installed in ${libdir}/debug, and have the
same names and versioning information as the non-debug
libraries. This option is off by default.
@@ -161,7 +169,7 @@
Note this make command, executed in
the build directory, will do much the same thing, without the
configuration difference and without building everything twice:
- make CXXFLAGS='-g3 -O0' all
+ make CXXFLAGS='-g3 -O0 -fno-inline' all
@@ -174,7 +182,7 @@
FLAGS is a quoted string of options, like
- --enable-libstdcxx-debug-flags='-g3 -O1 -gdwarf-2'
+ --enable-libstdcxx-debug-flags='-g3 -O1 -fno-inline'
--enable-cxx-flags=FLAGS
@@ -258,7 +266,7 @@
--enable-concept-checksThis turns on additional compile-time checks for instantiated
library templates, in the form of specialized templates,
- described here. They
+ described here. They
can help users discover when they break the rules of the STL, before
their programs run.
@@ -335,4 +343,4 @@
-
\ No newline at end of file
+
diff --git a/libstdc++-v3/doc/xml/manual/debug.xml b/libstdc++-v3/doc/xml/manual/debug.xml
index b52a24691619..2ad542b97b15 100644
--- a/libstdc++-v3/doc/xml/manual/debug.xml
+++ b/libstdc++-v3/doc/xml/manual/debug.xml
@@ -31,21 +31,22 @@
The default optimizations and debug flags for a libstdc++ build
are -g -O2. However, both debug and optimization
flags can be varied to change debugging characteristics. For
- instance, turning off all optimization via the -g -O0
- flag will disable inlining, so that stepping through all
- functions, including inlined constructors and destructors, is
- possible. In addition,
- -fno-eliminate-unused-debug-types can be used when
- additional debug information, such as nested class info, is
- desired.
+ instance, turning off all optimization via the -g -O0
+ -fno-inline flags will disable inlining and optimizations,
+ and add debugging information, so that stepping through all functions,
+ (including inlined constructors and destructors) is possible. In
+ addition, -fno-eliminate-unused-debug-types can be
+ used when additional debug information, such as nested class info,
+ is desired.
Or, the debug format that the compiler and debugger use to
communicate information about source constructs can be changed via
- -gdwarf-2 or -gstabs flags: some
- debugging formats permit more expressive type and scope information
- to be shown in gdb. The default debug information for a particular
+ -gdwarf-2 or -gstabs flags: some debugging
+ formats permit more expressive type and scope information to be
+ shown in gdb. Expressiveness can be enhanced by flags like
+ -g3. The default debug information for a particular
platform can be identified via the value set by the
PREFERRED_DEBUGGING_TYPE macro in the gcc sources.
@@ -78,21 +79,21 @@
debug build will persist, without having to specify
CXXFLAGS, and the debug library will be installed in a
separate directory tree, in (prefix)/lib/debug. For
- more information, look at the configuration options document.
+ more information, look at the configuration section.
A second approach is to use the configuration flags
- make CXXFLAGS='-g3 -O0' all
+ make CXXFLAGS='-g3 -fno-inline -O0' all
This quick and dirty approach is often sufficient for quick
debugging tasks, when you cannot or don't want to recompile your
- application to use the debug mode.
+ application to use the debug mode.
@@ -115,8 +116,8 @@
thing of great importance to keep in mind when debugging C++ code
that uses new and delete: there are
different kinds of allocation schemes that can be used by
- std::allocator . For implementation details, see the mt allocator documentation and
+ std::allocator . For implementation details, see the mt allocator documentation and
look specifically for GLIBCXX_FORCE_NEW.
@@ -197,7 +198,7 @@
Many options are available for gdb itself: please see
+ url="http://sources.redhat.com/gdb/current/onlinedocs/gdb_13.html#SEC125">
"GDB features for C++" in the gdb documentation. Also
recommended: the other parts of this manual.
diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml
index 1176fd65096e..8cca6f398429 100644
--- a/libstdc++-v3/doc/xml/manual/intro.xml
+++ b/libstdc++-v3/doc/xml/manual/intro.xml
@@ -707,17 +707,56 @@
Setup
-
+ To transform libstdc++ sources into installed include files
+ and properly built binaries useful for linking to other software is
+ a multi-step process. Steps include getting the sources,
+ configuring and building the sources, testing, and installation.
+
+
+ The general outline of commands is something like:
+
+
+
+ get gcc sources
+ extract into gccsrcdir
+ mkdir gccbuilddir
+ cd gccbuilddir
+ gccsrcdir/configure --prefix=destdir --other-opts...
+ make
+ make check
+ make install
+
+
+
+ Each step is described in more detail in the following sections.
+
+
+
+ parse="xml" href="prerequisites.xml">
-
+
+ parse="xml" href="configure.xml">
-
+
+
+Make
+ If you have never done this before, you should read the basic
+ GCC Installation
+ Instructions first. Read all of them.
+ Twice.
+
+
+Then type:make, and congratulations, you're
+started to build.
+
+
+
+
+
diff --git a/libstdc++-v3/doc/xml/manual/build.xml b/libstdc++-v3/doc/xml/manual/prerequisites.xml
similarity index 74%
rename from libstdc++-v3/doc/xml/manual/build.xml
rename to libstdc++-v3/doc/xml/manual/prerequisites.xml
index d5d78291f438..20a04786533f 100644
--- a/libstdc++-v3/doc/xml/manual/build.xml
+++ b/libstdc++-v3/doc/xml/manual/prerequisites.xml
@@ -1,5 +1,5 @@
-
-
+
+
@@ -7,28 +7,25 @@
ISO C++
- build
+ Prerequisites
-Build
+Prerequisites
Because libstdc++ is part of GCC, the primary source for
installation instructions is
the GCC install page.
- Additional data is given here only where it applies to libstdc++.
+ In particular, list of prerequisite software needed to build the library
+
+ starts with those requirements. The same pages also list
+ the tools you will need if you wish to modify the source.
-
-Prerequisites
- The list of software needed to build the library is kept with the
- rest of the compiler, at
-
- http://gcc.gnu.org/install/prerequisites.html. The same page
- also lists the tools you will need if you wish to modify the source.
+ Additional data is given here only where it applies to libstdc++.
As of GCC 4.0.1 the minimum version of binutils required to build
@@ -38,7 +35,7 @@
ftp://sources.redhat.com/pub/binutils.
Older releases of libstdc++ do not require such a recent version,
but to take full advantage of useful space-saving features and
- bug-fixes you should use a recent binutils if possible.
+ bug-fixes you should use a recent binutils whenever possible.
The configure process will automatically detect and use these
features if the underlying support is present.
@@ -93,6 +90,7 @@ se_NO.UTF-8 UTF-8
ta_IN UTF-8
zh_TW BIG5
+
Failure to have the underlying "C" library locale
information installed will mean that C++ named locales for the
above regions will not work: because of this, the libstdc++
@@ -157,26 +155,4 @@ zh_TW BIG5
-
-
-
-Make
- If you have never done this before, you should read the basic
- GCC Installation
- Instructions first. Read all of them.
- Twice.
-
- When building libstdc++ you'll have to configure
- the entire gccsrcdir directory. The full list of libstdc++
- specific configuration options, not dependent on the specific compiler
- release being used, can be found here.
-
- Consider possibly using --enable-languages=c++ to save time by only
- building the C++ language parts.
-
-
-
- cd gccbuilddir
- gccsrcdir/configure --prefix=destdir --other-opts...
-
-
\ No newline at end of file
+
diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml
index 58eaf9802002..7072c81e609d 100644
--- a/libstdc++-v3/doc/xml/manual/test.xml
+++ b/libstdc++-v3/doc/xml/manual/test.xml
@@ -12,13 +12,34 @@
testsuite
+
+ performance
+
+
+ conformance
+
+
+ ABI
+
+
+ exception safety
+ Test
+
+The libstdc++ testsuite includes testing for standard conformance,
+regressions, ABI, and performance.
+
+
Organization
+
+
+Directory Layout
+
The directory libsrcdir/testsuite contains the
individual test cases organized in sub-directories corresponding to
@@ -108,10 +129,10 @@ util Files for libtestc++, utilities and testing routines.
All new tests should be written with the policy of one test
case, one file in mind.
+
-
-
+Naming Conventions
@@ -202,139 +223,15 @@ cat 27_io/objects/char/3_xin.in | a.out
+
-
-Utilities
-
-
-
- The testsuite directory also contains some files that implement
- functionality that is intended to make writing test cases easier,
- or to avoid duplication, or to provide error checking in a way that
- is consistent across platforms and test harnesses. A stand-alone
- executable, called abi_check, and a static
- library called libtestc++ are
- constructed. Both of these items are not installed, and only used
- during testing.
-
-
-
- These files include the following functionality:
-
-
-
-
-
- testsuite_abi.h,
- testsuite_abi.cc,
- testsuite_abi_check.cc
-
-
- Creates the executable abi_check.
- Used to check correctness of symbol versioning, visibility of
- exported symbols, and compatibility on symbols in the shared
- library, for hosts that support this feature. More information
- can be found in the ABI documentation here
-
-
-
-
- testsuite_allocator.h,
- testsuite_allocator.cc
-
-
- Contains specialized allocators that keep track of construction
- and destruction. Also, support for overriding global new and
- delete operators, including verification that new and delete
- are called during execution, and that allocation over max_size
- fails.
-
-
-
-
- testsuite_character.h
-
-
- Contains std::char_traits and
- std::codecvt specializations for a user-defined
- POD.
-
-
-
-
- testsuite_hooks.h,
- testsuite_hooks.cc
-
-
- A large number of utilities, including:
-
-
- VERIFY
- set_memory_limits
- verify_demangle
- run_tests_wrapped_locale
- run_tests_wrapped_env
- try_named_locale
- try_mkfifo
- func_callback
- counter
- copy_tracker
- copy_constructor
- assignment_operator
- destructor
-
- pod_char, pod_int and associated char_traits specializations
-
-
-
-
-
- testsuite_io.h
-
-
- Error, exception, and constraint checking for
- std::streambuf, std::basic_stringbuf, std::basic_filebuf.
-
-
-
-
- testsuite_iterators.h
-
-
- Wrappers for various iterators.
-
-
-
-
- testsuite_performance.h
-
-
- A number of class abstractions for performance counters, and
- reporting functions including:
-
-
- time_counter
- resource_counter
- report_performance
-
-
-
-
-Running the Testsuite
- Basic Results
-
- There are several options for running tests, including testing
- the regression tests, testing a subset of the regression tests,
- testing the performance tests, testing just compilation, testing
- installed tools, etc. In addition, there is a special rule for
- checking the exported symbols of the shared library.
-
+ Basic
You can check the status of the build without installing it
@@ -361,7 +258,7 @@ cat 27_io/objects/char/3_xin.in | a.out
Archives of test results for various versions and platforms are
available on the GCC website in the build
+ url="http://gcc.gnu.org/gcc-4.3/buildstat.html">build
status section of each individual release, and are also
archived on a daily basis on the gcc-testresults
@@ -370,8 +267,15 @@ cat 27_io/objects/char/3_xin.in | a.out
-
- Options
+
+ Variations
+
+ There are several options for running tests, including testing
+ the regression tests, testing a subset of the regression tests,
+ testing the performance tests, testing just compilation, testing
+ installed tools, etc. In addition, there is a special rule for
+ checking the exported symbols of the shared library.
+
To debug the dejagnu test harness during runs, try invoking with a
specific argument to the variable RUNTESTFLAGS, as below.
@@ -567,7 +471,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
- Test Permutations
+ Permutations
To run the libstdc++ test suite under the debug mode, edit
@@ -582,15 +486,23 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
library or the test suite.
+
+ The parallel
+ mode can be tested in much the same manner, substituting
+ -D_GLIBCXX_PARALLEL for
+ -D_GLIBCXX_DEBUG in the previous paragraph.
+
+
Or, just run the testsuites with CXXFLAGS
- set to -D_GLIBCXX_DEBUG.
+ set to -D_GLIBCXX_DEBUG or
+ -D_GLIBCXX_PARALLEL.
-New Test Cases
+Writing a new test case
The first step in making a new test case is to choose the correct
@@ -718,14 +630,18 @@ up in the normal.exp file.
More examples can be found in the libstdc++-v3/testsuite/*/*.cc files.
+
-
+
+Test Harness and Utilities
-
-Test Harness Details
+
+Dejagnu Harness Details
- Underlying details of testing are abstracted via the GNU Dejagnu package.
+ Underlying details of testing for conformance and regressions are
+ abstracted via the GNU Dejagnu package. This is similar to the
+ rest of GCC.
@@ -764,58 +680,125 @@ board" information unique to this library. This is currently unused and sets
only default variables.
-
+
-
-Future
+
+Utilities
+
+ The testsuite directory also contains some files that implement
+ functionality that is intended to make writing test cases easier,
+ or to avoid duplication, or to provide error checking in a way that
+ is consistent across platforms and test harnesses. A stand-alone
+ executable, called abi_check, and a static
+ library called libtestc++ are
+ constructed. Both of these items are not installed, and only used
+ during testing.
+
+
+ These files include the following functionality:
+
-
-Shared runs need to be implemented, for targets that support shared libraries.
-
-
-
-Diffing of expected output to standard streams needs to be finished off.
-
-
-
-The V3 testing framework supports, or will eventually support,
-additional keywords for the purpose of easing the job of writing
-test cases. All V3-keywords are of the form @xxx@.
-Currently plans for supported keywords include:
-
-
-
- @require@ <files>
-
-
- The existence of <files> is essential for the test to complete
- successfully. For example, a test case foo.C using bar.baz as
- input file could say
-
-
- // @require@ bar.baz
-
- The special variable % stands for the rootname, e.g. the
- file-name without its `.C' extension. Example of use (taken
- verbatim from 27_io/filebuf.cc)
-
-
- // @require@ %-*.tst %-*.txt
-
- @diff@ <first-list> <second-list>
-
-
- After the test case compiles and ran successfully, diff
- <first-list> against <second-list>, these lists should
- have the same length. The test fails if diff returns non-zero a
- pair of files.
-
-
-
+
+
+
+ testsuite_abi.h,
+ testsuite_abi.cc,
+ testsuite_abi_check.cc
+
+
+ Creates the executable abi_check.
+ Used to check correctness of symbol versioning, visibility of
+ exported symbols, and compatibility on symbols in the shared
+ library, for hosts that support this feature. More information
+ can be found in the ABI documentation here
+
+
+
+
+ testsuite_allocator.h,
+ testsuite_allocator.cc
+
+
+ Contains specialized allocators that keep track of construction
+ and destruction. Also, support for overriding global new and
+ delete operators, including verification that new and delete
+ are called during execution, and that allocation over max_size
+ fails.
+
+
+
+
+ testsuite_character.h
+
+
+ Contains std::char_traits and
+ std::codecvt specializations for a user-defined
+ POD.
+
+
+
+
+ testsuite_hooks.h,
+ testsuite_hooks.cc
+
+
+ A large number of utilities, including:
+
+
+ VERIFY
+ set_memory_limits
+ verify_demangle
+ run_tests_wrapped_locale
+ run_tests_wrapped_env
+ try_named_locale
+ try_mkfifo
+ func_callback
+ counter
+ copy_tracker
+ copy_constructor
+ assignment_operator
+ destructor
+
+ pod_char, pod_int and associated char_traits specializations
+
+
+
+
+
+ testsuite_io.h
+
+
+ Error, exception, and constraint checking for
+ std::streambuf, std::basic_stringbuf, std::basic_filebuf.
+
+
+
+
+ testsuite_iterators.h
+
+
+ Wrappers for various iterators.
+
+
+
+
+ testsuite_performance.h
+
+
+ A number of class abstractions for performance counters, and
+ reporting functions including:
+
+
+ time_counter
+ resource_counter
+ report_performance
+
+
+
+
-
--
2.47.3