forked from OSchip/llvm-project
[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
This commit is contained in:
parent
54fa9ecd30
commit
80e73f2295
|
@ -1432,6 +1432,8 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
|
|||
_Pragma("clang attribute pop")
|
||||
# define _LIBCPP_AVAILABILITY_TO_CHARS \
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM
|
||||
# define _LIBCPP_AVAILABILITY_SYNC \
|
||||
__attribute__((availability(unavailable, message="The C++20 Synchronization Library requires runtime support that hasn't been shipped on Apple platforms yet!")))
|
||||
#else
|
||||
# define _LIBCPP_AVAILABILITY_SHARED_MUTEX
|
||||
# define _LIBCPP_AVAILABILITY_BAD_VARIANT_ACCESS
|
||||
|
@ -1447,6 +1449,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
|
|||
# define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH
|
||||
# define _LIBCPP_AVAILABILITY_FILESYSTEM_POP
|
||||
# define _LIBCPP_AVAILABILITY_TO_CHARS
|
||||
# define _LIBCPP_AVAILABILITY_SYNC
|
||||
#endif
|
||||
|
||||
// Define availability that depends on _LIBCPP_NO_EXCEPTIONS.
|
||||
|
|
|
@ -1471,15 +1471,15 @@ using __cxx_atomic_contention_t = __cxx_atomic_impl<__cxx_contention_t>;
|
|||
|
||||
#ifndef _LIBCPP_HAS_NO_PLATFORM_WAIT
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(void const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(void const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor(void const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait(void const volatile*, __cxx_contention_t);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(void const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(void const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor(void const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait(void const volatile*, __cxx_contention_t);
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait(__cxx_atomic_contention_t const volatile*, __cxx_contention_t);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor(__cxx_atomic_contention_t const volatile*);
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait(__cxx_atomic_contention_t const volatile*, __cxx_contention_t);
|
||||
|
||||
template <class _Atp, class _Fn>
|
||||
_LIBCPP_INLINE_VISIBILITY bool __cxx_atomic_wait(_Atp* __a, _Fn && __test_fn)
|
||||
|
|
|
@ -91,14 +91,14 @@ using __barrier_phase_t = uint8_t;
|
|||
|
||||
class __barrier_algorithm_base;
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI
|
||||
__barrier_algorithm_base* __construct_barrier_algorithm_base(ptrdiff_t& __expected);
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI
|
||||
bool __arrive_barrier_algorithm_base(__barrier_algorithm_base* __barrier,
|
||||
__barrier_phase_t __old_phase);
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI
|
||||
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI
|
||||
void __destroy_barrier_algorithm_base(__barrier_algorithm_base* __barrier);
|
||||
|
||||
template<class _CompletionF>
|
||||
|
|
|
@ -12,6 +12,34 @@ Afterwards the ABI list should be updated to include the new changes.
|
|||
|
||||
New entries should be added directly below the "Version" header.
|
||||
|
||||
------------
|
||||
Version 10.0
|
||||
------------
|
||||
|
||||
* TODO - [libc++] Implementation of C++20's P1135R6 for libcxx
|
||||
|
||||
libc++ now implements P1135R6 (The C++20 Synchronization Library), which
|
||||
adds a few symbols to the dylib. This is backwards-compatible since we're
|
||||
just adding new symbols.
|
||||
|
||||
x86_64-unknown-linux-gnu
|
||||
------------------------
|
||||
TODO
|
||||
|
||||
x86_64-apple-apple-darwin
|
||||
-------------------------
|
||||
Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx
|
||||
Symbol added: __ZNSt3__120__libcpp_atomic_waitEPVKvx
|
||||
Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
|
||||
Symbol added: __ZNSt3__123__cxx_atomic_notify_allEPVKv
|
||||
Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
|
||||
Symbol added: __ZNSt3__123__cxx_atomic_notify_oneEPVKv
|
||||
Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE
|
||||
Symbol added: __ZNSt3__123__libcpp_atomic_monitorEPVKv
|
||||
Symbol added: __ZNSt3__131__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh
|
||||
Symbol added: __ZNSt3__132__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE
|
||||
Symbol added: __ZNSt3__134__construct_barrier_algorithm_baseERl
|
||||
|
||||
-----------
|
||||
Version 9.0
|
||||
-----------
|
||||
|
|
|
@ -2420,3 +2420,14 @@
|
|||
{'type': 'OBJECT', 'is_defined': True, 'name': '__ZTINSt3__14__fs10filesystem16filesystem_errorE', 'size': 0}
|
||||
{'type': 'OBJECT', 'is_defined': True, 'name': '__ZTSNSt3__14__fs10filesystem16filesystem_errorE', 'size': 0}
|
||||
{'type': 'OBJECT', 'is_defined': True, 'name': '__ZTVNSt3__14__fs10filesystem16filesystem_errorE', 'size': 0}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__120__libcpp_atomic_waitEPVKvx'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__cxx_atomic_notify_allEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__cxx_atomic_notify_oneEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__123__libcpp_atomic_monitorEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__131__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__132__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__134__construct_barrier_algorithm_baseERl'}
|
||||
|
|
|
@ -2376,3 +2376,14 @@
|
|||
{'is_defined': True, 'name': '___dynamic_cast', 'type': 'I'}
|
||||
{'is_defined': False, 'name': '___gxx_personality_v0', 'type': 'U'}
|
||||
{'is_defined': True, 'name': '___gxx_personality_v0', 'type': 'I'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__220__libcpp_atomic_waitEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEEx'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__220__libcpp_atomic_waitEPVKvx'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__cxx_atomic_notify_allEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__cxx_atomic_notify_allEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__cxx_atomic_notify_oneEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__cxx_atomic_notify_oneEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__libcpp_atomic_monitorEPVKNS_17__cxx_atomic_implIxNS_22__cxx_atomic_base_implIxEEEE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__223__libcpp_atomic_monitorEPVKv'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__231__arrive_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseEh'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__232__destroy_barrier_algorithm_baseEPNS_24__barrier_algorithm_baseE'}
|
||||
{'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__234__construct_barrier_algorithm_baseERl'}
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// XFAIL: c++98, c++03
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <atomic>
|
||||
|
||||
#include <atomic>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <barrier>
|
||||
|
||||
#include <barrier>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <barrier>
|
||||
|
||||
#include <barrier>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <barrier>
|
||||
|
||||
#include <barrier>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <barrier>
|
||||
|
||||
#include <barrier>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <latch>
|
||||
|
||||
#include <latch>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <latch>
|
||||
|
||||
#include <latch>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <latch>
|
||||
|
||||
#include <latch>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <semaphore>
|
||||
|
||||
#include <semaphore>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <semaphore>
|
||||
|
||||
#include <semaphore>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <semaphore>
|
||||
|
||||
#include <semaphore>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <semaphore>
|
||||
|
||||
#include <semaphore>
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
|
||||
// This test requires the dylib support introduced in D68480
|
||||
// XFAIL: with_system_cxx_lib=macosx10.15
|
||||
// XFAIL: with_system_cxx_lib=macosx10.14
|
||||
// XFAIL: with_system_cxx_lib=macosx10.13
|
||||
// XFAIL: with_system_cxx_lib=macosx10.12
|
||||
// XFAIL: with_system_cxx_lib=macosx10.11
|
||||
// XFAIL: with_system_cxx_lib=macosx10.10
|
||||
// XFAIL: with_system_cxx_lib=macosx10.9
|
||||
|
||||
// <semaphore>
|
||||
|
||||
#include <semaphore>
|
||||
|
|
Loading…
Reference in New Issue