Commit Graph

5562 Commits

Author SHA1 Message Date
Petr Hosek
43e9327441 [gn] Support for building libc++
This change introduces support for building libc++. The library
build should be complete, but not all CMake options have been
replicated in GN. We also don't support tests yet.

We only support two stage build at the moment.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359806 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-02 17:29:41 +00:00
Brian Cain
3c06e2e68d [libcxx] cmake - guard list remove
REMOVE_ITEM fails if CMAKE_REQUIRED_LIBRARIES is empty on some
versions of cmake.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359755 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-02 03:49:50 +00:00
Dan Albert
c551aa9928 Add missing locale requirement to test.
Linux is failing even though the test runner does report this locale
is available, but the test still isn't expected to work on platforms
without the locale (like Android).

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359726 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-01 21:02:32 +00:00
Dan Gohman
d6842df3f7 [WebAssembly] WASI support for libcxx
This adds explicit support for the WASI platform to libcxx.

WASI libc uses some components from musl, however it's not fully compatible
with musl, so we're planning to stop using _LIBCPP_HAS_MUSL_LIBC and
customize for WASI libc specifically.

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

Reviewers: sbc100, ldionne


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359703 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-01 16:47:30 +00:00
Marshall Clow
0c6eb81c47 Get rid of a bunch of 'unused variable' warnings in test when run with debug_level set. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359672 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-01 11:25:58 +00:00
Petr Hosek
548aa18445 [libcxx] Move CMake file to src, avoid using globs
This addresses the longstanding FIXME and makes libc++ build more
similar to other runtimes.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359656 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-01 06:40:36 +00:00
Marshall Clow
3cae9fcd3d Fix a bunch of unordered container tests that were failing when _LIBCPP_DEBUG was set.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359642 91177308-0d34-0410-b5e6-96231b3b80d8
2019-05-01 01:52:51 +00:00
Eric Fiselier
35323b7f05 Support overaligned types in aligned_storage.
Summary:
The current implementation of aligned storage was written before we had `alignas`, so it used a list of builtin types to force the alignment. But this doesn't work overaligned requests.

This patch adds a fallback case supporting over-alignment. It only affects case that were previously ill-formed.

Reviewers: rsmith, ldionne, dlj, mclow.lists

Reviewed By: mclow.lists

Subscribers: mclow.lists, dexonsmith, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359596 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-30 18:44:45 +00:00
Louis Dionne
df0111c292 [libc++][CMake] Refactor how we link against system libraries
Summary:
Instead of populating the global LIBCXX_LIBRARIES, we use the link-time
dependency management built into CMake to propagate link flags. This
leads to a cleaner and easier-to-follow build.

Reviewers: phosek, smeenai, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, mstorsjo, libcxx-commits

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359571 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-30 15:44:19 +00:00
Marshall Clow
cac04cde5e Implement LWG 2960: nonesuch is insufficiently useless
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359526 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-30 00:54:38 +00:00
Marshall Clow
c5b17c65dc Mark LWG#2977 as 'Nothing to do'. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359525 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-30 00:54:26 +00:00
Marshall Clow
732332686b Add tests specifically for LWG2164. We already did this; but now we have tests. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359458 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-29 15:38:07 +00:00
Eric Fiselier
30f78b946a Fix permission error while running bots
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359405 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-28 17:00:46 +00:00
Eric Fiselier
57c2f5da67 attempt to unbreak build bots
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359404 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-28 16:42:49 +00:00
Eric Fiselier
2cdb5e3dd7 Attempt to switch to auto-scaling bots
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359403 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-28 15:54:50 +00:00
Marshall Clow
b940d76b0d Add '_LIBCPP_ASSERT(ready())' to several match_results method that have this precondtion. Fix several tests which did not honor this precondition. Thanks to Andrey Maksimov for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359324 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-26 17:10:03 +00:00
Louis Dionne
6513d1f464 [libc++] Relax libc++-only test on regex_constants
The standard requires the following for the std::regex_constants::error_type
values: "The type error_type is an implementation-defined enumerated type."

The values of this enumerated type are not required to be non-zero.
This patch makes such checks in tests libc++-specific to let the tests
pass for other conforming implementations.

