xref: /freebsd-12.1/contrib/libstdc++/README (revision f260e61b)
100db7afdSDavid E. O'Brienfile: libstdc++-v3/README
200db7afdSDavid E. O'Brien
300db7afdSDavid E. O'BrienNew users may wish to point their web browsers to the file
400db7afdSDavid E. O'Briendocumentation.html in the 'docs/html' subdirectory.  It contains brief
500db7afdSDavid E. O'Brienbuilding instructions and notes on how to configure the library in
600db7afdSDavid E. O'Brieninteresting ways.
700db7afdSDavid E. O'Brien
800db7afdSDavid E. O'BrienInstructions for configuring and building appear in
900db7afdSDavid E. O'Briendocs/html/install.html.
1000db7afdSDavid E. O'Brien
1100db7afdSDavid E. O'BrienThis directory contains the files needed to create an ISO Standard C++
1200db7afdSDavid E. O'BrienLibrary.
1300db7afdSDavid E. O'Brien
1400db7afdSDavid E. O'BrienIt has subdirectories:
1500db7afdSDavid E. O'Brien
1600db7afdSDavid E. O'Brien  docs
1700db7afdSDavid E. O'Brien    Files in HTML and text format that document usage, quirks of the
1800db7afdSDavid E. O'Brien    implementation, and contributor checklists.
1900db7afdSDavid E. O'Brien
2000db7afdSDavid E. O'Brien  include
2100db7afdSDavid E. O'Brien    All header files for the C++ library are within this directory,
2200db7afdSDavid E. O'Brien    modulo specific runtime-related files that are in the libsupc++
2300db7afdSDavid E. O'Brien    directory.
2400db7afdSDavid E. O'Brien
2500db7afdSDavid E. O'Brien    include/std
2600db7afdSDavid E. O'Brien      Files meant to be found by #include <name> directives in
2700db7afdSDavid E. O'Brien      standard-conforming user programs.
2800db7afdSDavid E. O'Brien
2900db7afdSDavid E. O'Brien    include/c
3000db7afdSDavid E. O'Brien      Headers intended to directly include standard C headers.
3100db7afdSDavid E. O'Brien      [NB: this can be enabled via --enable-cheaders=c]
3200db7afdSDavid E. O'Brien
3300db7afdSDavid E. O'Brien    include/c_std
3400db7afdSDavid E. O'Brien      Headers intended to include standard C headers, and put select
3500db7afdSDavid E. O'Brien      names into the std:: namespace.
3600db7afdSDavid E. O'Brien      [NB: this is the default, and is the same as --enable-cheaders=c_std]
3700db7afdSDavid E. O'Brien
3800db7afdSDavid E. O'Brien    include/bits
3900db7afdSDavid E. O'Brien      Files included by standard headers and by other files in
4000db7afdSDavid E. O'Brien      the bits directory.
4100db7afdSDavid E. O'Brien
4200db7afdSDavid E. O'Brien    include/backward
4300db7afdSDavid E. O'Brien      Headers provided for backward compatibility, such as <iostream.h>.
4400db7afdSDavid E. O'Brien      They are not used in this library.
4500db7afdSDavid E. O'Brien
4600db7afdSDavid E. O'Brien    include/ext
4700db7afdSDavid E. O'Brien      Headers that define extensions to the standard library.  No
4800db7afdSDavid E. O'Brien      standard header refers to any of them.
4900db7afdSDavid E. O'Brien
50*ffeaf689SAlexander Kabaev  scripts
51*ffeaf689SAlexander Kabaev    Scripts that are used during the configure, build, make, or test
52*ffeaf689SAlexander Kabaev    process.
53*ffeaf689SAlexander Kabaev
5400db7afdSDavid E. O'Brien  src
5500db7afdSDavid E. O'Brien    Files that are used in constructing the library, but are not
5600db7afdSDavid E. O'Brien    installed.
5700db7afdSDavid E. O'Brien
58*ffeaf689SAlexander Kabaev  testsuites/[backward, demangle, ext, performance, thread, 17_* to 27_*]
5900db7afdSDavid E. O'Brien    Test programs are here, and may be used to begin to exercise the
6000db7afdSDavid E. O'Brien    library.  Support for "make check" and "make check-install" is
6100db7afdSDavid E. O'Brien    complete, and runs through all the subdirectories here when this
6200db7afdSDavid E. O'Brien    command is issued from the build directory.  Please note that
6300db7afdSDavid E. O'Brien    "make check" requires DejaGNU 1.4 or later to be installed.  Please
6400db7afdSDavid E. O'Brien    note that "make check-script" calls the script mkcheck, which
6500db7afdSDavid E. O'Brien    requires bash, and which may need the paths to bash adjusted to
6600db7afdSDavid E. O'Brien    work properly, as /bin/bash is assumed.
6700db7afdSDavid E. O'Brien
6800db7afdSDavid E. O'BrienOther subdirectories contain variant versions of certain files
6900db7afdSDavid E. O'Brienthat are meant to be copied or linked by the configure script.
7000db7afdSDavid E. O'BrienCurrently these are:
7100db7afdSDavid E. O'Brien
72*ffeaf689SAlexander Kabaev  config/abi
7300db7afdSDavid E. O'Brien  config/cpu
7400db7afdSDavid E. O'Brien  config/io
7500db7afdSDavid E. O'Brien  config/locale
76*ffeaf689SAlexander Kabaev  config/os
7700db7afdSDavid E. O'Brien
78*ffeaf689SAlexander KabaevIn addition, two subdirectories are convenience libraries:
7900db7afdSDavid E. O'Brien
8000db7afdSDavid E. O'Brien  libmath
8100db7afdSDavid E. O'Brien    Support routines needed for C++ math. Only needed if the
8200db7afdSDavid E. O'Brien    underlying "C" implementation is non-existent, in particular
8300db7afdSDavid E. O'Brien    required or optimal long double, long long, and C99 functionality.
8400db7afdSDavid E. O'Brien
8500db7afdSDavid E. O'Brien  libsupc++
8600db7afdSDavid E. O'Brien    Contains the runtime library for C++, including exception
8700db7afdSDavid E. O'Brien    handling and memory allocation and deallocation, RTTI, terminate
8800db7afdSDavid E. O'Brien    handlers, etc.
8900db7afdSDavid E. O'Brien
9000db7afdSDavid E. O'BrienNote that glibc also has a bits/ subdirectory.  We will either
9100db7afdSDavid E. O'Brienneed to be careful not to collide with names in its bits/
9200db7afdSDavid E. O'Briendirectory; or rename bits to (e.g.) cppbits/.
9300db7afdSDavid E. O'Brien
9400db7afdSDavid E. O'BrienIn files throughout the system, lines marked with an "XXX" indicate
9500db7afdSDavid E. O'Briena bug or incompletely-implemented feature.  Lines marked "XXX MT"
9600db7afdSDavid E. O'Brienindicate a place that may require attention for multi-thread safety.
97