Commit Graph

284 Commits

Author SHA1 Message Date
Eric Fiselier a13a2056f6 [Docs] Update libc++ target names after r279675.
llvm-svn: 279940
2016-08-28 18:33:08 +00:00
Petr Hosek 9e49a3376e Allow building both shared and static library
This change allows building both shared and static version of libc++
in a single build, sharing object files between both versions.

Differential Revision: https://reviews.llvm.org/D23232

llvm-svn: 278068
2016-08-08 22:57:25 +00:00
Eric Fiselier b08d8b189c [libcxx] Add support for benchmark tests using Google Benchmark.
Summary:
This patch does the following:

1. Checks in a copy of the Google Benchmark library into the libc++ repo under `utils/google-benchmark`.
2. Teaches libc++ how to build Google Benchmark against both (A) in-tree libc++ and (B) the platforms native STL.
3. Allows performance benchmarks to be built as part of the libc++ build.

Building the benchmarks (and Google Benchmark) is off by default. It must be enabled using the CMake option `-DLIBCXX_INCLUDE_BENCHMARKS=ON`. When this option is enabled the tests under `libcxx/benchmarks`  can be built using the `libcxx-benchmarks` target.

On Linux platforms where libstdc++ is the default STL the CMake option `-DLIBCXX_BUILD_BENCHMARKS_NATIVE_STDLIB=ON` can be used to build each benchmark test against libstdc++ as well. This is useful for comparing performance between standard libraries.

Support for benchmarks is currently very minimal. They must be manually run by the user and there is no mechanism for detecting performance regressions.

Known Issues:

* `-DLIBCXX_INCLUDE_BENCHMARKS=ON` is only supported for Clang, and not GCC, since the `-stdlib=libc++` option is needed to build Google Benchmark.








Reviewers: danalbert, dberlin, chandlerc, mclow.lists, jroelofs

Subscribers: chandlerc, dberlin, tberghammer, danalbert, srhines, hfinkel

Differential Revision: https://reviews.llvm.org/D22240

llvm-svn: 276049
2016-07-19 23:07:03 +00:00
Eric Fiselier c79795874a Add Filesystem TS -- Complete
Add the completed std::experimental::filesystem implementation and tests.
The implementation supports C++11 or newer.

The TS is built as part of 'libc++experimental.a'. Users of the TS need to
manually link this library. Building and testing the TS can be disabled using
the CMake option '-DLIBCXX_ENABLE_FILESYSTEM=OFF'.

Currently 'libc++experimental.a' is not installed by default. To turn on the
installation of the library use '-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON'.

llvm-svn: 273034
2016-06-17 19:46:40 +00:00
Eric Fiselier e44604aec7 Update libcxx.llvm.org documentation by linking to new docs.
Summary:
Currently much of the libcxx website is duplicated between the old www/ documentation and newer Sphinx docs. This patch changes the main libc++ webpage so that it links to the new documentation where possible. This means removing numerous sections from the landing page.

@mclow.lists What do you think?

Reviewers: mclow.lists

Subscribers: cfe-commits, mclow.lists

Differential Revision: http://reviews.llvm.org/D19250

llvm-svn: 271469
2016-06-02 02:16:28 +00:00
Eric Fiselier 7946c3f0e2 Fix errors in documentation
llvm-svn: 268709
2016-05-06 04:49:30 +00:00
Eric Fiselier 41fe4bacf5 Fix sphinx build. This is a temporary solution.
llvm-svn: 268614
2016-05-05 08:12:25 +00:00
Eric Fiselier d742bcc9f6 Try and fix sphinx build
llvm-svn: 268613
2016-05-05 06:30:05 +00:00
Eric Fiselier 43e3a64270 Update version numbers in docs
llvm-svn: 268459
2016-05-03 22:50:33 +00:00
Eric Fiselier 539cd6758b Add documentation for new experimental library
llvm-svn: 268456
2016-05-03 22:32:08 +00:00
Eric Fiselier f40dd3278e Add cxx_runtime_root options for testing against a different libc++ at runtime
llvm-svn: 266855
2016-04-20 04:17:39 +00:00
Alexey Samsonov f094e0f3e3 [docs] Remove references to autoconf build.
llvm-svn: 259281
2016-01-30 01:11:42 +00:00
Eric Fiselier 19352b1cbe Add link to 3rd party GDB pretty-printers
llvm-svn: 258270
2016-01-20 01:26:30 +00:00
Eric Fiselier 08ce75b6c6 Update paths in libc++ build instructions. Patch from Jonathan Anderson.
llvm-svn: 255561
2015-12-14 22:26:28 +00:00
Eric Fiselier 1ab69fc532 [libcxx] Make libc++.so a linker script by default on most platforms.
Summary:
This patch turns on `LIBCXX_ENABLE_ABI_LINKER_SCRIPT` by default whenever `LLVM_HAVE_LINK_VERSION_SCRIPT` is ON. This turns out to be whenever:

