musl-cross-make/patches/gcc-10.3.0/0005-libstdc-futex-time64.diff

31 lines
821 B
Diff

diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc
index 698737d9b21..230d32574c6 100644
--- a/libstdc++-v3/src/c++11/futex.cc
+++ b/libstdc++-v3/src/c++11/futex.cc
@@ -46,13 +46,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
namespace
{
+#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex
+ typedef struct
+ {
+ long tv_sec;
+ long tv_nsec;
+ } sys_timespec;
+#else
+ typedef struct timespec sys_timespec;
+#endif
+
// Return the relative duration from (now_s + now_ns) to (abs_s + abs_ns)
// as a timespec.
- struct timespec
+ sys_timespec
relative_timespec(chrono::seconds abs_s, chrono::nanoseconds abs_ns,
time_t now_s, long now_ns)
{
- struct timespec rt;
+ sys_timespec rt;
// Did we already time out?
if (now_s > abs_s.count())