<!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++" C++ Standard Library</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="http://llvm.org/">LLVM Home</a>
  </div>

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

  <div class="submenu">
    <label>Quick Links</label>
    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a>
    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a>
    <a href="http://llvm.org/bugs/">Bug Reports</a>
    <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a>
    <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a>
  </div>
</div>

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

  <p>libc++ is a new implementation of the C++ standard library, targeting
     C++11.</p>

  <p>All of the code in libc++ is <a
     href="http://llvm.org/docs/DeveloperPolicy.html#license">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>Fast execution.</li>
        <li>Minimal memory use.</li>
        <li>Fast compile times.</li>
        <li>ABI compatibility with gcc's libstdc++ for some low-level features
            such as exception objects, rtti and memory allocation.</li>
        <li>Extensive unit tests.</li>
    </ul>

  <!--=====================================================================-->
  <h2 id="why">Why a new C++ Standard Library for C++11?</h2>
  <!--=====================================================================-->

  <p>After its initial introduction, many people have asked "why start a new
     library instead of contributing to an existing library?" (like Apache's
     libstdcxx, GNU's libstdc++, STLport, etc).  There are many contributing
     reasons, but some of the major ones are:</p>

  <ul>
  <li><p>From years of experience (including having implemented the standard
      library before), we've learned many things about implementing
      the standard containers which require ABI breakage and fundamental changes
      to how they are implemented.  For example, it is generally accepted that
      building std::string using the "short string optimization" instead of
      using Copy On Write (COW) is a superior approach for multicore
      machines (particularly in C++11, which has rvalue references).  Breaking
      ABI compatibility with old versions of the library was
      determined to be critical to achieving the performance goals of
      libc++.</p></li>

  <li><p>Mainline libstdc++ has switched to GPL3, a license which the developers
      of libc++ cannot use.  libstdc++ 4.2 (the last GPL2 version) could be
      independently extended to support C++11, but this would be a fork of the
      codebase (which is often seen as worse for a project than starting a new
      independent one).  Another problem with libstdc++ is that it is tightly
       integrated with G++ development, tending to be tied fairly closely to the
       matching version of G++.</p>
    </li>

  <li><p>STLport and the Apache libstdcxx library are two other popular
      candidates, but both lack C++11 support.  Our experience (and the
      experience of libstdc++ developers) is that adding support for C++11 (in
      particular rvalue references and move-only types) requires changes to
      almost every class and function, essentially amounting to a rewrite.
      Faced with a rewrite, we decided to start from scratch and evaluate every
      design decision from first principles based on experience.</p>

      <p>Further, both projects are apparently abandoned: STLport 5.2.1 was
      released in Oct'08, and STDCXX 4.2.1 in May'08.</p>

    </ul>

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

   <p>libc++ is known to work on the following platforms, using g++-4.2 and
      clang (lack of C++11 language support disables some functionality).</p>

    <ul>
     <li>Mac OS X i386</li>
     <li>Mac OS X x86_64</li>
    </ul>

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

   <p>libc++ is a 100% complete C++11 implementation on Apple's OS X. </p>
   <p>LLVM and Clang can self host in C++ and C++11 mode with libc++ on Linux.</p>
   <p>C++1Y (C++14) implementation is in progress. The current status is
       <a href="cxx1y_status.html">here</a></p>
 
   <p>
   Ports to other platforms are underway. Here are recent test
   results for <a href="results.Windows.html">Windows</a>
   and <a href="results.Linux.html">Linux</a>.
   </p>

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

  <p>First please review our
     <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.

  <p>To check out the code, use:</p>

  <ul>
  <li><code>svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx</code></li>
  </ul>

  <p>
     On Mac OS 10.7 (Lion) and later, the easiest way to get this library is to install
     Xcode 4.2 or later.  However if you want to install tip-of-trunk from here
     (getting the bleeding edge), read on.  However, be warned that Mac OS
     10.7 will not boot without a valid copy of <code>libc++.1.dylib</code> in
     <code>/usr/lib</code>.
  </p>

  <p>
     Next:
  </p>
  
  <ul>
    <li><code>cd libcxx/lib</code></li>
    <li><code>export TRIPLE=-apple-</code></li>
    <li><code>./buildit</code></li>
    <li><code>ln -sf libc++.1.dylib libc++.dylib</code></li>
  </ul>
  
  <p>
     That should result in a libc++.1.dylib and libc++.dylib.  The safest thing
     to do is to use it from where your libcxx is installed instead of replacing
     these in your Mac OS.
  </p>

  <p>
  To use your system-installed libc++ with clang you can:
  </p>

  <ul>
    <li><code>clang++ -stdlib=libc++ test.cpp</code></li>
    <li><code>clang++ -std=c++11 -stdlib=libc++ test.cpp</code></li>
  </ul>

  <p>
  To use your tip-of-trunk libc++ on Mac OS with clang you can:
  </p>

  <ul>
    <li><code>export DYLD_LIBRARY_PATH=&lt;path-to-libcxx&gt;/lib</code>
    <li><code>clang++ -std=c++11 -stdlib=libc++ -nostdinc++
         -I&lt;path-to-libcxx&gt;/include -L&lt;path-to-libcxx&gt;/lib
         test.cpp</code></li>
  </ul>

  <p>To run the libc++ test suite (recommended):</p>

  <ul>
  <li><code>cd libcxx/test</code></li>
  <li><code>./testit</code></li>
     <ul>
       <li>You can alter the command line options <code>testit</code> uses
       with <code>export OPTIONS="whatever you need"</code></li>
     </ul>
  </ul>

  <!--=====================================================================-->
  <h3>Notes</h3>
  <!--=====================================================================-->

