summaryrefslogtreecommitdiff
path: root/libstdc++-v3/doc/html/manual/source_organization.html
blob: 2526e6ab976c72fa6b2985a53d2afd083120f46d (plain)
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="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      runtime&#10;    , &#10;      library&#10;    "/><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. 
  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 &lt;name&gt; 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 &lt;iostream.h&gt;.<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 30_*]<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="../index.html">Home</a></td><td align="right" valign="top"> Coding Style</td></tr></table></div></body></html>