Thanks to Andrey Maksimov for the patch.
Differential Revision: https://reviews.llvm.org/D61195

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359320 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-26 16:46:37 +00:00
Chandler Carruth
5badcdb281 Fix r359229 which tried to fix r359159...
When r359229 added noexcept to the declaration of `~mutex`, it didn't
add it to the definition which caused -Wimplicit-exception-spec-mismatch
to fire. This just adapts the definition to agree with the declaration.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359275 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-26 05:04:33 +00:00
Eric Fiselier
0ef0a7622b add tuple_cat test for const T
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359256 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-26 01:06:32 +00:00
Eric Fiselier
cc57a78190 Fix return type of std::tuple_cat.
When the arguments to tuple cat were const, the const was incorrectly
propagated into the type of the resulting tuple. For example:

const std::tuple<int> t(42);
auto r = std::tuple_cat(t, t);
// Incorrect! should be std::tuple<int, int>.
static_assert(is_same_v<decltype(r), std::tuple<const int, const int>>);

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359255 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-26 01:02:18 +00:00
Richard Smith
ddc44427f8 Remove incorrect explicit instantiation declarations for valarray
libc++ ABI v1 provides three valarray symbols as part of the shared library:

valarray<size_t>::valarray(size_t)
valarray<size_t>::~valarray()
valarray<size_t>::resize(size_t, size_t)

The first two of these are intended to be removed in V2 of the ABI: they're
attributed _LIBCPP_HIDE_FROM_ABI_AFTER_V1, and  it appears that the intention
is that these symbols from the library are not used even when building using
the V1 ABI. However, there are explicit instantiation declarations for all
three symbols in the header, which are not correct as we do not intend to find
an instantiation of these functions that is provided elsewhere.

(A recent change to clang to properly diagnose explicit instantiation
declarations of internal linkage functions -- required by [temp.explicit]p13 --
had to be rolled back because it diagnosed these explicit instantiations.)

Remove the explicit instantiation declarations, and remove the explicit
instantiation definitions for V2 of the libc++ ABI onwards.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359243 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 21:31:58 +00:00
Richard Smith
ee568af1f1 Remove libc++ checks and workarounds for unsupported old versions of GCC (<4.9).
Differential Revision: https://reviews.llvm.org/D61107


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359232 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 20:02:10 +00:00
Richard Smith
8a590a4c20 Fix buildbot failures after r359159.
std::mutex was not actually is_nothrow_default_constructible in C++98/C++03,
because the variable declaration

  std::mutex M;

... could throw an exception from the mutex destructor. Fix it by marking the
destructor as non-throwing. This has no effect in C++11 onwards, because
destructors are non-throwing by default in those language modes.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359229 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 20:00:06 +00:00
Martin Storsjo
93c37a9b71 Set _LIBCPP_DLL_VIS on _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS in MinGW mode
Contrary to MSVC, MinGW compilers wants the dllexport attribute on
the declaration of an explicit template instantiation, not on the
definition.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359227 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 19:46:28 +00:00
Casey Carter
d8b79a0d07 [libc++][test] Fix noexcept assertions in variant's get tests
All constant expressions are non-potentially-throwing in C++14, but that is *not* the case in C++17. Change these tests of the `variant`-flavored overloads of `std::get` to expect the correct behavior when the compiler is not GCC or is GCC 9+.

Credit to Jonathan Wakely for providing an improved version of my initial change that validates the incorrect behavior on GCC < 9 as well as validating the correct behavior on other compilers.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359220 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 18:36:29 +00:00
Marshall Clow
e84fd85b88 Implement 'lerp'; which is the last bit of P0811. Mark that paper as complete.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359211 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 17:44:18 +00:00
Marshall Clow
321a1f890d Implement midpoint for floating point types. Reviewed as https://reviews.llvm.org/D61014.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359184 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 12:11:43 +00:00
Marshall Clow
26ff1b3321 Update test to better check for the non-constexpr-ness of a move constructor. Fixes PR#41577.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359162 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 02:12:51 +00:00
Richard Smith
6892a8e351 Use modern type trait implementations when available.
Teach libcxx to stop using various deprecated __has_* type traits, in favor of
the ("modern", C++11 era) __is_* type traits.

