<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>"libc++abi" C++ Standard Library Support</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>

<body>
<div id="menu">
  <div>
    <a href="https://llvm.org/">LLVM Home</a>
  </div>

  <div class="submenu">
    <label>libc++abi Info</label>
    <a href="/index.html">About</a>
  </div>

  <div class="submenu">
    <label>Quick Links</label>
    <a href="https://libcxx.llvm.org/">libc++</a>
    <a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev</a>
    <a href="https://lists.llvm.org/mailman/listinfo/libcxx-commits">libcxx-commits</a>
    <a href="https://bugs.llvm.org/">Bug Reports</a>
    <a href="https://github.com/llvm/llvm-project/tree/main/libcxxabi/">Browse Sources</a>
  </div>
</div>

<div id="content">
  <!--*********************************************************************-->
  <h1>"libc++abi" C++ Standard Library Support</h1>
  <!--*********************************************************************-->

  <p>libc++abi is a new implementation of low level support for a standard
     C++ library.</p>

  <p>All of the code in libc++abi is <a
     href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
     under the MIT license and the UIUC License (a BSD-like license).</p>

  <!--=====================================================================-->
  <h2 id="goals">Features and Goals</h2>
  <!--=====================================================================-->

    <ul>
        <li>Correctness as defined by the C++11 standard.</li>
        <li>Provide a portable sublayer to ease the porting of <a href="https://libcxx.llvm.org/">libc++</a></li>
        <li>On Mac OS X, be ABI compatible with the existing low-level support.</li>
    </ul>

  <!--=====================================================================-->
  <h2 id="requirements">Platform Support</h2>
  <!--=====================================================================-->

   <p>libc++abi is known to work on the following platforms, using clang.</p>

    <ul>
    <li>Darwin</li>
    </ul>

  <!--=====================================================================-->
  <h2 id="dir-structure">Current Status</h2>
  <!--=====================================================================-->

   <p>libc++abi is complete.  <a href="spec.html">Here</a> is a
   list of functionality.</p>

  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->

  <p>To check out the code (including llvm and others), use:</p>

  <ul>
  <li><code>git clone https://github.com/llvm/llvm-project.git</code></li>
  </ul>

  <p>To build:</p>
  <ul>
  <li><code>cd llvm-project</code></li>
  <li><code>mkdir build &amp;&amp; cd build</code></li>
  <li><code>cmake -DLLVM_ENABLE_PROJECTS=libcxxabi ../llvm # on linux you may need to specify -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++</code></li>
  <li><code>make</code></li>
  </ul>

  <p>To do a standalone build:</p>
  <ul>
  <li>
    Check out the source tree. This includes the other subprojects, but you'll only use the libcxxabi part.
  </li>
  <li><code>cd llvm-project</code></li>
  <li><code>mkdir build-libcxxabi &amp;&amp; cd build-libcxxabi</code></li>
  <li><code>cmake ../libcxxabi # on linux you may need -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++</code></li>
  <li><code>make</code></li>
  </ul>
  <p> By default CMake uses <code>llvm-config</code> to locate the required
      LLVM sources. If CMake cannot find <code>llvm-config</code> then you must
      configure CMake using either of the following options.
  </p>
  <ul>
  <li><code>-DLLVM_CONFIG_PATH=path/to/llvm-config</code></li>
  <li><code>-DLLVM_PATH=path/to/llvm-source-root</code></li>
  </ul>

  </p>

  <p>To run the tests:</p>
  <ul>
  <li><code>make check-cxxabi</code></li>
  </ul>
  <p>Note: in a standalone build, the system's libc++ will be used for tests. If
  the system's libc++ was statically linked against libc++abi (or linked against
  a different ABI library), this may interfere with test results.</p>

  <p>Send discussions to the
  (<a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p>

  <!--=====================================================================-->
  <h2>Frequently asked questions</h2>
  <!--=====================================================================-->

  <p>Q: Why are the destructors for the standard exception classes defined in libc++abi?
     They're just empty, can't they be defined inline?</p>
  <p>A: The destructors for them live in libc++abi because they are "key" functions.
     The Itanium ABI describes a "key" function as the first virtual declared.
     And wherever the key function is defined, that is where the <code>type_info</code> gets defined.
     And in libc++ types are the same type if and only if they have the same <code>type_info</code>
     (as in there must be only one type info per type in the entire application).
     And on OS X, libstdc++ and libc++ share these exception types.
     So to be able to throw in one dylib and catch in another (a <code>std::exception</code> for example),
     there must be only one <code>std::exception type_info</code> in the entire app.
     That typeinfo gets laid down beside <code>~exception()</code> in libc++abi (for both libstdc++ and libc++).</p>
     <p>--Howard Hinnant</p>

</div>
</body>
</html>
