From 18246cedb54858482e28e44693f7459528f2714e Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 21 Apr 2010 23:33:44 +0000 Subject: [PATCH] faq.xml: Link to manual. 2010-04-22 Jonathan Wakely * doc/xml/faq.xml: Link to manual. * doc/xml/manual/using.xml: Expand dynamic libraries section. * doc/xml/manual/strings.xml: Mention shrink_to_fit() member. * doc/xml/manual/prerequisites.xml: Link to doxygen requirements. * doc/xml/manual/appendix_contributing.xml: Update Bash version. * doc/html/*: Regenerate. From-SVN: r158624 --- libstdc++-v3/ChangeLog | 9 + libstdc++-v3/doc/html/api.html | 35 +- libstdc++-v3/doc/html/bk02.html | 2 +- libstdc++-v3/doc/html/bk03.html | 2 +- libstdc++-v3/doc/html/faq.html | 16 +- libstdc++-v3/doc/html/manual/abi.html | 157 ++-- libstdc++-v3/doc/html/manual/algorithms.html | 60 +- libstdc++-v3/doc/html/manual/api.html | 14 +- .../html/manual/appendix_contributing.html | 54 +- .../doc/html/manual/appendix_free.html | 12 +- .../doc/html/manual/appendix_gfdl.html | 8 +- .../doc/html/manual/appendix_gpl.html | 12 +- .../doc/html/manual/appendix_porting.html | 12 +- libstdc++-v3/doc/html/manual/associative.html | 113 ++- libstdc++-v3/doc/html/manual/atomics.html | 31 + libstdc++-v3/doc/html/manual/auto_ptr.html | 90 --- libstdc++-v3/doc/html/manual/backwards.html | 211 +++-- .../doc/html/manual/bitmap_allocator.html | 14 +- libstdc++-v3/doc/html/manual/bitset.html | 105 --- libstdc++-v3/doc/html/manual/bk01ix01.html | 51 -- libstdc++-v3/doc/html/manual/bk01pt02.html | 46 ++ .../doc/html/manual/bk01pt02ch04s02.html | 49 -- .../doc/html/manual/bk01pt02ch04s03.html | 29 - ...bk01pt03ch08.html => bk01pt02ch05s02.html} | 9 +- .../doc/html/manual/bk01pt02pr01.html | 17 - .../doc/html/manual/bk01pt03ch07s02.html | 20 - .../doc/html/manual/bk01pt03ch07s03.html | 4 - ...1pt12ch30s02.html => bk01pt03ch17s02.html} | 6 +- .../doc/html/manual/bk01pt03ch17s03.html | 24 + ...1pt12ch30s04.html => bk01pt03ch17s04.html} | 32 +- ...1pt12ch31s02.html => bk01pt03ch18s02.html} | 4 +- ...1pt12ch31s03.html => bk01pt03ch18s03.html} | 6 +- ...1pt12ch31s04.html => bk01pt03ch18s04.html} | 10 +- ...1pt12ch31s05.html => bk01pt03ch18s05.html} | 8 +- ...1pt12ch32s02.html => bk01pt03ch19s02.html} | 22 +- ...1pt12ch32s03.html => bk01pt03ch19s03.html} | 4 +- ...1pt12ch32s04.html => bk01pt03ch19s04.html} | 4 +- ...1pt12ch32s05.html => bk01pt03ch19s05.html} | 14 +- ...1pt12ch32s06.html => bk01pt03ch19s06.html} | 16 +- ...1pt12ch32s07.html => bk01pt03ch19s07.html} | 100 +-- ...1pt12ch34s02.html => bk01pt03ch21s02.html} | 6 +- ...1pt12ch34s03.html => bk01pt03ch21s03.html} | 4 +- ...1pt12ch41s02.html => bk01pt03ch28s02.html} | 6 +- ...1pt12ch41s03.html => bk01pt03ch28s03.html} | 7 +- .../{bk01pt12pr03.html => bk01pt03pr01.html} | 14 +- libstdc++-v3/doc/html/manual/bk01pt04.html | 21 + .../doc/html/manual/bk01pt05ch13.html | 90 --- .../doc/html/manual/bk01pt05ch13s02.html | 40 - .../doc/html/manual/bk01pt05ch13s03.html | 57 -- .../doc/html/manual/bk01pt05ch13s04.html | 79 -- .../doc/html/manual/bk01pt05ch13s05.html | 16 - .../doc/html/manual/bk01pt05ch13s06.html | 94 --- .../doc/html/manual/bk01pt08ch19.html | 39 - .../doc/html/manual/bk01pt08ch19s02.html | 86 --- .../doc/html/manual/bk01pt09ch20.html | 19 - .../doc/html/manual/bk01pt09pr02.html | 41 - .../doc/html/manual/bk01pt10ch23s02.html | 19 - .../doc/html/manual/bk01pt11ch25s02.html | 77 -- .../doc/html/manual/bk01pt11ch27s02.html | 101 --- .../doc/html/manual/bk01pt11ch28s02.html | 49 -- .../doc/html/manual/bk01pt12ch30s03.html | 24 - libstdc++-v3/doc/html/manual/bugs.html | 270 +++---- libstdc++-v3/doc/html/manual/codecvt.html | 379 --------- libstdc++-v3/doc/html/manual/complex.html | 25 - libstdc++-v3/doc/html/manual/concurrency.html | 42 + libstdc++-v3/doc/html/manual/configure.html | 258 +++---- libstdc++-v3/doc/html/manual/containers.html | 54 +- .../doc/html/manual/containers_and_c.html | 20 +- libstdc++-v3/doc/html/manual/debug.html | 33 +- libstdc++-v3/doc/html/manual/debug_mode.html | 8 +- libstdc++-v3/doc/html/manual/diagnostics.html | 42 +- .../doc/html/manual/documentation_style.html | 76 +- .../doc/html/manual/dynamic_memory.html | 15 +- libstdc++-v3/doc/html/manual/exceptions.html | 22 - .../doc/html/manual/ext_algorithms.html | 10 +- .../doc/html/manual/ext_allocators.html | 80 +- .../doc/html/manual/ext_compile_checks.html | 6 +- .../doc/html/manual/ext_concurrency.html | 16 +- .../doc/html/manual/ext_containers.html | 6 +- .../doc/html/manual/ext_demangling.html | 8 +- libstdc++-v3/doc/html/manual/ext_io.html | 58 +- .../doc/html/manual/ext_iterators.html | 6 +- .../doc/html/manual/ext_numerics.html | 6 +- .../doc/html/manual/ext_utilities.html | 14 +- libstdc++-v3/doc/html/manual/extensions.html | 8 +- libstdc++-v3/doc/html/manual/facets.html | 723 +++++++++++++++++- libstdc++-v3/doc/html/manual/fstreams.html | 114 ++- libstdc++-v3/doc/html/manual/functors.html | 15 - .../doc/html/manual/fundamental_types.html | 43 -- .../generalized_numeric_operations.html | 11 +- libstdc++-v3/doc/html/manual/internals.html | 86 +-- libstdc++-v3/doc/html/manual/intro.html | 2 +- libstdc++-v3/doc/html/manual/io.html | 120 ++- libstdc++-v3/doc/html/manual/io_and_c.html | 54 +- .../doc/html/manual/iostream_objects.html | 119 --- libstdc++-v3/doc/html/manual/iterators.html | 129 +++- libstdc++-v3/doc/html/manual/license.html | 4 +- libstdc++-v3/doc/html/manual/locales.html | 428 ----------- .../doc/html/manual/localization.html | 438 ++++++++++- libstdc++-v3/doc/html/manual/memory.html | 511 +++++++++++-- libstdc++-v3/doc/html/manual/messages.html | 284 ------- libstdc++-v3/doc/html/manual/numerics.html | 29 +- .../doc/html/manual/numerics_and_c.html | 22 +- libstdc++-v3/doc/html/manual/pairs.html | 11 +- .../doc/html/manual/parallel_mode.html | 10 +- .../doc/html/manual/profile_mode.html | 22 +- libstdc++-v3/doc/html/manual/sequences.html | 43 -- libstdc++-v3/doc/html/manual/setup.html | 18 +- libstdc++-v3/doc/html/manual/shared_ptr.html | 304 -------- .../doc/html/manual/source_code_style.html | 92 +-- .../doc/html/manual/source_organization.html | 12 +- libstdc++-v3/doc/html/manual/spine.html | 40 +- libstdc++-v3/doc/html/manual/status.html | 28 +- libstdc++-v3/doc/html/manual/streambufs.html | 83 +- libstdc++-v3/doc/html/manual/strings.html | 365 ++++++++- .../doc/html/manual/stringstreams.html | 10 +- libstdc++-v3/doc/html/manual/support.html | 129 +++- libstdc++-v3/doc/html/manual/termination.html | 104 ++- libstdc++-v3/doc/html/manual/test.html | 10 +- libstdc++-v3/doc/html/manual/traits.html | 6 +- libstdc++-v3/doc/html/manual/using.html | 4 +- .../doc/html/manual/using_concurrency.html | 2 +- .../html/manual/using_dynamic_or_shared.html | 26 +- .../doc/html/manual/using_exceptions.html | 91 ++- .../doc/html/manual/using_headers.html | 12 +- .../doc/html/manual/using_macros.html | 10 +- libstdc++-v3/doc/html/manual/utilities.html | 16 +- libstdc++-v3/doc/html/manual/vector.html | 13 - .../doc/html/manual/verbose_termination.html | 79 -- libstdc++-v3/doc/html/spine.html | 38 +- libstdc++-v3/doc/xml/faq.xml | 10 +- .../doc/xml/manual/appendix_contributing.xml | 2 +- libstdc++-v3/doc/xml/manual/prerequisites.xml | 6 + libstdc++-v3/doc/xml/manual/strings.xml | 4 + libstdc++-v3/doc/xml/manual/using.xml | 28 +- 135 files changed, 4338 insertions(+), 4205 deletions(-) create mode 100644 libstdc++-v3/doc/html/manual/atomics.html delete mode 100644 libstdc++-v3/doc/html/manual/auto_ptr.html delete mode 100644 libstdc++-v3/doc/html/manual/bitset.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01ix01.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt02ch04s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt02ch04s03.html rename libstdc++-v3/doc/html/manual/{bk01pt03ch08.html => bk01pt02ch05s02.html} (61%) delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt02pr01.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt03ch07s03.html rename libstdc++-v3/doc/html/manual/{bk01pt12ch30s02.html => bk01pt03ch17s02.html} (92%) create mode 100644 libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html rename libstdc++-v3/doc/html/manual/{bk01pt12ch30s04.html => bk01pt03ch17s04.html} (96%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch31s02.html => bk01pt03ch18s02.html} (82%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch31s03.html => bk01pt03ch18s03.html} (95%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch31s04.html => bk01pt03ch18s04.html} (95%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch31s05.html => bk01pt03ch18s05.html} (84%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s02.html => bk01pt03ch19s02.html} (86%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s03.html => bk01pt03ch19s03.html} (80%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s04.html => bk01pt03ch19s04.html} (80%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s05.html => bk01pt03ch19s05.html} (88%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s06.html => bk01pt03ch19s06.html} (89%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch32s07.html => bk01pt03ch19s07.html} (94%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch34s02.html => bk01pt03ch21s02.html} (89%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch34s03.html => bk01pt03ch21s03.html} (92%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch41s02.html => bk01pt03ch28s02.html} (92%) rename libstdc++-v3/doc/html/manual/{bk01pt12ch41s03.html => bk01pt03ch28s03.html} (63%) rename libstdc++-v3/doc/html/manual/{bk01pt12pr03.html => bk01pt03pr01.html} (81%) create mode 100644 libstdc++-v3/doc/html/manual/bk01pt04.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13s03.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13s04.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13s05.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt05ch13s06.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt08ch19.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt08ch19s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt09ch20.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt09pr02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt10ch23s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt11ch25s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt11ch27s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt11ch28s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html delete mode 100644 libstdc++-v3/doc/html/manual/codecvt.html delete mode 100644 libstdc++-v3/doc/html/manual/complex.html create mode 100644 libstdc++-v3/doc/html/manual/concurrency.html delete mode 100644 libstdc++-v3/doc/html/manual/exceptions.html delete mode 100644 libstdc++-v3/doc/html/manual/functors.html delete mode 100644 libstdc++-v3/doc/html/manual/fundamental_types.html delete mode 100644 libstdc++-v3/doc/html/manual/iostream_objects.html delete mode 100644 libstdc++-v3/doc/html/manual/locales.html delete mode 100644 libstdc++-v3/doc/html/manual/messages.html delete mode 100644 libstdc++-v3/doc/html/manual/sequences.html delete mode 100644 libstdc++-v3/doc/html/manual/shared_ptr.html delete mode 100644 libstdc++-v3/doc/html/manual/vector.html delete mode 100644 libstdc++-v3/doc/html/manual/verbose_termination.html diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d34b55a8362..841dd99d7f6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2010-04-22 Jonathan Wakely + + * doc/xml/faq.xml: Link to manual. + * doc/xml/manual/using.xml: Expand dynamic libraries section. + * doc/xml/manual/strings.xml: Mention shrink_to_fit() member. + * doc/xml/manual/prerequisites.xml: Link to doxygen requirements. + * doc/xml/manual/appendix_contributing.xml: Update Bash version. + * doc/html/*: Regenerate. + 2010-04-13 Ian Lance Taylor * include/backward/hash_map: Don't #include "backward_warning.h" diff --git a/libstdc++-v3/doc/html/api.html b/libstdc++-v3/doc/html/api.html index 61ddda971a2..5a40764298d 100644 --- a/libstdc++-v3/doc/html/api.html +++ b/libstdc++-v3/doc/html/api.html @@ -1,24 +1,25 @@ -API and Source Level Documentation

API and Source Level Documentation

API Documentation


-The GNU C++ library sources have been specially formatted so that with the -proper invocation of another tool (Doxygen), a set of HTML pages -are generated from the sources files themselves. The resultant -documentation is referred to as Source Level Documentation, and is -useful for examining the signatures of public member functions for -the library classes, finding out what is in a particular include -file, looking at inheritance diagrams, etc. + The GNU C++ library sources have been specially formatted so that + with the proper invocation of another tool (Doxygen), a set of + indexed reference material can generated from the sources files + themselves. The resultant documentation is referred to as the API + documentation, and is useful for examining the signatures of public + member functions for the library classes, finding out what is in a + particular include file, looking at inheritance diagrams, etc.

-The source-level documentation for the most recent releases can be -viewed online: + The API documentation, rendered into HTML, can be viewed online:

  • for the 3.4 release @@ -39,16 +40,14 @@ viewed online: (For the main development tree; see the date on the first page.)

-This generated HTML collection, as above, is also available for download in the libstdc++ snapshots directory at + The rendered HTML, as above, is also available for download on the + gcc.org site in a directory located at <URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/>. You will almost certainly need to use one of the mirror sites to download - the tarball. After unpacking, simply load libstdc++-html-*/index.html + the tarball. After unpacking, simply load libstdc++-html-*/index.html into a browser.

