Update docs on libstdc++ source-code layout

* doc/xml/manual/appendix_contributing.xml (contrib.organization):
	Describe other subdirectories and add markup. Remove outdated
	reference to check-script target.
	* doc/html/*: Regenerate.

From-SVN: r240946
This commit is contained in:
Jonathan Wakely 2016-10-10 19:57:15 +01:00 committed by Jonathan Wakely
parent fbcdc43e3c
commit db62593447
8 changed files with 238 additions and 87 deletions

View File

@ -1,5 +1,10 @@
2016-10-10 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/appendix_contributing.xml (contrib.organization):
Describe other subdirectories and add markup. Remove outdated
reference to check-script target.
* doc/html/*: Regenerate.
* doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
* libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT

File diff suppressed because one or more lines are too long

View File

@ -423,6 +423,10 @@
</span></dt><dd><p>The <code class="code">tuple_size</code> and <code class="code">tuple_element</code>
partial specializations are defined in <code class="code">&lt;utility&gt;</code> which
is included by <code class="code">&lt;array&gt;</code>.
</p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2296" target="_top">2296</a>:
<span class="emphasis"><em><code class="code">std::addressof</code> should be constexpr</em></span>
</span></dt><dd><p>Use <code class="code">__builtin_addressof</code> and add
<code class="code">constexpr</code> to <code class="code">addressof</code> for C++17 and later.
</p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2313" target="_top">2313</a>:
<span class="emphasis"><em><code class="code">tuple_size</code> should always derive from <code class="code">integral_constant&lt;size_t, N&gt;</code></em></span>
</span></dt><dd><p>Update definitions of the partial specializations for const and volatile types.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,89 +3,102 @@
Contributing
</th><td width="20%" align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.organization"></a>Directory Layout and Source Conventions</h2></div></div></div><p>
The unpacked source directory of libstdc++ contains the files
needed to create the GNU C++ Library.
The <code class="filename">libstdc++-v3</code> directory in the
GCC sources contains the files needed to create the GNU C++ Library.
</p><div class="literallayout"><p><br />
It has subdirectories:<br />
<br />
  doc<br />
  <code class="filename">doc</code><br />
    Files in HTML and text format that document usage, quirks of the<br />
    implementation, and contributor checklists.<br />
<br />
  include<br />
  <code class="filename">include</code><br />
    All header files for the C++ library are within this directory,<br />
    modulo specific runtime-related files that are in the libsupc++<br />
    directory.<br />
<br />
    include/std<br />
    <code class="filename">include/std</code><br />
      Files meant to be found by #include &lt;name&gt; directives in<br />
      standard-conforming user programs.<br />
<br />
    include/c<br />
    <code class="filename">include/c</code><br />
      Headers intended to directly include standard C headers.<br />
      [NB: this can be enabled via --enable-cheaders=c]<br />
      [NB: this can be enabled via <code class="option">--enable-cheaders=c</code>]<br />
<br />
    include/c_global<br />
    <code class="filename">include/c_global</code><br />
      Headers intended to include standard C headers in<br />
      the global namespace, and put select names into the std::<br />
      namespace.  [NB: this is the default, and is the same as<br />
      --enable-cheaders=c_global]<br />
      <code class="option">--enable-cheaders=c_global</code>]<br />
<br />
    include/c_std<br />
    <code class="filename">include/c_std</code><br />
      Headers intended to include standard C headers<br />
      already in namespace std, and put select names into the std::<br />
      namespace.  [NB: this is the same as --enable-cheaders=c_std]<br />
      namespace.  [NB: this is the same as<br />
      <code class="option">--enable-cheaders=c_std</code>]<br />
<br />
    include/bits<br />
    <code class="filename">include/bits</code><br />
      Files included by standard headers and by other files in<br />
      the bits directory.<br />
<br />
    include/backward<br />
    <code class="filename">include/backward</code><br />
      Headers provided for backward compatibility, such as &lt;iostream.h&gt;.<br />
      They are not used in this library.<br />
<br />
    include/ext<br />
    <code class="filename">include/ext</code><br />
      Headers that define extensions to the standard library.  No<br />
      standard header refers to any of them.<br />
<br />
  scripts<br />
  <code class="filename">scripts</code><br />
    Scripts that are used during the configure, build, make, or test<br />
    process.<br />
<br />
  src<br />
  <code class="filename">src</code><br />
    Files that are used in constructing the library, but are not<br />
    installed.<br />
<br />
  testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]<br />
    <code class="filename">src/c++98</code><br />
    Source files compiled using <code class="option">-std=gnu++98</code>.<br />
<br />
    <code class="filename">src/c++11</code><br />
    Source files compiled using <code class="option">-std=gnu++11</code>.<br />
<br />
    <code class="filename">src/filesystem</code><br />
    Source files for the Filesystem TS.<br />
<br />
    <code class="filename">src/shared</code><br />
    Source code included by other files under both<br />
    <code class="filename">src/c++98</code> and<br />
    <code class="filename">src/c++11</code><br />
<br />
  <code class="filename">testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]</code><br />
    Test programs are here, and may be used to begin to exercise the<br />
    library.  Support for "make check" and "make check-install" is<br />
    complete, and runs through all the subdirectories here when this<br />
    command is issued from the build directory.  Please note that<br />
    "make check" requires DejaGNU 1.4 or later to be installed.  Please<br />
    note that "make check-script" calls the script mkcheck, which<br />
    requires bash, and which may need the paths to bash adjusted to<br />
    work properly, as /bin/bash is assumed.<br />
    "make check" requires DejaGNU 1.4 or later to be installed.<br />
<br />
Other subdirectories contain variant versions of certain files<br />
that are meant to be copied or linked by the configure script.<br />
Currently these are:<br />
<br />
  config/abi<br />
  config/cpu<br />
  config/io<br />
  config/locale<br />
  config/os<br />
  <code class="filename">config/abi</code><br />
  <code class="filename">config/cpu</code><br />
  <code class="filename">config/io</code><br />
  <code class="filename">config/locale</code><br />
  <code class="filename">config/os</code><br />
<br />
In addition, a subdirectory holds the convenience library libsupc++.<br />
<br />
  libsupc++<br />
  <code class="filename">libsupc++</code><br />
    Contains the runtime library for C++, including exception<br />
    handling and memory allocation and deallocation, RTTI, terminate<br />
    handlers, etc.<br />
<br />
Note that glibc also has a bits/ subdirectory.  We will either<br />
need to be careful not to collide with names in its bits/<br />
directory; or rename bits to (e.g.) cppbits/.<br />
Note that glibc also has a <code class="filename">bits/</code><br />
subdirectory.  We will either need to be careful not to collide with names<br />
in its <code class="filename">bits/</code><br />
directory; or rename <code class="filename">bits</code> to (e.g.) <code class="filename">cppbits</code>.<br />
<br />
In files throughout the system, lines marked with an "XXX" indicate<br />
a bug or incompletely-implemented feature.  Lines marked "XXX MT"<br />

File diff suppressed because one or more lines are too long

View File

@ -199,91 +199,104 @@
<para>
The unpacked source directory of libstdc++ contains the files
needed to create the GNU C++ Library.
The <filename class="directory">libstdc++-v3</filename> directory in the
GCC sources contains the files needed to create the GNU C++ Library.
</para>
<literallayout class="normal">
It has subdirectories:
doc
<filename class="directory">doc</filename>
Files in HTML and text format that document usage, quirks of the
implementation, and contributor checklists.
include
<filename class="directory">include</filename>
All header files for the C++ library are within this directory,
modulo specific runtime-related files that are in the libsupc++
directory.
include/std
<filename class="directory">include/std</filename>
Files meant to be found by #include &lt;name&gt; directives in
standard-conforming user programs.
include/c
<filename class="directory">include/c</filename>
Headers intended to directly include standard C headers.
[NB: this can be enabled via --enable-cheaders=c]
[NB: this can be enabled via <option>--enable-cheaders=c</option>]
include/c_global
<filename class="directory">include/c_global</filename>
Headers intended to include standard C headers in
the global namespace, and put select names into the std::
namespace. [NB: this is the default, and is the same as
--enable-cheaders=c_global]
<option>--enable-cheaders=c_global</option>]
include/c_std
<filename class="directory">include/c_std</filename>
Headers intended to include standard C headers
already in namespace std, and put select names into the std::
namespace. [NB: this is the same as --enable-cheaders=c_std]
namespace. [NB: this is the same as
<option>--enable-cheaders=c_std</option>]
include/bits
<filename class="directory">include/bits</filename>
Files included by standard headers and by other files in
the bits directory.
include/backward
<filename class="directory">include/backward</filename>
Headers provided for backward compatibility, such as &lt;iostream.h&gt;.
They are not used in this library.
include/ext
<filename class="directory">include/ext</filename>
Headers that define extensions to the standard library. No
standard header refers to any of them.
scripts
<filename class="directory">scripts</filename>
Scripts that are used during the configure, build, make, or test
process.
src
<filename class="directory">src</filename>
Files that are used in constructing the library, but are not
installed.
testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]
<filename class="directory">src/c++98</filename>
Source files compiled using <option>-std=gnu++98</option>.
<filename class="directory">src/c++11</filename>
Source files compiled using <option>-std=gnu++11</option>.
<filename class="directory">src/filesystem</filename>
Source files for the Filesystem TS.
<filename class="directory">src/shared</filename>
Source code included by other files under both
<filename class="directory">src/c++98</filename> and
<filename class="directory">src/c++11</filename>
<filename class="directory">testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]</filename>
Test programs are here, and may be used to begin to exercise the
library. Support for "make check" and "make check-install" is
complete, and runs through all the subdirectories here when this
command is issued from the build directory. Please note that
"make check" requires DejaGNU 1.4 or later to be installed. Please
note that "make check-script" calls the script mkcheck, which
requires bash, and which may need the paths to bash adjusted to
work properly, as /bin/bash is assumed.
"make check" requires DejaGNU 1.4 or later to be installed.
Other subdirectories contain variant versions of certain files
that are meant to be copied or linked by the configure script.
Currently these are:
config/abi
config/cpu
config/io
config/locale
config/os
<filename class="directory">config/abi</filename>
<filename class="directory">config/cpu</filename>
<filename class="directory">config/io</filename>
<filename class="directory">config/locale</filename>
<filename class="directory">config/os</filename>
In addition, a subdirectory holds the convenience library libsupc++.
libsupc++
<filename class="directory">libsupc++</filename>
Contains the runtime library for C++, including exception
handling and memory allocation and deallocation, RTTI, terminate
handlers, etc.
Note that glibc also has a bits/ subdirectory. We will either
need to be careful not to collide with names in its bits/
directory; or rename bits to (e.g.) cppbits/.
Note that glibc also has a <filename class="directory">bits/</filename>
subdirectory. We will either need to be careful not to collide with names
in its <filename class="directory">bits/</filename>
directory; or rename <filename class="directory">bits</filename> to (e.g.) <filename class="directory">cppbits</filename>.
In files throughout the system, lines marked with an "XXX" indicate
a bug or incompletely-implemented feature. Lines marked "XXX MT"