This is mostly just a simplification, but fixes at least one bug: _Atomic T
should be considered trivially-destructible, but is not considered to be POD by
Clang, and __has_trivial_destructor is specified in the GCC documentation as
returning false for non-POD non-class types.

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


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359159 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-25 00:35:01 +00:00
Eric Fiselier
250205c9d2 Add std::is_constant_evaluated.
Clang recently added __builtin_is_constant_evaluated() and GCC 9.0
has it as well.

This patch adds support for it in libc++.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359119 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 17:54:25 +00:00
Marshall Clow
ef08906314 Make the test object callable. libstdc++'s bind checks that (libc++ currently does not). Thanks to Jonathan Wakely for the fix.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359108 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 15:33:55 +00:00
Marshall Clow
96f8d208d8 Fix a one more compare test that assumed -1/0/1 instsad of <0/0/>0. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359106 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 15:26:45 +00:00
Marshall Clow
df2f36590d Fix a couple of tests that assumed that compare retunred -1/0/1 instead of <0/0/>0. Thanks to Jonathan Wakely for the report.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359104 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 15:14:14 +00:00
Marshall Clow
a123e7ac83 Add an any_cast test for array types. Thanks to Jonathan Wakely for the suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359085 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 12:11:12 +00:00
Eric Fiselier
8e365750a0 Avoid name conflict with kernel headers
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359080 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 09:43:44 +00:00
Petr Hosek
82c110a209 [libcxx] Use relative path for libc++ library when generating script
This addresses the issue introduced in D60309 which leads to linker
scripts being generated with absolute paths.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359045 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 22:55:28 +00:00
Eric Fiselier
9d4c40d0d2 Fix namespace name conflict with GCC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359023 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 18:23:33 +00:00
Eric Fiselier
dbd4f51025 Fix implementation of ::abs and std::abs LWG 2192.
Summary:
All overloads of `::abs` and `std::abs` must be present in both `<cmath>` and `<cstdlib>`. This is problematic to implement because C defines `fabs` in `math.h` and `labs` in `stdlib.h`. This introduces a circular dependency between the two headers. 

This patch implements that requirement by moving `abs` into `math.h` and making `stdlib.h` include `math.h`. In order to get the underlying C declarations from the "real" `stdlib.h` inside our `math.h` we need some trickery. Specifically we need to make `stdlib.h` include next itself.

Suggestions for a cleaner implementation are welcome.

Reviewers: mclow.lists, ldionne

Reviewed By: ldionne

Subscribers: krytarowski, fedor.sergeev, dexonsmith, jdoerfert, jsji, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359020 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 18:01:58 +00:00
Louis Dionne
f5450d0a5a [libc++] Remove redundant conditionals for Apple platforms
Summary:
In a bunch of places, we used to check whether LIBCXX_BUILDING_LIBCXXABI
is defined OR we're building for an Apple platform. This used to
be necessary in a time when Apple's build script did NOT define
LIBCXX_BUILDING_LIBCXXABI. However this is not relevant anymore
since Apple's build does define LIBCXX_BUILDING_LIBCXXABI.

Reviewers: EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358988 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 14:05:04 +00:00
Petr Hosek
af3bb36aa2 [libcxx] Update gen_link_script.py to support different input and output
This enables the use of this script from other build systems like
GN which don't support post-build actions as well as for static
archives.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358915 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-22 19:51:33 +00:00
Casey Carter
a4aa812bd2 [libc++][test] Update some wstring_convert tests for MSVC quirks
Due to MSVC's decision to encode `wchar_t` as UTF-16, it rejects wide
character/string literals that expect a character value greater than
`\xffff`. UTF-16 `wchar_t` is clearly non-conforming, given that the
standard requires wchar_t to be capable of representing all characters
in the supported wide character execution sets, but rejecting e.g.
`\x40003` is a reasonably sane compromise given that encoding choice:
there's an expectation that `\xFOO` produces a single character in the
resulting literal. Consequently `L'\x40003'`/`L"\x40003"` are ill-formed
literals on MSVC. `L'\U00040003'` is a high surrogate (and produces a
warning about ignoring the "second character" in a multi-character
literal), and `L"\U00040003"` is a perfectly-valid `const wchar_t[3]`.

This change updates these tests to use universal-character-names instead
of raw values for the intended character values, which technically makes
them portable even to implementations that don't use a unicode
transformation format encoding for their wide character execution
character set. The two-character literal `L"\u1005e"` is awkward - the
`e` looks like part of the UCN's hex encoding - but necessary to compile
in '03 mode since '03 didn't allow UCNs to be used for members of the
basic execution character set even in character/string literals.