-Documentation for older releases is available for download only, not -online viewing. -

-In addition, an initial set of man pages are also available in the -same place as the HTML collections. Start with C++Intro(3). + In addition, a rendered set of man pages are available in the same + location specified above. Start with C++Intro(3).

diff --git a/libstdc++-v3/doc/html/bk02.html b/libstdc++-v3/doc/html/bk02.html index f0dbebb2ac4..16ac5f094f6 100644 --- a/libstdc++-v3/doc/html/bk02.html +++ b/libstdc++-v3/doc/html/bk02.html @@ -1,3 +1,3 @@ - +

Table of Contents

API Documentation
diff --git a/libstdc++-v3/doc/html/bk03.html b/libstdc++-v3/doc/html/bk03.html index bc43c8d07bb..89beabfeb26 100644 --- a/libstdc++-v3/doc/html/bk03.html +++ b/libstdc++-v3/doc/html/bk03.html @@ -1,3 +1,3 @@ - + diff --git a/libstdc++-v3/doc/html/faq.html b/libstdc++-v3/doc/html/faq.html index 31ba54106aa..046cbb3bc83 100644 --- a/libstdc++-v3/doc/html/faq.html +++ b/libstdc++-v3/doc/html/faq.html @@ -4,7 +4,7 @@ 2008 FSF -



