llvm-project/libcxx/include
Zbigniew Sarbinowski cb2d2ae56a [SystemZ][ZOS] Provide CLOCK_MONOTONIC alternative
We need CLOCK_MONOTONIC equivalent implementation for z/OS within libc++. The default implementation is asserting.

On z/OS the lack of  'clock_gettime()' and 'time_point()' force us to look for alternatives.
The current proposal is to use `gettimeofday()` for CLOCK_MONOTONIC  which is also used in CLOCK_REALTIME.  This will allow us to skip the assertion with compromised CLOCK_MONOTONIC implementation which will not guarantee to never go back in time because it will use `gettimeofday()` but only when it's set.

Is this a good compromise for platforms which does not support monotonic clock?
Hopefully this will spark the discussion and agreement how to proceed in this situation.

Reviewed By: #libc, ldionne, hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D93542
2021-02-12 18:39:48 +00:00
..
__memory [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
__support [SystemZ][ZOS] Provide CLOCK_MONOTONIC alternative 2021-02-12 18:39:48 +00:00
experimental [libc++] Update and normalize the "all the headers" tests. 2020-12-03 15:01:38 -05:00
ext [libc++] Remove workarounds for missing rvalue references 2020-08-12 12:02:28 -04:00
CMakeLists.txt [SystemZ][ZOS] Provide CLOCK_MONOTONIC alternative 2021-02-12 18:39:48 +00:00
__availability [libc++] Make feature-test macros consistent with availability macros 2021-02-04 11:40:22 -05:00
__bit_reference [libc++] Introduce __bits 2021-01-22 21:20:23 +01:00
__bits [libc++] Introduce __bits 2021-01-22 21:20:23 +01:00
__bsd_locale_defaults.h
__bsd_locale_fallbacks.h
__config [libc++][format] Add basic_format_parse_context. 2021-02-11 17:57:54 +01:00
__config_site.in [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
__debug [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__errc
__functional_03 [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__functional_base [libc++] [LWG2993] reference_wrapper<T> conversion from U&& 2021-02-09 15:50:25 -05:00
__functional_base_03 [libc++] ADL-proof <functional> by adding _VSTD:: qualification on calls. 2020-12-14 12:08:34 -05:00
__hash_table [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
__libcpp_version [libcxx] Update include/__libcpp_version to match include/__config 2021-01-27 15:16:55 +00:00
__locale [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
__mutex_base [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__node_handle
__nullptr
__split_buffer [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
__sso_allocator [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
__std_stream
__string [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
__threading_support [libc++] Fix copy-paste mistake in __threading_support 2021-02-10 11:00:32 -05:00
__tree [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__tuple Refactor default constructor SFINAE in pair and tuple. 2019-09-30 20:55:30 +00:00
__undef_macros
algorithm [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
any [libc++] Rework the whole availability markup implementation 2020-11-05 12:28:52 -05:00
array [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
atomic [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
barrier [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
bit [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
bitset [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
cassert
ccomplex
cctype
cerrno
cfenv
cfloat
charconv [libc++] Include C++ headers, not C headers, in <charconv>. 2020-12-10 22:03:12 -05:00
chrono [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
cinttypes
ciso646
climits
clocale
cmath [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
codecvt [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname. 2020-12-02 09:01:58 +01:00
compare [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
complex [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
complex.h
concepts [libcxx] adds concepts `std::invocable` and `std::regular_invocable` 2021-02-10 19:35:53 +00:00
condition_variable
csetjmp
csignal
cstdarg
cstdbool
cstddef Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
cstdint
cstdio Reland: Don't expose unavailable cstdio functions. 2020-04-16 12:51:08 -07:00
cstdlib Fix _LIBCPP_HAS_ definitions for Android. 2019-11-18 12:19:58 -08:00
cstring
ctgmath
ctime [libc++] Avoid including <sys/cdefs.h> on non-Apple platforms in <ctime> 2020-09-02 18:11:26 -04:00
ctype.h
cwchar
cwctype
deque [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
errno.h
exception [libc++] Split allocator_traits and pointer_traits out of <memory> 2020-12-14 16:13:57 -05:00
execution [pstl][libc++] Provide uglified header names for interface headers 2019-08-06 21:11:24 +00:00
fenv.h
filesystem [libc++] Remove the ability to use braced-init for filesystem paths 2021-02-04 11:49:00 -05:00
float.h
format [libc++][format] Enable format_error on older compilers. 2021-02-11 19:11:20 +01:00
forward_list [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
fstream [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
functional [libc++] [LWG2993] reference_wrapper<T> conversion from U&& 2021-02-09 15:50:25 -05:00
future [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
initializer_list [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
iomanip [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
ios [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iosfwd Add new 'preferred_name' attribute. 2020-12-09 12:22:35 -08:00
iostream
istream [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iterator [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
latch [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
limits [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
limits.h
list [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
locale [libcxx] Check return value for asprintf() 2021-01-21 19:43:11 -05:00
locale.h [libc++] Move the #error message for no localization to <locale.h> 2020-10-28 09:49:37 -04:00
map Fixes complexity of map insert_or_assign with a hint. 2020-09-19 16:28:55 +02:00
math.h [libc++] Use builtins in more math.h functions. 2021-02-10 15:17:42 -05:00
memory [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
module.modulemap [libc++] Implement format_error. 2021-01-28 18:02:53 +01:00
mutex [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
new [libc++] Use c++20 instead of c++2a consistently. 2021-01-07 13:11:33 +01:00
numbers [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
numeric [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
optional [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
ostream [libc++] Drop old workaround for iostreams instantiations missing from the dylib 2020-10-22 14:51:25 -04:00
queue [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
random [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
ratio
regex [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
scoped_allocator
semaphore [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
set [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
setjmp.h
shared_mutex [libc++] Rework the whole availability markup implementation 2020-11-05 12:28:52 -05:00
span [libc++] Consistently unparenthesize `numeric_limits<T>::max`. NFCI. 2020-11-27 17:27:36 -05:00
sstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
stack [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
stdbool.h
stddef.h Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
stdexcept [libc++] NFC: Simplify incude of <cstdlib> 2020-11-11 17:04:32 -05:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdio.h
stdlib.h Reland [libc++] Move abs and div into stdlib.h to fix header cycle. 2020-05-08 21:52:27 +02:00
streambuf [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
string [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
string.h
string_view [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
strstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
system_error [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
tgmath.h
thread [libc++] ADL-proof <thread>, and eliminate `using namespace chrono`. 2020-12-01 22:13:39 -05:00
tuple Add constexpr to pair 2020-09-02 21:21:24 +02:00
type_traits [libc++] Support immovable return types in std::function. 2021-01-25 19:34:41 -05:00
typeindex
typeinfo [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
unordered_map [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
unordered_set [libc++] Implement P0919R3: heterogenous lookup for unordered containers 2020-11-11 17:44:42 -05:00
utility [libc++] Add std::hash<char8_t> specialization if char8_t is enabled 2020-12-08 13:46:18 -05:00
valarray [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
variant libcxx: Try to fix build after D92044 2021-01-25 15:10:41 -05:00
vector [libc++] ADL-proof by adding _VSTD:: qualifications to memmove etc. 2020-12-10 22:03:12 -05:00
version [libc++] Make feature-test macros consistent with availability macros 2021-02-04 11:40:22 -05:00
wchar.h [libc++] Add missing <stddef.h> include to <wchar.h> 2020-06-25 19:27:32 -04:00
wctype.h [libc++] Only include_next <wctype.h> if it exists 2020-11-17 13:14:36 -05:00