[runtimes] Rename various libcpp-has-no-XYZ Lit features to just no-XYZSince those features are general properties of the environment, it makessense to use them from libc++abi too, and so the name
[runtimes] Rename various libcpp-has-no-XYZ Lit features to just no-XYZSince those features are general properties of the environment, it makessense to use them from libc++abi too, and so the name libcpp-has-no-xxxdoesn't make sense.Differential Revision: https://reviews.llvm.org/D126482
show more ...
[runtimes] Remove support for GCC-style 32 bit multilib buildsThis patch removes the ability to build the runtimes in the 32 bitmultilib configuration, i.e. using -m32. Instead of doing this, one
[runtimes] Remove support for GCC-style 32 bit multilib buildsThis patch removes the ability to build the runtimes in the 32 bitmultilib configuration, i.e. using -m32. Instead of doing this, oneshould cross-compile the runtimes for the appropriate target triple,like we do for all other triples.As it stands, -m32 has several issues, which all seem to be related tothe fact that it's not well supported by the operating systems thatlibc++ support. The simplest path towards fixing this is to removesupport for the configuration, which is also the best course of actionif there is little interest for keeping that configuration. If thereis a desire to keep this configuration around, we'll need to do somework to figure out the underlying issues and fix them.Differential Revision: https://reviews.llvm.org/D114473
[libc++][NFC] Reformat comment about D68480 support
[libc++] Fix hang in counting_semaphore::try_acquireBefore this patch, `try_acquire` blocks instead of returning false.This is because `__libcpp_thread_poll_with_backoff` interprets zeroas meanin
[libc++] Fix hang in counting_semaphore::try_acquireBefore this patch, `try_acquire` blocks instead of returning false.This is because `__libcpp_thread_poll_with_backoff` interprets zeroas meaning infinite, causing `try_acquire` to wait indefinitely.Thanks to Pablo Busse (pabusse) for the patch!Differential Revision: https://reviews.llvm.org/D98334
[libc++] Remove non-atomic "platform" semaphore implementations.These can't be made constexpr-constructible (constinit'able),so they aren't C++20-conforming. Also, the platform versions aregoing
[libc++] Remove non-atomic "platform" semaphore implementations.These can't be made constexpr-constructible (constinit'able),so they aren't C++20-conforming. Also, the platform versions aregoing to be bigger than the atomic/futex version, so we'd havethe awkward situation that `semaphore<42>` could be bigger than`semaphore<43>`, and that's just silly.Differential Revision: https://reviews.llvm.org/D110110
[libc++] Temporarily mark tests as UNSUPPORTED to get the CI greenAfter recent changes to the Docker image, all hell broke loose and theCI started failing. This patch marks a few tests as unsuppor
[libc++] Temporarily mark tests as UNSUPPORTED to get the CI greenAfter recent changes to the Docker image, all hell broke loose and theCI started failing. This patch marks a few tests as unsupported untilwe can figure out what the issues are and fix them.In the future, it would be ideal if the nodes could pick up the Dockerfilepresent in the revision being tested, which would allow us to test changesto the Dockerfile in the CI, like we do for all other code changes.Differential Revision: https://reviews.llvm.org/D112737
[libc++] counting_semaphore should not be default-constructible.Neither the current C++2b draft, nor any revision of [p1135],nor libstdc++, claims that `counting_semaphore` should bedefault-const
[libc++] counting_semaphore should not be default-constructible.Neither the current C++2b draft, nor any revision of [p1135],nor libstdc++, claims that `counting_semaphore` should bedefault-constructible. I think this was just a copy-paste issuesomehow.Also, `explicit` was missing from the constructor.Also, `constexpr` remains missing; but that's probably more of atechnical limitation, since apparently there are some platformswhere we don't (can't??) use the atomic implementation andhave to rely on pthreads, which obviously isn't constexpr.Differential Revision: https://reviews.llvm.org/D110042
[runtimes] Simplify how we specify XFAIL & friends based on the tripleNow that Lit supports regular expressions inside XFAIL & friends, it ismuch easier to write Lit annotations based on the tripl
[runtimes] Simplify how we specify XFAIL & friends based on the tripleNow that Lit supports regular expressions inside XFAIL & friends, it ismuch easier to write Lit annotations based on the triple.Differential Revision: https://reviews.llvm.org/D104747
[libc++] Enable the synchronization library on Apple platformsThe synchronization library was marked as disabled on Apple platformsup to now because we were not 100% sure that it was going to be A
[libc++] Enable the synchronization library on Apple platformsThe synchronization library was marked as disabled on Apple platformsup to now because we were not 100% sure that it was going to be ABIstable. However, it's been some time since we shipped it in upstreamlibc++ now and there's been no changes so far. This patch enables thesynchronization library on Apple platforms, and hence commits the ABIstability as far as that vendor is concerned.Differential Revision: https://reviews.llvm.org/D96790
[libc++] Move handling of the target triple to the DSLThis fixes a long standing issue where the triple is not always setconsistently in all configurations. This change also moves theback-deploym
[libc++] Move handling of the target triple to the DSLThis fixes a long standing issue where the triple is not always setconsistently in all configurations. This change also moves theback-deployment Lit features to using the proper target tripleinstead of using something ad-hoc.This will be necessary for using from scratch Lit configuration filesin both normal testing and back-deployment testing.Differential Revision: https://reviews.llvm.org/D102012
[libcxx][test] move libc++-specific tests into the libcxx tree...and rename from `version.pass.cpp` to `version.compile.pass.cpp` to follow the new convention.
[libc++] Update and normalize the "all the headers" tests.Some C++20 headers weren't added properly to all three of thesetest files. Add them, and take the time to normalize the formattingso that
[libc++] Update and normalize the "all the headers" tests.Some C++20 headers weren't added properly to all three of thesetest files. Add them, and take the time to normalize the formattingso that diff <(grep '#include' foo.cpp) <(grep '#include' bar.cpp)shows no diffs (except that `no_assert_include` deliberatelyexcludes `<cassert>`).- Add macro guards to <{barrier,latch,semaphore}>.- Add macro guards to <experimental/simd>.- Remove an include of <cassert> from <semaphore>.- Instead, include <cassert> in the semaphore tests.Differential Revision: https://reviews.llvm.org/D92525
[libc++] Introduce an indirection to create threads in the test suiteWe create threads using std::thread in various places in the test suite.However, the usual std::thread constructor may not work
[libc++] Introduce an indirection to create threads in the test suiteWe create threads using std::thread in various places in the test suite.However, the usual std::thread constructor may not work on all platforms,e.g. on platforms where passing a stack size is required to create a thread.This commit introduces a simple indirection that makes it easier to tweakhow threads are created inside the test suite on various platforms. Notethat tests that are purposefully calling std::thread's constructor directly(e.g. because that is what they're testing) were not modified.
[libc++] Correct XFAILs for the C++20 Synchronization LibraryTechnically, these tests don't only fail against macosx10.9 to 10.15,but really against any released macOS yet.
[libc++] Remove the c++98 Lit feature from the test suiteC++98 and C++03 are effectively aliases as far as Clang is concerned.As such, allowing both std=c++98 and std=c++03 as Lit parameters isju
[libc++] Remove the c++98 Lit feature from the test suiteC++98 and C++03 are effectively aliases as far as Clang is concerned.As such, allowing both std=c++98 and std=c++03 as Lit parameters isjust slightly confusing, but provides no value. It's similar to allowingboth std=c++17 and std=c++1z, which we don't do.This was discovered because we had an internal bot that ran the testsuite under both c++98 AND c++03 -- one of which is redundant.Differential Revision: https://reviews.llvm.org/D80926
Some fixes for open breaks on MacOS and UBSan
[libc++] Adapt a few things around the implementation of P1135R6- Add the new symbols to the ABI list on Darwin- Add XFAIL markup to the tests that require dylib support on older platforms- Add a
[libc++] Adapt a few things around the implementation of P1135R6- Add the new symbols to the ABI list on Darwin- Add XFAIL markup to the tests that require dylib support on older platforms- Add availability markup for back-deployment
[libc++] Implementation of C++20's P1135R6 for libcxxDifferential Revision: https://reviews.llvm.org/D68480