I've also eliminated the extraneous `\x00` "bonus null-terminator" in
some of the string literals which doesn't affect the tested behavior.

I'm sorry about using `*L"\U00040003"` in `conversions.string/to_bytes.pass.cpp`,
but it's correct for platforms with 32-bit wchar_t, *and* doesn't
trigger narrowing warnings as did the prior `CharT(0x40003)`.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358908 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-22 19:08:13 +00:00
Casey Carter
6f21f89dc4 [libc++] [test] Silence C++20 deprecation warnings in the MSVC STL
... when including msvc_stdlib_force_include.hpp.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358782 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 20:39:41 +00:00
Thomas Anderson
a12cb9d211 [libc++] Make __debug_less::operator() constexpr
This is a followup to [1] which added a new `__debug_less::operator()` overload.
[2] added `_LIBCPP_CONSTEXPR_AFTER_CXX17` to the original
`__debug_less::operator()` between the time of writing [1] and landing it.  This
change adds `_LIBCPP_CONSTEXPR_AFTER_CXX17` to the new overload too.

[1] https://reviews.llvm.org/rL358423
[2] https://reviews.llvm.org/rL358252

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


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358725 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 00:52:54 +00:00
Louis Dionne
aa15214168 [libc++] Link against libc++abi in the libc++abi tests
PR27405

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358712 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 20:59:49 +00:00
Billy Robert O'Neal III
80e36e12fd [libc++] [test] Add missing required headers to midpoint.integer.pass.cpp
This change authored by Paolo Torres <t-pator@microsoft.com>

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358698 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 18:02:14 +00:00
Louis Dionne
2696247a2f [libc++] Make sure we re-export some missing libc++abi symbols from libc++
Summary:
Ensure we re-export __cxa_throw_bad_array_new_length and
__cxa_uncaught_exceptions from libc++, since they are now
provided by libc++abi.

Doing this allows us to stop linking explicitly against libc++abi in
the libc++abi tests, since libc++ re-exports all the necessary symbols.
However, there is one caveat to that. We don't want libc++ to re-export
__cxa_uncaught_exception (the singular form), since it's only provided
for backwards compatibility. Hence, for the single test where we check
this backwards compatibility, we explicitly link against libc++abi.

PR27405
PR22654

Reviewers: EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358690 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 17:18:15 +00:00
Louis Dionne
b6402fd7f2 [libc++] Unconditionally enable the __pad_and_output optimization
This used to be guarded on whether the deployment target was greater
than macosx10.8, however testing against the dylibs for 10.8 and earlier
with the function enabled works too. The revision that introduced
__pad_and_output is r164241 and it does not mention a reason for the
guard.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358677 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 15:19:35 +00:00
Louis Dionne
4db7791939 [libc++][CMake] Always provide new/delete in libc++ unless specified otherwise
Summary:
Let's not try to be clever and detect it based on the libc++abi setting.
The only build that puts new/delete in libc++abi is Apple's and we set
this CMake option explicitly in both libc++ and libc++abi. Complicated
dependent options hurt, let's avoid them when possible.

Reviewers: phosek, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358671 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 14:47:46 +00:00
Louis Dionne
2b46448963 [libc++][CMake] Remove unnecessary conditional for defining new handlers
It turns out that whether the new handlers should be provided is orthogonal
to whether new/delete are provided in libc++ or libc++abi. The reason why
I initially added this conditional is because of an incorrect understanding
of the path we're taking when building on Apple platforms. In fact, we
always build libc++ on top of libc++abi on Apple platforms, so we take
the branch for `LIBCXX_BUILDING_LIBCXXABI` there.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358616 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 21:57:49 +00:00
Petr Hosek
8a82647271 [CMake] Split linked libraries for shared and static libc++
Some linker libraries are only needed for shared libc++, some only
for static libc++, combining these together in LIBCXX_LIBRARIES and
LIBCXX_INTERFACE_LIBRARIES can introduce unnecessary dependencies.

This changes splits those up into LIBCXX_SHARED_LIBRARIES and
LIBCXX_STATIC_LIBRARIES matching what libc++abi already does.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@358614 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 21:41:09 +00:00