Commit Graph

108 Commits

Author SHA1 Message Date
Petr Hosek
513447dbb9 [libcxx][CMake] Move the warning to HandleOutOfTreeLLVM
This currently gives a warning when building libcxx under runtimes.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@289418 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-12 05:05:46 +00:00
Eric Fiselier
11715ba8e2 Put C++ ABI headers in a special build directory instead of the top level.
This patch changes where the C++ ABI headers are put during the build. Previously
    they were put in the top level include directory (not the libc++ header directory).
    However that just polutes the top level directory. Instead this patch creates a special
    directory to put them in. The reason they can't be put under c++/v1 until after the build
    is because libc++ uses the in-source headers, so we can't add the include path of the libc++
    headers in the object dir.

    Additionally this patch teaches the test suite how to find the ABI headers,
    and adds a demangling utility to help debug tests with.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@289195 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-09 09:31:01 +00:00
Eric Fiselier
5e000c6a82 Add check-cxx-abilist target when supported.
This patch adds a `check-cxx-abilist` target which verifies the libc++.so ABI
when the current build configuration matches the configuration used to generate
the ABI lists.

In order to make this change `HandleOutOfTreeLLVM.cmake` needed to be modified
to include `LLVMConfig.cmake` so that `TARGET_TRIPLE` is defined. Hopefully
the changes needed to accommodate this won't break existing build
configurations.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@286789 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-14 02:43:12 +00:00
Michal Gorny
4f031f899c [cmake] Allow testing against installed LLVM with no sources
Adjust the stand-alone build files to accept either CMake files from
LLVM_CMAKE_PATH or from LLVM_MAIN_SRC_DIR instead of requiring both.
This makes it possible to run libcxx tests on top of installed LLVM
and lit, without having to unpack a copy of LLVM sources. Furthermore,
it avoids adding duplicate paths.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284583 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-19 12:34:17 +00:00
Eric Fiselier
472c8c6612 Remove dead CMake target
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284216 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 09:06:38 +00:00
Eric Fiselier
a54229f7c5 Cleanup CMake status output
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283721 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-10 06:31:00 +00:00
Eric Fiselier
3bf8a9cb67 Fix linker script generation for in-tree builds
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283700 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-09 21:34:03 +00:00
Chris Bieneman
512cf2d040 [CMake] NFC. Missed the other uses in r280406
Doh! Obviously need to slow down.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280407 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-01 19:47:39 +00:00
Chris Bieneman
2e3538460a [CMake] Don't copy headers on fully standalone
In r280108 I tried to make the headers copy relative to LLVM_BINARY_DIR, and the intent was that it would only happen on in-tree builds or runtimes directory builds. It didn't actually work that way.

This patch adds a check for CMAKE_SOURCE_DIR being equal to CMAKE_CURRENT_SOURCE_DIR. In this case we set a variable LIBCXX_USING_INSTLLED_LLVM. This doesn't necessarily mean the LLVM is installed (it could be a build directory), but it means we need to treat the LLVM directory as read-only.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280400 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-01 18:46:53 +00:00
Ivan Krasin
25a93c54f3 Fix libc++ configuration with -fsanitize-coverage
Summary:
a recent change (r280015) in libc++ configuration broke LibFuzzer bot:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fuzzer/builds/12245

It's not restricted just to that bot; any code that uses the sanitize coverage and configures libc++ hits it.

This CL fixes the issue.

Reviewers: compnerd

Subscribers: aizatsky

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280335 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-01 01:38:32 +00:00
Saleem Abdulrasool
eb930a502c libc++: perform configuration checks with -nodefaultlibs
We're compiling libc++ with -nodefaultlibs, so we should also pass this
option during the configuration checks to ensure those checks are
consistent with the actual build.

The primary motivation here is to ease cross-compilation against a
non-standard set of C++ libraries. Previously, the configuration checks
would attempt to link against the standard C++ libraries, which would
cause link failures when cross-compiling, even though the actual library
link would go through correctly (because of the use of -nodefaultlibs
and explicitly specifying any needed libraries). This is more correct
even ignoring the motivation, however.

Patch by Shoaib Meenai!

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280015 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-29 21:33:37 +00:00
Chris Bieneman
8c22696675 [CMake] Get libcxx building under LLVM/runtimes
Summary:
The new LLVM runtimes build directory requires some basic conventions across the runtime projects. These changes make libcxx build under the runtimes subdirectory. The general idea of the changes is that the runtimes subdirectory requires some conventions to be consistent across runtime projects.

