Commit Graph

5896 Commits

Author SHA1 Message Date
Louis Dionne
d0ad5eb1bf [NFC][libcxx] Add comments about making mutex/condition_variable trivial on Apple platforms
Leaving some comments behind so that we avoid re-having that discussion
in the future.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@367048 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-25 20:29:20 +00:00
Marshall Clow
ce2a5ab4c4 Implement change #4 of P1466: Change weekday to accept both 0 and 7 as Sunday. Add accessors 'c_encoding' and 'iso_encoding' to provide different interpretations of the weekday. Remove 'operator unsigned'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366981 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-25 03:26:05 +00:00
David Tenty
f8c785b6cb [AIX][lit] Don't depend on psutil on AIX
Summary:
On AIX psutil can run into problems with permissions to read the process
tree, which causes problems for python timeout tests which need to kill off
a test and it's children.

This patch adds a workaround by invoking shell via subprocess and using a
platform specific option to ps to list all the descendant processes so we can
kill them. We add some checks so lit can tell whether timeout tests are
supported with out exposing whether we are utilizing the psutil
implementation or the alternative.

Reviewers: hubert.reinterpretcast, andusy, davide, delcypher

Reviewed By: delcypher

Subscribers: davide, delcypher, christof, lldb-commits, libcxx-commits, llvm-commits