1. WIN32 is not defined.
2 UNIX is defined.
3. APPLE is not defined.

While `LLVM_HAVE_LINK_VERSION_SCRIPT` is meant to reflect exactly what we are asking I think it's close enough.

After committing this patch Linux users will no longer have to use "-lc++abi" explicitly!




Reviewers: mclow.lists, danalbert, compnerd, jroelofs

Subscribers: emaste, rengolin, cbergstrom, cfe-commits

Differential Revision: http://reviews.llvm.org/D13739

llvm-svn: 250469
2015-10-15 22:41:51 +00:00
Eric Fiselier f0d8022ee3 Add links to libc++ code coverage and builders
llvm-svn: 250361
2015-10-15 03:27:02 +00:00
Eric Fiselier 147bb89d52 Update testing guide for libc++
llvm-svn: 250323
2015-10-14 20:44:44 +00:00
Eric Fiselier 29ada6d178 Use __config_site when building libc++. Also cleanup ABI versioning doc
llvm-svn: 250261
2015-10-14 00:22:05 +00:00
Evgeniy Stepanov a66a7b30ce ABI versioning macros for libc++.
C++ macros and CMake options that specify the default ABI version of
the library, and can be overridden to pick up new ABI-changing
features.

llvm-svn: 250254
2015-10-13 23:48:28 +00:00
Eric Fiselier b34aa900fc Fix whitespace in doc
llvm-svn: 250238
2015-10-13 22:22:42 +00:00
Eric Fiselier f9f796e79b [libcxx] Capture configuration information when installing the libc++ headers
Summary:
Hi all,

This patch is a successor to D11963. However it has changed dramatically and I felt it would be best to start a new review thread.

Please read the design documentation added in this patch for a description of how it works.

Reviewers: mclow.lists, danalbert, jroelofs, EricWF

Subscribers: vkalintiris, rnk, ed, espositofulvio, asl, eugenis, cfe-commits

Differential Revision: http://reviews.llvm.org/D13407

llvm-svn: 250235
2015-10-13 22:12:02 +00:00
Eric Fiselier 27c1e5c2a9 Cleanup BuildingLibcxx.rst and remove TODO
llvm-svn: 246952
2015-09-06 23:31:16 +00:00
Eric Fiselier 67ffd0e9af Fix another bad link in the new docs
llvm-svn: 246951
2015-09-06 23:22:02 +00:00
Eric Fiselier 988686349f Try to fix links for libcxx.llvm.org/docs again.
llvm-svn: 246950
2015-09-06 23:09:54 +00:00
Eric Fiselier a416e57b89 Try and fix links again. Seems to be a sphinx version issue.
llvm-svn: 246915
2015-09-05 07:20:53 +00:00
Eric Fiselier e4077cb1ed Try and fix broken bugzilla link
llvm-svn: 246914
2015-09-05 06:57:29 +00:00
Eric Fiselier 3034b066c0 Cleanup new documentation index and transfer more information from www/index.html
llvm-svn: 246913
2015-09-05 06:50:03 +00:00
Tanya Lattner d01ea56015 Remove test commit.
llvm-svn: 246912
2015-09-05 05:38:50 +00:00
Tanya Lattner feb91925a4 Test temporary commit.
llvm-svn: 246911
2015-09-05 05:34:27 +00:00
Eric Fiselier 11027f6c5a Test commit for builder
llvm-svn: 246910
2015-09-05 05:29:23 +00:00
Eric Fiselier 5fb53fce5f Add temporary Makefile.sphinx build file to get libcxx.llvm.org/docs going
llvm-svn: 246909
2015-09-05 05:12:04 +00:00
Eric Fiselier e6c2ae3294 Try building docs again.
llvm-svn: 246906
2015-09-05 01:32:48 +00:00
Eric Fiselier c681dc26db Test commit for sphinx docs try2
llvm-svn: 246895
2015-09-04 23:19:11 +00:00
Eric Fiselier b17bb06914 [libcxx] Add new Sphinx documentation
Summary:
This patch adds Sphinx based documentation to libc++. The goal is to make it easier to write documentation for libc++ since writing new documentation in HTML is cumbersome. This patch rewrites the main page for libc++ along with the instructions for using, building and testing libc++. 

The built documentation can be found and reviewed here: http://efcs.ca/libcxx-docs

In order to build the sphinx documentation you need to specify the cmake options `-DLLVM_ENABLE_SPHINX=ON -DLIBCXX_INCLUDE_DOCS=ON`. This will add the makefile rule `docs-libcxx-html`.

Reviewers: chandlerc, mclow.lists, danalbert, jroelofs

Subscribers: silvas, cfe-commits

Differential Revision: http://reviews.llvm.org/D12129

llvm-svn: 245788
2015-08-22 19:40:49 +00:00