I expect to have a few more small patches that build on this to tie up check targets and other things useful in development workflows.

Summary of changes in this patch:

* Renamed variable LLVM_CONFIG -> LLVM_CONFIG_PATH
* Renamed variable LIBCXX_BUILT_STANDALONE -> LIBCXX_STANDALONE_BUILD
* Add an include of AddLLVM in the tests subdirectory for add_lit_testsuite.

Reviewers: EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@279151 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-18 21:31:51 +00:00
Eric Fiselier
5432e3b9a1 Rework libatomic handling in CMake and LIT.
This patch updates the way libc++ handles checking for libatomic, in part
to prepare for https://reviews.llvm.org/D22073.

Changes:
* 'LIBCXX_HAS_ATOMIC_LIB' is now set whenever libatomic is available even libc++
   doesn't need to manually link it.
* 'LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB' is now used to detect when libatomic
   needs to be manually linked.
* 'LIBCXX_HAS_ATOMIC_LIB' now adds 'libatomic' as a available feature in the
   test suite.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275759 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 06:01:50 +00:00
Chris Bieneman
54f2d208b5 [CMake] Cleanup uses of USES_TERMINAL
Now that we are on CMake 3.4.3 we no longer need a version check around this.

This is the libcxx side of r272211.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272212 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 22:20:28 +00:00
Eric Fiselier
a27cbf8a13 [libcxx] Allow target flags to affect CMake configuration tests
Summary:
This patch changes the libc++ CMake so that it adds certain target flags like '-m32' or '--gcc-toolchain' before including config-ix.cmake.
Since these flags can affect things like check_library_exists([...]) they needed to be added before the tests are performed.

This patch fixes:

https://llvm.org/bugs/show_bug.cgi?id=24322

Reviewers: danalbert, jroelofs, bcraig, compnerd

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271460 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 01:10:08 +00:00
Eric Fiselier
1eb744592a Fix PR27875. Parse LIBCXX_CXX_ABI_LIBRARY_PATH as a path not a string
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271070 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-27 23:05:37 +00:00
Eric Fiselier
25bcc0f8f8 [libcxx] Prefer C++14 over C++11 when building libc++experimental.
Summary:
Currently libc++experimental builds with C++11. This patch changes that to C++14 when supported by the compiler. Although nothing currently requires C++14 the upcoming <experimental/memory_resource> implementation would benefit from it. [1]

Note that libc++.so continues to build with C++11 and is unaffected by this change.

[1] <experimental/memory_resource> provides global resources which must exist for the entire lifetime of the program. In order to ensure that a global resource can be used during program termination there destructors must never be invoked. The only way to do this, while also allowing "constant initialization", is to use a C++14 union.


Reviewers: mclow.lists

Subscribers: pete, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269070 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 16:17:43 +00:00
Eric Fiselier
100ce64c6d Fix PR26622 - Make CheckLibcxxAtomic.cmake use the libc++ headers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261383 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-20 00:24:43 +00:00
Vasileios Kalintiris
fea3b21ea9 Issue a warning instead of fatal errors when checks for libatomic fail.
This should fix PR26631, PR26622 and has the nice property that the addition
of the CheckLibcxxAtomic.cmake module acts as an NFC on the platforms of the
reporters (at least for the time being).

As these bug reports explain, CMake fails the atomic check because the
include headers might not exist in the host environment. We could
potentially point to the headers provided by libcxx itself.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260961 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-16 14:15:27 +00:00
Eric Fiselier
629135a1d4 Rename CheckLibcxxAtomic.cmake variable result names so they don't clash with LLVM
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260531 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-11 15:52:52 +00:00
Eric Fiselier
df694328f1 Fix r260515 - Correct typos in CMake changes
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260524 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-11 15:05:56 +00:00
Vasileios Kalintiris
cb6641a497 Re-commit "Introduce a cmake module to figure out whether we need to link with libatomic."
This re-applies commit r260235. However, this time we add -gcc-toolchain
to the compiler's flags when the user has specified the LIBCXX_GCC_TOOLCHAIN
variable.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260515 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-11 12:43:04 +00:00
Vasileios Kalintiris
1654db495f Revert "Introduce a cmake module to figure out whether we need to link with libatomic."
This reverts commit r260235. It breaks LLVM's bootstrap when building
with a -gcc-toolchain and the system's gcc installation does not provide
the libatomic library and its headers. We should check whether
LIBCXX_GCC_TOOLCHAIN is set and adjust the flags accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260323 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-09 23:38:28 +00:00
Vasileios Kalintiris
b56fdea386 Introduce a cmake module to figure out whether we need to link with libatomic.
Summary:
This fixes the tests under std/atomics for 32-bit MIPS CPUs where the
8-byte atomic operations call into the libatomic library.