1. General Information
1.1. What is libstdc++?
1.2. Why should I use libstdc++? @@ -315,12 +315,15 @@ and ldconfig for more information. The dynamic linker has different names on different platforms but the man page is usually called something such as ld.so/rtld/dld.so. +

+ Using LD_LIBRARY_PATH is not always the best solution, Finding Dynamic or Shared + Libraries in the manual gives some alternatives.

3.5.

What's libsupc++?

If the only functions from libstdc++.a which you need are language support functions (those listed in - clause 18 of the + clause 18 of the standard, e.g., new and delete), then try linking against libsupc++.a, which is a subset of @@ -647,8 +650,9 @@ typo, or wrong visibility, or you just plain forgot, etc).

More information, including how to optionally enable/disable the - checks, is available - here. + checks, is available in the + Diagnostics. + chapter of the manual.

6.6.

Program crashes when using library code in a dynamically-loaded library @@ -685,7 +689,7 @@ list::size() is O(n)!

See - the Containers + the Containers chapter.

6.9.

Aw, that's easy to fix! @@ -869,6 +873,6 @@     

The copy will take O(n) time and the swap is constant time.

- See Shrink-to-fit + See Shrink-to-fit strings for a similar solution for strings.

diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index 25d0a568ee6..618da46367b 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -8,12 +8,12 @@ C++ applications often dependent on specific language support routines, say for throwing exceptions, or catching exceptions, and perhaps also dependent on features in the C++ Standard Library. -

