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:
parent
fbcdc43e3c
commit
db62593447
@ -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
@ -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"><utility></code> which
|
||||
is included by <code class="code"><array></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<size_t, N></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
@ -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 <name> 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 <iostream.h>.<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
@ -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 <name> 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 <iostream.h>.
|
||||
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"
|
||||
|
Loading…
Reference in New Issue
Block a user