1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="next" href="source_code_style.html" title="Coding Style"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A.
Contributing
</th><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr/></div><div class="section" title="Directory Layout and Source Conventions"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.organization"/>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.
</p><div class="literallayout"><p><br/>
It has subdirectories:<br/>
<br/>
doc<br/>
Files in HTML and text format that document usage, quirks of the<br/>
implementation, and contributor checklists.<br/>
<br/>
include<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/>
Files meant to be found by #include <name> directives in<br/>
standard-conforming user programs.<br/>
<br/>
include/c<br/>
Headers intended to directly include standard C headers.<br/>
[NB: this can be enabled via --enable-cheaders=c]<br/>
<br/>
include/c_global<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/>
<br/>
include/c_std<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/>
<br/>
include/bits<br/>
Files included by standard headers and by other files in<br/>
the bits directory.<br/>
<br/>
include/backward<br/>
Headers provided for backward compatibility, such as <iostream.h>.<br/>
They are not used in this library.<br/>
<br/>
include/ext<br/>
Headers that define extensions to the standard library. No<br/>
standard header refers to any of them.<br/>
<br/>
scripts<br/>
Scripts that are used during the configure, build, make, or test<br/>
process.<br/>
<br/>
src<br/>
Files that are used in constructing the library, but are not<br/>
installed.<br/>
<br/>
testsuites/[backward, demangle, ext, performance, thread, 17_* to 27_*]<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/>
<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/>
<br/>
In addition, a subdirectory holds the convenience library libsupc++.<br/>
<br/>
libsupc++<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/>
<br/>
In files throughout the system, lines marked with an "XXX" indicate<br/>
a bug or incompletely-implemented feature. Lines marked "XXX MT"<br/>
indicate a place that may require attention for multi-thread safety.<br/>
</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix A.
Contributing
</td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top"> Coding Style</td></tr></table></div></body></html>
|