<p>
Building libc++ with <code>-fno-rtti</code> is not supported.  However linking
against it with <code>-fno-rtti</code> is supported.
</p>

  <p>Send discussions to the
  (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">clang mailing list</a>).</p>

  <!--=====================================================================-->
  <h2>Build on Linux using CMake and libsupc++.</h2>
  <!--=====================================================================-->

  <p>
     You will need libstdc++ in order to provide libsupc++.
  </p>
  
  <p>
     Figure out where the libsupc++ headers are on your system. On Ubuntu this
     is <code>/usr/include/c++/&lt;version&gt;</code> and
     <code>/usr/include/c++/&lt;version&gt;/&lt;target-triple&gt;</code>
  </p>
  
  <p>
     You can also figure this out by running
     <pre>
$ echo | g++ -Wp,-v -x c++ - -fsyntax-only
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include &lt;...&gt; search starts here:
 /usr/include/c++/4.7
 /usr/include/c++/4.7/x86_64-linux-gnu
 /usr/include/c++/4.7/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
     </pre>

      Note the first two entries happen to be what we are looking for. This
      may not be correct on other platforms.
  </p>
  
  <p>
     We can now run CMake:
     <ul>
       <li><code>CC=clang CXX=clang++ cmake -G "Unix Makefiles"
                -DLIBCXX_CXX_ABI=libstdc++
                -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.7/;/usr/include/c++/4.7/x86_64-linux-gnu/"
                -DCMAKE_BUILD_TYPE=Release
                -DCMAKE_INSTALL_PREFIX=/usr
                &lt;libc++-source-dir&gt;</code></li>
       <li>You can also substitute <code>-DLIBCXX_CXX_ABI=libsupc++</code>
       above, which will cause the library to be linked to libsupc++ instead
       of libstdc++, but this is only recommended if you know that you will
       never need to link against libstdc++ in the same executable as libc++.
       GCC ships libsupc++ separately but only as a static library.  If a
       program also needs to link against libstdc++, it will provide its
       own copy of libsupc++ and this can lead to subtle problems.
       <li><code>make</code></li>
       <li><code>sudo make install</code></li>
     </ul>
     <p>
        You can now run clang with -stdlib=libc++.
     </p>
  </p>

  <!--=====================================================================-->
  <h2>Build on Linux using CMake and libc++abi.</h2>
  <!--=====================================================================-->

  <p>
     You will need to keep the source tree of <a href="http://libcxxabi.llvm.org">libc++abi</a>
     available on your build machine and your copy of the libc++abi shared library must
     be placed where your linker will find it.
  </p>
  
  <p>
     We can now run CMake:
     <ul>
       <li><code>CC=clang CXX=clang++ cmake -G "Unix Makefiles"
                -DLIBCXX_CXX_ABI=libcxxabi
                -DLIBCXX_LIBCXXABI_INCLUDE_PATHS="&lt;libc++abi-source-dir&gt;/include"
                -DCMAKE_BUILD_TYPE=Release
                -DCMAKE_INSTALL_PREFIX=/usr
                &lt;libc++-source-dir&gt;</code></li>
       <li><code>make</code></li>
       <li><code>sudo make install</code></li>
     </ul>
     <p>
        Unfortunately you can't simply run clang with "-stdlib=libc++" at this point, as
        clang is set up to link for libc++ linked to libsupc++.  To get around this
        you'll have to set up your linker yourself (or patch clang).  For example,
        <ul>
          <li><code>clang++ -stdlib=libc++ helloworld.cpp -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc</code></li>
        </ul>
        Alternately, you could just add libc++abi to your libraries list, which in most
        situations will give the same result:
        <ul>
          <li><code>clang++ -stdlib=libc++ helloworld.cpp -lc++abi</code></li>
        </ul>
     </p>
  </p>

  <!--=====================================================================-->
  <h2>Build on Linux using CMake and libcxxrt.</h2>
  <!--=====================================================================-->

  <p>
     You will need to keep the source tree of
     <a href="https://github.com/pathscale/libcxxrt/">libcxxrt</a> available
     on your build machine and your copy of the libcxxrt shared library must
     be placed where your linker will find it.
  </p>
 
  <p>
     We can now run CMake:
     <ul>
       <li><code>CC=clang CXX=clang++ cmake -G "Unix Makefiles"
                -DLIBCXX_CXX_ABI=libcxxrt
                -DLIBCXX_LIBCXXRT_INCLUDE_PATHS="&lt;libcxxrt-source-dir&gt;/src"
                -DCMAKE_BUILD_TYPE=Release
                -DCMAKE_INSTALL_PREFIX=/usr
                &lt;libc++-source-dir&gt;</code></li>
       <li><code>make</code></li>
       <li><code>sudo make install</code></li>
     </ul>
     <p>
        Unfortunately you can't simply run clang with "-stdlib=libc++" at this point, as
        clang is set up to link for libc++ linked to libsupc++.  To get around this
        you'll have to set up your linker yourself (or patch clang).  For example,
        <ul>
          <li><code>clang++ -stdlib=libc++ helloworld.cpp -nodefaultlibs -lc++ -lcxxrt -lm -lc -lgcc_s -lgcc</code></li>
        </ul>
        Alternately, you could just add libcxxrt to your libraries list, which in most
        situations will give the same result:
        <ul>
          <li><code>clang++ -stdlib=libc++ helloworld.cpp -lcxxrt</code></li>
        </ul>
     </p>
  </p>

  <!--=====================================================================-->
  <h2>Design Documents</h2>
  <!--=====================================================================-->

<ul>
<li><a href="atomic_design.html"><tt>&lt;atomic&gt;</tt></a></li>
<li><a href="type_traits_design.html"><tt>&lt;type_traits&gt;</tt></a></li>
<li><a href="http://cplusplusmusings.wordpress.com/2012/07/05/clang-and-standard-libraries-on-mac-os-x/">Excellent notes by Marshall Clow</a></li>
<li><a href="debug_mode.html">Status of debug mode</a></li>
</ul>

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