1 <html><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8"><title>Directory Layout and Source Conventions
</title><meta name=
"generator" content=
"DocBook XSL-NS Stylesheets V1.76.1"><meta name=
"keywords" content=
"
5 "><meta name=
"keywords" content=
"
11 "><link rel=
"home" href=
"../index.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 bgcolor=
"white" text=
"black" link=
"#0000FF" vlink=
"#840084" alink=
"#0000FF"><div class=
"navheader"><table width=
"100%" summary=
"Navigation header"><tr><th colspan=
"3" align=
"center">Directory Layout and Source Conventions
</th></tr><tr><td width=
"20%" align=
"left"><a accesskey=
"p" href=
"appendix_contributing.html">Prev
</a> </td><th width=
"60%" align=
"center">Appendix A.
14 </th><td width=
"20%" 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" style=
"clear: both"><a name=
"contrib.organization"></a>Directory Layout and Source Conventions
</h2></div></div></div><p>
15 The unpacked source directory of libstdc++ contains the files
16 needed to create the GNU C++ Library.
17 </p><div class=
"literallayout"><p><br>
18 It has subdirectories:
<br>
21 Files in HTML and text format that document usage, quirks of the
<br>
22 implementation, and contributor checklists.
<br>
25 All header files for the C++ library are within this directory,
<br>
26 modulo specific runtime-related files that are in the libsupc++
<br>
30 Files meant to be found by #include
<name
> directives in
<br>
31 standard-conforming user programs.
<br>
34 Headers intended to directly include standard C headers.
<br>
35 [NB: this can be enabled via --enable-cheaders=c]
<br>
38 Headers intended to include standard C headers in
<br>
39 the global namespace, and put select names into the std::
<br>
40 namespace. [NB: this is the default, and is the same as
<br>
41 --enable-cheaders=c_global]
<br>
44 Headers intended to include standard C headers
<br>
45 already in namespace std, and put select names into the std::
<br>
46 namespace. [NB: this is the same as --enable-cheaders=c_std]
<br>
49 Files included by standard headers and by other files in
<br>
50 the bits directory.
<br>
53 Headers provided for backward compatibility, such as
<iostream.h
>.
<br>
54 They are not used in this library.
<br>
57 Headers that define extensions to the standard library. No
<br>
58 standard header refers to any of them.
<br>
61 Scripts that are used during the configure, build, make, or test
<br>
65 Files that are used in constructing the library, but are not
<br>
68 testsuites/[backward, demangle, ext, performance, thread,
17_* to
30_*]
<br>
69 Test programs are here, and may be used to begin to exercise the
<br>
70 library. Support for
"make check" and
"make check-install" is
<br>
71 complete, and runs through all the subdirectories here when this
<br>
72 command is issued from the build directory. Please note that
<br>
73 "make check" requires DejaGNU
1.4 or later to be installed. Please
<br>
74 note that
"make check-script" calls the script mkcheck, which
<br>
75 requires bash, and which may need the paths to bash adjusted to
<br>
76 work properly, as /bin/bash is assumed.
<br>
78 Other subdirectories contain variant versions of certain files
<br>
79 that are meant to be copied or linked by the configure script.
<br>
80 Currently these are:
<br>
88 In addition, a subdirectory holds the convenience library libsupc++.
<br>
91 Contains the runtime library for C++, including exception
<br>
92 handling and memory allocation and deallocation, RTTI, terminate
<br>
95 Note that glibc also has a bits/ subdirectory. We will either
<br>
96 need to be careful not to collide with names in its bits/
<br>
97 directory; or rename bits to (e.g.) cppbits/.
<br>
99 In files throughout the system, lines marked with an
"XXX" indicate
<br>
100 a bug or incompletely-implemented feature. Lines marked
"XXX MT"<br>
101 indicate a place that may require attention for multi-thread safety.
<br>
102 </p></div></div><div class=
"navfooter"><hr><table width=
"100%" summary=
"Navigation footer"><tr><td width=
"40%" align=
"left"><a accesskey=
"p" href=
"appendix_contributing.html">Prev
</a> </td><td width=
"20%" align=
"center"><a accesskey=
"u" href=
"appendix_contributing.html">Up
</a></td><td width=
"40%" align=
"right"> <a accesskey=
"n" href=
"source_code_style.html">Next
</a></td></tr><tr><td width=
"40%" align=
"left" valign=
"top">Appendix A.
105 </td><td width=
"20%" align=
"center"><a accesskey=
"h" href=
"../index.html">Home
</a></td><td width=
"40%" align=
"right" valign=
"top"> Coding Style
</td></tr></table></div></body></html>