1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <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 "/><meta name="keywords" content=" ISO C++ , runtime , library "/><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><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.
6 </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>
7 The unpacked source directory of libstdc++ contains the files
8 needed to create the GNU C++ Library.
9 </p><div class="literallayout"><p><br/>
10 It has subdirectories:<br/>
13 Files in HTML and text format that document usage, quirks of the<br/>
14 implementation, and contributor checklists.<br/>
17 All header files for the C++ library are within this directory,<br/>
18 modulo specific runtime-related files that are in the libsupc++<br/>
22 Files meant to be found by #include <name> directives in<br/>
23 standard-conforming user programs.<br/>
26 Headers intended to directly include standard C headers.<br/>
27 [NB: this can be enabled via --enable-cheaders=c]<br/>
30 Headers intended to include standard C headers in<br/>
31 the global namespace, and put select names into the std::<br/>
32 namespace. [NB: this is the default, and is the same as<br/>
33 --enable-cheaders=c_global]<br/>
36 Headers intended to include standard C headers<br/>
37 already in namespace std, and put select names into the std::<br/>
38 namespace. [NB: this is the same as --enable-cheaders=c_std]<br/>
41 Files included by standard headers and by other files in<br/>
42 the bits directory.<br/>
45 Headers provided for backward compatibility, such as <iostream.h>.<br/>
46 They are not used in this library.<br/>
49 Headers that define extensions to the standard library. No<br/>
50 standard header refers to any of them.<br/>
53 Scripts that are used during the configure, build, make, or test<br/>
57 Files that are used in constructing the library, but are not<br/>
60 testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]<br/>
61 Test programs are here, and may be used to begin to exercise the<br/>
62 library. Support for "make check" and "make check-install" is<br/>
63 complete, and runs through all the subdirectories here when this<br/>
64 command is issued from the build directory. Please note that<br/>
65 "make check" requires DejaGNU 1.4 or later to be installed. Please<br/>
66 note that "make check-script" calls the script mkcheck, which<br/>
67 requires bash, and which may need the paths to bash adjusted to<br/>
68 work properly, as /bin/bash is assumed.<br/>
70 Other subdirectories contain variant versions of certain files<br/>
71 that are meant to be copied or linked by the configure script.<br/>
72 Currently these are:<br/>
80 In addition, a subdirectory holds the convenience library libsupc++.<br/>
83 Contains the runtime library for C++, including exception<br/>
84 handling and memory allocation and deallocation, RTTI, terminate<br/>
87 Note that glibc also has a bits/ subdirectory. We will either<br/>
88 need to be careful not to collide with names in its bits/<br/>
89 directory; or rename bits to (e.g.) cppbits/.<br/>
91 In files throughout the system, lines marked with an "XXX" indicate<br/>
92 a bug or incompletely-implemented feature. Lines marked "XXX MT"<br/>
93 indicate a place that may require attention for multi-thread safety.<br/>
94 </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.
97 </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Coding Style</td></tr></table></div></body></html>