+

The C++ Standard Library has many include files, types defined in those include files, specific named functions, and other behavior. The text of these behaviors, as written in source include files, is called the Application Programing Interface, or API. -

+

Furthermore, C++ source that is compiled into object files is transformed by the compiler: it arranges objects with specific alignment and in a particular layout, mangling names according to a @@ -32,7 +32,7 @@ -fno-exceptions, but include others: see the complete list in the GCC manual under the heading Options for Code Generation Conventions. -

+

The configure options used when building a specific libstdc++ version may also impact the resulting library ABI. The available configure options, and their impact on the library ABI, are @@ -240,11 +240,11 @@ int main() %g++ hello.cc -o hello.out %ldd hello.out - libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00764000) - libm.so.6 => /lib/tls/libm.so.6 (0x004a8000) - libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x40016000) - libc.so.6 => /lib/tls/libc.so.6 (0x0036d000) - /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000) + libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00764000) + libm.so.6 => /lib/tls/libm.so.6 (0x004a8000) + libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x40016000) + libc.so.6 => /lib/tls/libc.so.6 (0x0036d000) + /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000) %nm hello.out

@@ -273,7 +273,7 @@ class that would otherwise have implicit versions. This will change the way the compiler deals with this class in by-value return statements or parameters: instead of being passing instances of this class in registers, the compiler will be forced to use memory. See this part - of the C++ ABI documentation for further details. + of the C++ ABI documentation for further details.