Tags: #lldb, #libc, #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366912 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-24 15:04:27 +00:00
Roger Ferrer Ibanez
6bdf0af168 [RISCV] Implement benchmark::cycleclock::Now
This is a cherrypick of D64237 onto llvm/utils/benchmark and
libcxx/utils/google-benchmark.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366868 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-24 05:33:46 +00:00
Marshall Clow
fb20aaa0a0 Implement most of P1612R1: Relocate endian. Moves the std::endian functionality from 'type-traits' to 'bit'. No other change. The reason that this is 'partial' is that P1621 also recommends a feature-test macro, but I don't have the value for that one yet. In a month or so, I'll add that
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366776 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-23 04:20:19 +00:00
Louis Dionne
a0f5b3a6e3 [NFC][libc++] Add missing EXPLICIT to pair and tuple synopsis
The constructors for std::pair and std::tuple have been made conditionally
explicit, however the synopsis in the headers do not reflect that.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366735 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-22 20:45:23 +00:00
Yi Kong
58ca921a8c [runtimes] Don't depend on libpthread on Android
r362048 added support for ELF dependent libraries, but broke Android
build since Android does not have libpthread. Remove the dependency on
the Android build.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366734 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-22 20:41:03 +00:00
Petr Hosek
c0e405ec62 [libc++] Set __file_ to 0 in basic_filebuf::close() even if fclose fails
This issue was detected by ASan in one of our tests. This test manually
invokes basic_filebuf::cloe(). fclose(__h.release() returned a non-zero
exit status, so __file_ wasn't set to 0. Later when basic_filebuf
destructor ran, we would enter the if (__file_) block again leading to
heap-use-after-free error.

The POSIX specification for fclose says that independently of the return
value, fclose closes the underlying file descriptor and any further
access (including another call to fclose()) to the stream results in
undefined behavior. This is exactly what happened in our test case.

To avoid this issue, we have to always set __file_ to 0 independently of
the fclose return value.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366730 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-22 19:54:34 +00:00
Louis Dionne
16e87a2f3e [libc++] Do not infer support for C++17 in GCC < 7
libc++'s lit configuration infers the C++ language dialect when it is
not provided by checking which -std= flags that a compiler supports.
GCC 5 and GCC 6 have a -std=c++17 flag, however, they do not have full
C++17 support. The lit configuration has hardcoded logic that removes
-std=c++1z as an option to test for GCC < 7, but not -std=c++17.

This leads to a bunch of failures when running libc++ tests with GCC 5
or GCC 6. This patch adds -std=c++17 to the list of flags that are
discarded for GCC < 7 by lit's language dialect inference.

Thanks to Bryce Adelstein Lelbach for the patch.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366700 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-22 16:24:48 +00:00
Marshall Clow
3826bf7c10 Update c++2a status page with post-Cologne information
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366696 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-22 15:13:14 +00:00
Louis Dionne
28ee2c5f2d [libc++] Mark libcpp_deallocate.sh.cpp as UNSUPPORTED instead of XFAIL on AppleClang 9
Some minor versions of AppleClang 9 appear not to fail the test. It's
such a mess that the only sane thing to do is to mark the test as
UNSUPPORTED.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366606 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 19:41:40 +00:00
Louis Dionne
33f76384d0 Revert "[libc++] Integrate the PSTL into libc++"
This reverts r366593, which caused unforeseen breakage on the build bots.
I'm reverting until the problems have been figured out and fixed.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366603 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 18:52:46 +00:00
Louis Dionne
55d3b34d44 [libc++] Allow passing additional CMake arguments in macOS trunk CI script
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366601 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 18:47:00 +00:00
Louis Dionne
2f961a057f [libc++] Use _EnableIf instead of std::enable_if in deduction guides for map and set
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366594 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 17:13:39 +00:00
Louis Dionne
106db235ed [libc++] Integrate the PSTL into libc++
Summary:
This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when
configuring libc++ in CMake. When that option is enabled, libc++ will
assume that the PSTL can be found somewhere on the CMake module path,
and it will provide the C++17 parallel algorithms based on the PSTL
(that is assumed to be available).

The commit also adds support for running the PSTL tests as part of
the libc++ test suite.

Reviewers: rodgert, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366593 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 17:02:42 +00:00
Louis Dionne
71a0cf47f9 [libc++] Add missing %link_flags to .sh.cpp test
Without the link flags, the test always fails on Linux. For some reason,
however, it works on Darwin -- which is why it wasn't caught at first.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366579 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 14:01:48 +00:00
Louis Dionne
48413c895e [libc++] Fix link error with _LIBCPP_HIDE_FROM_ABI_PER_TU and std::string
Summary:
This is effectively a revert of r344616, which was a partial fix for
PR38964 (compilation of <string> with GCC in C++03 mode). However, that
configuration is explicitly not supported anymore and that partial fix
breaks compilation with Clang when per-TU insulation is provided.

PR42676
rdar://52899715

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366567 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-19 11:52:55 +00:00
Louis Dionne
56bc01df8f [libc++] Add C++17 deduction guides for std::function
Summary: http://llvm.org/PR39606

Reviewers: Quuxplusone

Subscribers: christof, dexonsmith, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366484 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-18 19:50:56 +00:00
Hans Wennborg
548f2e8e96 Bump the trunk version to 10.0.0svn
and clear the release notes.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366427 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-18 11:51:05 +00:00
Louis Dionne
7524ef5009 [libc++] XFAIL a test that does not behave properly on older Clang
rdar://53015486

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366359 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-17 18:54:29 +00:00
Louis Dionne
e2586fd18f [libcxx] Rejigger test for destroying delete feature-test macros
In r361572, we introduced library support for C++20 destroying delete
and decided to only define the library feature-test macro when the
compiler supports the underlying language feature. This patch reworks
the tests to mirror that.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366263 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-16 21:13:40 +00:00
Louis Dionne
5f99b4ef15 [libc++] Add missing UNSUPPORTED for CTAD tests
The tests for unordered_set and unordered_multiset were missing UNSUPPORTED
markup for Apple Clang 9.1, which is still being used on some CI bots.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366259 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-16 20:41:33 +00:00
Zoe Carver
3f39fe31c4 Add contains method to associative containers. This patch implements P0458R2, adding contains to map, multimap, unordered_map, unordered_multimap, set, multiset, unordered_set, and unordered_multiset.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366170 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-16 03:21:01 +00:00
Louis Dionne
c59091fb03 [libc++] Implement P0433: deduction guides for <unordered_map>
Thanks to Arthur O'Dwyer for the patch.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366124 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-15 20:06:01 +00:00
Eric Fiselier
e4aa70cf2d Constrain workaround to avoid affecting other buildbots
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366122 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-15 19:53:42 +00:00
Eric Fiselier
68a0f8c8ab Improve compile time of variant.
In particular, improve the compile time of the overload set builder
that variant uses to determine which alternative to construct.

Instead of having the __overload type construct itself recursively,
this patch uses a flat construction for the overload set.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366033 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-14 21:29:39 +00:00
Eric Fiselier
3996cfb482 Add test for variant construction with duplicate types.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366032 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-14 20:59:51 +00:00
Eric Fiselier
19063b99b0 Cleanup whitespace in <variant>. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366026 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-14 18:31:55 +00:00
Eric Fiselier
d13b2c9c44 Harden variant test added in r366022
The test was brittle since it only went boom for one specific type, when
really it should go boom for all of them.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366025 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-14 18:30:34 +00:00
Eric Fiselier
301501fb78 Avoid eager template instantiation caused by the variant narrowing checks.
The standard disallows narrowing conversions when constructing a variant.
This is checked by attempting to perform braced initialization of the
destination type from the argument type. However, braced initialization
can force the compiler (mostly clang) to eagerly instantiate the
constructors of the destintation type -- which can lead to errors in
a non-immediate context.

However, as variant is currently specified, the narrowing checks only
observably apply when the destination type is arithmetic. Meaning we can
skip the check for class types. Hense avoiding the hard errors.

In order to cause fewer build breakages, this patch avoids the narrowing
check except when the destination type is arithmetic.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@366022 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-14 18:21:15 +00:00
Eric Fiselier
478bb094b5 Fix non-conformance it std::tuple.
Previously we implemented all one trillion tuple-like constructors using
a single generic overload. This worked fairly well, except that it
differed in behavior from the standard version because it didn't
consider both T&& and T const&. This was observable for certain
types.

This patch addresses that issue by splitting the generic constructor
in two. We now provide both T&& and T const& versions of the
tuple-like constructors (sort of).

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365973 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 23:01:48 +00:00
Eric Fiselier
6f5ab14489 Add option to disable variant narrowing conversion changes.
The paper P0608R3 - "A sane variant converting constructor" disallows
narrowing conversions in variant. It was meant to address this
surprising problem:

  std::variant<std::string, bool> v = "abc";
  assert(v.index() == 1); // constructs a bool.

However, it also disables every potentially narrowing conversion. For
example:

  variant<unsigned> v = 0; // ill-formed
  variant<string, double> v2 = 42; // ill-formed (int -> double narrows)

These latter changes break code. A lot of code. Within Google it broke
on the order of a hundred thousand target with thousands of root causes
responsible for the breakages.

Of the breakages related to the narrowing restrictions, none of them
exposed outstanding bugs. However, the breakages caused by boolean
conversions (~13 root causes), all but one of them were bugs.

For this reasons, I am adding a flag to disable the narrowing conversion
changes but not the boolean conversions one.

One purpose of this flag is to allow users to opt-out of breaking changes
in variant until the offending code can be cleaned up. For non-trivial
variant usages the amount of cleanup may be significant.

This flag is also required to support automated tooling, such as
clang-tidy, that can automatically fix code broken by this change.
In order for clang-tidy to know the correct alternative to construct,
it must know what alternative was being constructed previously, which
means running it over the old version of std::variant.

Because this change breaks so much code, I will be implementing the
aforementioned clang-tidy check in the very near future.

Additionally I'm plan present this new information to the committee so they can
re-consider if this is a breaking change we want to make.

I think libc++ should very seriously consider pulling this change
before the 9.0 release branch is cut. But that's a separate discussion
that I will start on the lists.

For now this is the minimal first step.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365960 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 21:32:11 +00:00
Louis Dionne
86f93e801c [libc++] Add XFAILs for CTAD tests on older compilers
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365923 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 17:30:57 +00:00
Eric Fiselier
6507e2af11 Mark destroying delete test as UNSUPPORTED with clang 7
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365856 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 01:16:08 +00:00
Eric Fiselier
e98aed4733 Tolerate import errors in "not.py" implementation
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365855 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 01:13:05 +00:00
Marshall Clow
3c73561841 Reorganize the 'bit' header to make most of the facilities available for internal use pre-C++20. NFC for external users
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365854 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 01:01:55 +00:00
Eric Fiselier
1639ec22a2 Add another buildbot username to the workaround list
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365848 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 00:16:38 +00:00
Eric Fiselier
5e40011381 Attempt to override broken buildbot config for libc++abi.
The buildbots were changed to pass -DLIBCXX_CXX_ABI=libcxxabi, but
they don't provide an include path for the library, so cxxabi.h is
never found while building libc++.

This is a temporary change until the buildbots are updated or until
D63883 lands in a form that unbreaks the bots

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365847 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 00:02:49 +00:00
Eric Fiselier
f579c7c19d Fix memory leak in set and map.
When assigning an initializer list into set/map, libc++ would
leak memory if the initializer list contained equivalent keys
because we failed to check if the insertion was successful.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365840 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 23:13:38 +00:00
Louis Dionne
2980850307 [libc++] Implement deduction guides for <unordered_set>
Thanks to Arthur O'Dwyer for the patch.
Differential Revision: https://reviews.llvm.org/D58617

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365788 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 15:16:39 +00:00
Saleem Abdulrasool
9eaa4d176d build: use multiple install rather than building up a list
Rather than building up a list to iterate over later, just create multiple
install commands based on the configuration. This makes it easier to see what
is getting installed and allows for the install handling to be centralised. NFC

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365562 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 21:43:01 +00:00
Vitaly Buka
9132b5b287 Revert "[libc++] Take 2: Do not cleverly link against libc++abi just because it happens to be there"
r365326 still breaks bots:
http://lab.llvm.org:8011/builders/netbsd-amd64/builds/20712/steps/ninja%20build%20local/logs/stdio
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-autoconf/builds/39477/steps/test%20tsan%20in%20debug%20compiler-rt%20build/logs/stdio

And probably others

This reverts commit 945b9ec0693390ef35fe8c6b774495312246b8b6.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365359 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 17:46:23 +00:00
Louis Dionne
0a371878f1 [libc++] Take 2: Do not cleverly link against libc++abi just because it happens to be there
Summary:
Otherwise, when libcxxabi is not an enabled project in the monorepo, we
get a link error because we try to link against non-existent cxxabi_shared.

More generally, we shouldn't change the behavior of the build based on
implicit things like whether a file happens to be at a specific path or
not.

This is a re-application of r365222 that had been reverted in r365233
because it broke the build bots. However, the build bots now specify
explicitly what ABI library they want to use (libc++abi), so this
commit should now be OK to merge.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365326 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 14:49:35 +00:00
Marshall Clow
7a377e25a4 Make forward_list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365290 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 03:45:28 +00:00
Eric Fiselier
a386369f02 Make ~mutex and ~condition_variable trivial on Windows.
The implementations of __libcpp_mutex_destroy and __libcpp_condvar_destroy
are already NOPs, so this optimization is safe to perform.

See r365273 and PR27658 for more information.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365281 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-07 17:24:03 +00:00
Eric Fiselier
47e6bb8620 Fix PR27658 - Make ~mutex trivial when possible.
Currently std::mutex has a constexpr constructor, but a non-trivial
destruction.

The constexpr constructor is required to ensure the construction of a
mutex with static storage duration happens at compile time, during
constant initialization, and not during dynamic initialization.
This means that static mutex's are always initialized and can be used
safely during dynamic initialization without the "static initialization
order fiasco".

A trivial destructor is important for similar reasons. If a mutex is
used during dynamic initialization it might also be used during program
termination. If a static mutex has a non-trivial destructor it will be
invoked during termination. This can introduce the "static
deinitialization order fiasco".

Additionally, function-local statics emit a guard variable around
non-trivially destructible types. This results in horrible codegen and
adds a runtime cost to every call to that function. non-local static's
also result in slightly worse codegen but it's not as big of a problem.

Example codegen can be found here: https://goo.gl/3CSzbM

Note: This optimization is not safe with every pthread implementation.
Some implementations allocate on the first call to pthread_mutex_lock
and free the allocation in pthread_mutex_destroy.

Also, changing the triviality of the destructor is not an ABI break.
At least to the best of my knowledge :-)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365273 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-07 01:20:54 +00:00
Marshall Clow
da9535d479 Make list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365261 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-06 06:10:03 +00:00
Zoe Carver
5625778f5c This patch makes swap functions constexpr. Both swap overloads, swap_ranges and iter_swap are updated (with tests).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365238 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-05 20:13:34 +00:00
Louis Dionne
5f2b21c3c9 Revert "[libc++] Do not cleverly link against libc++abi just because it happens to be there"
This reverts r365222, which broke the libc++ build bots.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365233 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-05 18:44:25 +00:00
Louis Dionne
3e5ac5b396 [libc++] Do not cleverly link against libc++abi just because it happens to be there
Summary:
Otherwise, when libcxxabi is not an enabled project in the monorepo, we
get a link error because we try to link against non-existent cxxabi_shared.

More generally, we shouldn't change the behavior of the build based on
implicit things like whether a file happens to be at a specific path or
not.

Reviewers: EricWF

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

Tags: #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@365222 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-05 17:06:23 +00:00