Reviewers: dsanders, mclow.lists, EricWF, jroelofs, joerg

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260235 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-09 17:00:38 +00:00
Niels Ole Salscheider
c35d862b37 Fix the search path for CMake files
This allows to find the LLVM's CMake files after moving them in
r259821.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@259842 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 23:17:20 +00:00
Eric Fiselier
ce5695f263 Revert r256606 due to compiler-rt sanitizer bot failures
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256614 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-30 03:39:03 +00:00
Eric Fiselier
44f2e41b5f Cleanup CMake for out-of-tree builds
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256606 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-30 01:02:38 +00:00
Eric Fiselier
1cf5a81b89 Only disable linker script when LIBCXX_CXX_ABI_LIBNAME is none
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251063 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-22 20:54:27 +00:00
Eric Fiselier
bb856cc357 [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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250469 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 22:41:51 +00:00
Eric Fiselier
a6622799b4 Use __config_site when building libc++. Also cleanup ABI versioning doc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250261 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 00:22:05 +00:00
Evgeniy Stepanov
4f01aa8fb8 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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250254 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:48:28 +00:00
Eric Fiselier
73ffc78616 [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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250235 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:12:02 +00:00
Eric Fiselier
961269db1b [libcxx] Remove installation rules on Darwin when it would overwrite the system installation.
Summary:
On Mac OS X overwriting `/usr/lib/libc++.dylib` can cause your computer to fail to boot. This patch tries to make it harder to do that accidentally. 

If `CMAKE_SYSTEM_NAME` is `Darwin` and `CMAKE_INSTALL_PREFIX` is `/usr` don't generate installation rules unless the user explicitly provides `LIBCXX_OVERRIDE_DARWIN_INSTALL=ON`. Note that `CMAKE_INSTALL_PREFIX` is always absolute so we don't need to worry about things like `/usr/../usr`.

Reviewers: mclow.lists, beanz, jroelofs

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246070 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-26 20:18:21 +00:00
Eric Fiselier
2fdc443f37 Fix default value for LLVM_INCLUDE_DOCS in out of tree build.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245790 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-22 20:26:42 +00:00
Eric Fiselier
b9f425a434 [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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245788 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-22 19:40:49 +00:00
Eric Fiselier
de56f74611 [libcxx] Add "install-libcxx" target.
Summary: Currently you can't install libc++ from within the LLVM tree without installing all of LLVM. This patch adds an install rule for libc++.

Reviewers: mclow.lists, danalbert, jroelofs, EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245470 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-19 17:41:53 +00:00
Eric Fiselier
1efadf976d Fix CMake error whet llvm-config reports a non-existent source directory.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@244717 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-12 06:36:19 +00:00
Eric Fiselier
c0e7971986 Remove -Werror when using check_cxx_compiler_flag because it was causing compiler-rt breakages.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243784 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-31 21:09:38 +00:00
Eric Fiselier
6a85d5c674 Print message when configuring for standalone build.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243737 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-31 06:08:32 +00:00
Eric Fiselier
eb6e2eac6c Reapply working parts of CMake cleanup.
This patch adds the working parts of r243503. The difference with this patch
is that it doesn't include the HandleLLVMOptions.cmake file.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243698 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-30 22:30:34 +00:00
Eric Fiselier
5514d36c43 Revert recent CMake changes again due to failing compiler-rt builds
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243593 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-29 23:46:55 +00:00
Eric Fiselier
8b93263784 Attempt to fix build issues introduced by
r243574

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243591 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-29 23:23:18 +00:00
Eric Fiselier
d74dee9255 Recommit r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"
This change was reverted in r243550 because it broke clang-format builds
(see PR24306).

This patch recommits a fixed version of the original.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243574 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-29 21:07:28 +00:00
Hans Wennborg
aa9b5e37f7 Revert r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"
This caused clang-format to stop linking on Mac; see PR24306.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243550 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-29 18:32:21 +00:00
Eric Fiselier
91eeba8d26 [libcxx] Cleanup CMake configuration and integrate with LLVM
Summary:
This patch contains the following changes:

1. Require that libc++ can find a LLVM source directory. This is done the same way as `libc++abi` currently does.
2. Cleanup ugly configuration code in CMakeLists.txt by using `add_flags`, `add_flags_if`, and `add_flags_if_supported` macros.

The goals for this patch are:

1. Help libc++ be more consistent with how LLVM handles CMake options (see PR23670 PR23671).
2. Make it easier to use sanitizers using the `LLVM_USE_SANITIZER` option.
3. Make libc++'s CMakeLists.txt file easier to understand and change.
4. Move towards allowing libc++ to create Sphinx documentation (see http://efcs.ca/libcxx-docs). 
5. Move towards allowing  libc++ to use other LLVM utilities such as `not` and `FileCheck`.

  

Reviewers: mclow.lists, jroelofs, danalbert

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243503 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-29 00:03:51 +00:00
Eric Fiselier
bae11add65 Fix building and testing libc++ with GCC.
The changes in src/exception.cpp and cmake/Modules/HandleLibCXXABI.cmake fix a
bug when building libc++ with GCC. Because GCC does not support __has_include
we need to explicitly tell it that we are building against libc++abi via the
preprocessor definition `LIBCXX_BUILDING_LIBCXXABI`.

The changes in include/ratio are to work around CWG defect
1712 (constexpr variable template declarations). GCC 4.8 and before has not
adopted the resolution to this defect.

The changes in include/exception work around an issue where is_final is used
without it being defined in type_traits.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@237767 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-20 03:15:01 +00:00
Eric Fiselier
bf9653d85f [libcxx] Add code coverage configuration to CMake and LIT.
Summary:
This patch adds configuration to CMake and LIT for running the libc++ test-suite to generate code coverage.

To use code coverage use following instructions.

* Find the clang resource dir using `$CXX -print-search-dirs`. Let <library-dir> be the first library search directory.
* `cmake <regular-options> -DLIBCXX_GENERATE_COVERAGE=ON -DLIBCXX_COVERAGE_LIBRARY=<library-dir>/lib/<platform>/libclang_rt.profile.a <source>`
* `make cxx`
* `make check-libcxx`
* `make generate-libcxx-coverage`


The reason I want this patch upstreamed is so I can setup a bot that generates code coverage and posts in online for every revision. 



Reviewers: mclow.lists, jroelofs, danalbert

Reviewed By: danalbert

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@233669 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-31 04:15:45 +00:00
Eric Fiselier
02c24c1d3b [libcxx] Unify LIBCXX_<ABI-Name>_INCLUDE_PATHS to be LIBCXX_CXX_ABI_INCLUDE_PATHS
Summary:
Clean up all the different possible CMake options for specifying the ABI include paths into one CMake option named `LIBCXX_CXX_ABI_INCLUDE_PATHS`. 
The documentation has been updated to reflect this change.

For the next week I have added explicit errors if any of the old flags is used. These errors inform users of the change and the new option to use.

Before committing the change I will announce this change on cfe-dev.

Reviewers: danalbert, mclow.lists

Reviewed By: danalbert, mclow.lists

Subscribers: jroelofs, cbergstrom, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@232762 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-19 20:59:45 +00:00
Eric Fiselier
c0b166e944 [libcxx] Add support for linking libc++ against a static ABI library.
Summary:
This patch add the CMake option `LIBCXX_ENABLE_STATIC_ABI_LIBRARY` which, when enabled, will link libc++ against the static version of the ABI library.


Reviewers: mclow.lists, jroelofs, danalbert

Reviewed By: danalbert

Subscribers: compnerd, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@231076 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-03 15:59:51 +00:00
Eric Fiselier
45969ecfcd [libcxx] Move to using libc++abi2.exp as the default symbol list for libc++
Summary:
libc++abi2.exp should be used whenever `cxxabi.h` defines `_LIBCPPABI_VERSION`. This macro was added to libc++abi in 2012 in r149632. For this reason we should use libc++abi2.exp as default unless otherwise specified.

Also when building against an in-tree libc++abi we definitely want to use libc++abi2.exp.

I would love to know what OSX was the last to use libc++abi.exp but I can only test on 10.9.


Reviewers: danalbert, mclow.lists, EricWF

Reviewed By: EricWF

Subscribers: meadori, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@230119 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-21 02:26:24 +00:00