Implementation

  1. Separation of interface and implementation

    @@ -298,7 +298,7 @@ class in registers, the compiler will be forced to use memory. See wchar_t instantiations, and includes basic_string, the locale facets, and the types in iostreams. -

+

In addition, these techniques have the additional benefit that they reduce binary size, which can increase runtime performance.

  • @@ -329,7 +329,7 @@ standard includes.

  • <

    Testing the C++ compiler ABI can be done various ways.

    - One. Intel ABI checker. + One. Intel ABI checker.

    Two. The second is yet unreleased, but has been announced on the gcc @@ -344,16 +344,16 @@ discussed on the gcc mailing lists.

    Testing the C++ library ABI can also be done various ways.

    -One. -(Brendan Kehoe, Jeff Law suggestion to run 'make check-c++' two ways, +One. +(Brendan Kehoe, Jeff Law suggestion to run 'make check-c++' two ways, one with a new compiler and an old library, and the other with an old compiler and a new library, and look for testsuite regressions)

    Details on how to set this kind of test up can be found here: http://gcc.gnu.org/ml/gcc/2002-08/msg00142.html

    -Two. -Use the 'make check-abi' rule in the libstdc++ Makefile. +Two. +Use the 'make check-abi' rule in the libstdc++ Makefile.

    This is a proactive check the library ABI. Currently, exported symbol names that are either weak or defined are checked against a last known @@ -372,7 +372,7 @@ machinery.

    This dataset is insufficient, yet a start. Also needed is a comprehensive check for all user-visible types part of the standard -library for sizeof() and alignof() changes. +library for sizeof() and alignof() changes.

    Verifying compatible layouts of objects is not even attempted. It should be possible to use sizeof, alignof, and offsetof to compute @@ -403,7 +403,7 @@ exceptions, locale, etc. %$bld/H-x86-gcc-3.4.0/bin/g++ -c a.cc -%ar cru libone.a a.o +%ar cru libone.a a.o

    And, libtwo is constructed as follows:

     %$bld/H-x86-gcc-3.3.3/bin/g++ -fPIC -DPIC -c b.cc
     
    @@ -413,24 +413,24 @@ exceptions, locale, etc.
     
     %$bld/H-x86-gcc-3.3.3/bin/g++ -c b.cc
     
    -%ar cru libtwo.a b.o 
    +%ar cru libtwo.a b.o
     

    ...with the resulting libraries looking like

     
     %ldd libone.so.1.0.0
    -        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40016000)
    -        libm.so.6 => /lib/tls/libm.so.6 (0x400fa000)
    -        libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x4011c000)
    -        libc.so.6 => /lib/tls/libc.so.6 (0x40125000)
    -        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
    +	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40016000)
    +	libm.so.6 => /lib/tls/libm.so.6 (0x400fa000)
    +	libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x4011c000)
    +	libc.so.6 => /lib/tls/libc.so.6 (0x40125000)
    +	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
     
     %ldd libtwo.so.1.0.0
    -        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40027000)
    -        libm.so.6 => /lib/tls/libm.so.6 (0x400e1000)
    -        libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x40103000)
    -        libc.so.6 => /lib/tls/libc.so.6 (0x4010c000)
    -        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
    +	libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40027000)
    +	libm.so.6 => /lib/tls/libm.so.6 (0x400e1000)
    +	libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x40103000)
    +	libc.so.6 => /lib/tls/libc.so.6 (0x4010c000)
    +	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
     
    -

    +

    Then, the "C" compiler is used to compile a source file that uses functions from each library.

    @@ -440,18 +440,18 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
     

     
     %ldd a.out
    -        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00764000)
    -        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40015000)
    -        libc.so.6 => /lib/tls/libc.so.6 (0x0036d000)
    -        libm.so.6 => /lib/tls/libm.so.6 (0x004a8000)
    -        libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x400e5000)
    -        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
    +	libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00764000)
    +	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40015000)
    +	libc.so.6 => /lib/tls/libc.so.6 (0x0036d000)
    +	libm.so.6 => /lib/tls/libm.so.6 (0x004a8000)
    +	libgcc_s.so.1 => /mnt/hd/bld/gcc/gcc/libgcc_s.so.1 (0x400e5000)
    +	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00355000)
     
     

    This resulting binary, when executed, will be able to safely use code from both liba, and the dependent libstdc++.so.6, and libb, with the dependent libstdc++.so.5. -

    Outstanding Issues

    +

    Outstanding Issues

    Some features in the C++ language make versioning especially difficult. In particular, compiler generated constructs such as implicit instantiations for templates, typeinfo information, and @@ -464,60 +464,71 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. 24660: versioning weak symbols in libstdc++

    19664: libstdc++ headers should have pop/push of the visibility around the declarations -

    Bibliography

    - ABIcheck, a vague idea of checking ABI compatibility - . +

    Bibliography

    - C++ ABI Reference - . + .

    - 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) - . + .

    - How to Write Shared Libraries - . Ulrich Drepper. + .

    - C++ ABI for the ARM Architecture - . + . Ulrich Drepper.

    - Dynamic Shared Objects: Survey and Issues - . - ISO C++ J16/06-0046 - . Benjamin Kosnik. + .

    - Versioning With Namespaces - . - ISO C++ J16/06-0083 - . Benjamin Kosnik. + . + ISO C++ J16/06-0046 + . Benjamin Kosnik.

    - Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems - . -SYRCoSE 2009 - . Pavel Shved. Denis Silakov. + . + ISO C++ J16/06-0083 + . Benjamin Kosnik.

    + . + SYRCoSE 2009 + . Pavel Shved. Denis Silakov.

    diff --git a/libstdc++-v3/doc/html/manual/algorithms.html b/libstdc++-v3/doc/html/manual/algorithms.html index 6049cd8ec0e..3e5b3a5a86e 100644 --- a/libstdc++-v3/doc/html/manual/algorithms.html +++ b/libstdc++-v3/doc/html/manual/algorithms.html @@ -1,9 +1,61 @@ -Part IX.  Algorithms

    Chapter 11.  Algorithms - -

    + +

    Table of Contents

    Mutating
    swap

    + The neatest accomplishment of the algorithms sect1 is that all the + work is done via iterators, not containers directly. This means two + important things: +

    1. + Anything that behaves like an iterator can be used in one of + these algorithms. Raw pointers make great candidates, thus + built-in arrays are fine containers, as well as your own + iterators. +

    2. + The algorithms do not (and cannot) affect the container as a + whole; only the things between the two iterator endpoints. If + you pass a range of iterators only enclosing the middle third of + a container, then anything outside that range is inviolate. +

    + Even strings can be fed through the algorithms here, although the + string class has specialized versions of many of these functions + (for example, string::find()). Most of the examples + on this page will use simple arrays of integers as a playground + for algorithms, just to keep things simple. The use of + N as a size in the examples is to keep things + easy to read but probably won't be valid code. You can use wrappers + such as those described in + the containers sect1 to keep + real code readable. +

    + The single thing that trips people up the most is the definition + of range used with iterators; the famous + "past-the-end" rule that everybody loves to hate. The + iterators sect1 of this + document has a complete explanation of this simple rule that seems + to cause so much confusion. Once you + get range into your head (it's not that hard, + honest!), then the algorithms are a cakewalk. +

    Mutating

    swap

    Specializations

    If you call std::swap(x,y); where x and y are standard + containers, then the call will automatically be replaced by a call to + x.swap(y); instead. +

    This allows member functions of each container class to take over, and + containers' swap functions should have O(1) complexity according to + the standard. (And while "should" allows implementations to + behave otherwise and remain compliant, this implementation does in + fact use constant-time swaps.) This should not be surprising, since + for two containers of the same type to swap contents, only some + internal pointers to storage need to be exchanged. +

    diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 0b70a4cb1bc..a8b88b7d5a9 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -30,8 +30,8 @@ Removal of ext/tree, moved to backward/strstream.h.

    Allocator changes. Change __malloc_alloc to malloc_allocator and __new_alloc to new_allocator.

    For GCC releases from 2.95 through the 3.1 series, defining __USE_MALLOC on the gcc command line would change the default allocation strategy to instead use malloc and - free. (This same functionality is now spelled _GLIBCXX_FORCE_NEW, see - this page + free. (This same functionality is now spelled _GLIBCXX_FORCE_NEW, see + this page for details.

    Error handling in iostreams cleaned up, made consistent.

    3.3

    3.4

    @@ -75,11 +75,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.hstd::__new_allocmemory
    __gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
    __gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
    __gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__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.hstd::__new_allocmemory
    __gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
    __gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
    __gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__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

    AllocatorIncludeVersion
    __gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
    __gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

    +

    Table B.2. Extension Allocators Continued

    AllocatorIncludeVersion
    __gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
    __gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

    Debug mode first appears.

    Precompiled header support PCH support. @@ -143,13 +143,13 @@ Debug mode for unordered_map and tuple and - functional. + functional.

    Default what implementations give more elaborate exception strings for bad_cast, bad_typeid, bad_exception, and bad_alloc.

    -PCH binary files no longer installed. Instead, the source files are installed. +PCH binary files no longer installed. Instead, the source files are installed.

    Namespace pb_ds moved to __gnu_pb_ds.

    4.4

    @@ -227,7 +227,7 @@ C++0X features.

    Profile mode first appears.

    -Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128. +Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128.

    Python pretty-printers are added for use with appropriately-advanced versions of gdb.

    diff --git a/libstdc++-v3/doc/html/manual/appendix_contributing.html b/libstdc++-v3/doc/html/manual/appendix_contributing.html index 422b57a813e..467f7fd0988 100644 --- a/libstdc++-v3/doc/html/manual/appendix_contributing.html +++ b/libstdc++-v3/doc/html/manual/appendix_contributing.html @@ -1,17 +1,19 @@ -Appendix A.  Contributing

    The GNU C++ Library follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given write access to the source repository. First time contributors should follow this procedure: -

    Contributor Checklist

    Reading

    • +

      Contributor Checklist

      Reading

      • Get and read the relevant sections of the C++ language specification. Copies of the full ISO 14882 standard are available on line via the ISO mirror site for committee @@ -21,29 +23,29 @@ the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their web-site is right - here. - (And if you've already registered with them, clicking this link will take you to directly to the place where you can + here. + (And if you've already registered with them, clicking this link will take you to directly to the place where you can buy the standard on-line.) -

      • +

      • The library working group bugs, and known defects, can be obtained here: http://www.open-std.org/jtc1/sc22/wg21 -

      • +

      • The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found here . -

      • +

      • Peruse the GNU Coding Standards, and chuckle when you hit the part about Using Languages Other Than C. -

      • +

      • Be familiar with the extensions that preceded these general GNU rules. These style issues for libstdc++ can be found here. -

      • +

      • And last but certainly not least, read the library-specific information found here. @@ -51,8 +53,8 @@ Small changes can be accepted without a copyright assignment form on file. New code and additions to the library need completed copyright assignment form on file at the FSF. Note: your employer may be required - to fill out appropriate disclaimer forms as well. -

        + to fill out appropriate disclaimer forms as well. +

        Historically, the libstdc++ assignment form added the following question:

        @@ -64,7 +66,7 @@ While not strictly necessary, humoring the maintainers and answering this question would be appreciated.

        - For more information about getting a copyright assignment, please see + For more information about getting a copyright assignment, please see Legal Matters.

        @@ -81,22 +83,22 @@ Every patch must have several pieces of information before it can be properly evaluated. Ideally (and to ensure the fastest possible response from the maintainers) it would have all of these pieces: -

        • +

          • A description of the bug and how your patch fixes this bug. For new features a description of the feature and your - implementation. -

          • + implementation. +

          • A ChangeLog entry as plain text; see the various ChangeLog files for format and content. If you are using emacs as your editor, simply position the insertion point at the beginning of your change and hit CX-4a to bring up the appropriate ChangeLog entry. See--magic! Similar - functionality also exists for vi. -

          • + functionality also exists for vi. +

          • A testsuite submission or sample program that will easily and simply show the existing error or test new - functionality. -

          • + functionality. +

          • The patch itself. If you are accessing the SVN repository use svn update; svn diff NEW; else, use diff -cp OLD NEW ... If your @@ -105,9 +107,11 @@ diff. The SVN Tricks wiki page has information on customising the output of svn diff. -

          • +

          • When you have all these pieces, bundle them up in a mail message and send it to libstdc++@gcc.gnu.org. All patches and related discussion should be sent to the - libstdc++ mailing list. -

      + libstdc++ mailing list. +

    diff --git a/libstdc++-v3/doc/html/manual/appendix_free.html b/libstdc++-v3/doc/html/manual/appendix_free.html index dd77c972f07..bc6c37655ea 100644 --- a/libstdc++-v3/doc/html/manual/appendix_free.html +++ b/libstdc++-v3/doc/html/manual/appendix_free.html @@ -1,11 +1,13 @@ -Appendix C.  Free Software Needs Free Documentation

    Appendix C.  Free Software Needs Free Documentation - +

    The biggest deficiency in free operating systems is not in the software--it is the lack of good free manuals that we can include in @@ -35,7 +37,7 @@ restrict it so that we cannot use it.

    Given that writing good English is a rare skill among programmers, we can ill afford to lose manuals this way. -

    +

    Free documentation, like free software, is a matter of freedom, not price. The problem with these manuals was not that O'Reilly Associates charged a price for printed copies--that in itself is fine. @@ -119,6 +121,6 @@ prefer copylefted manuals to non-copylefted ones. that lists free books available from other publishers].

    Copyright © 2004, 2005, 2006, 2007 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

    Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this -notice is preserved.

    Report any problems or suggestions to .