0005-libstdc-futex-time64.diff 821 B

123456789101112131415161718192021222324252627282930
  1. diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc
  2. index 698737d9b21..230d32574c6 100644
  3. --- a/libstdc++-v3/src/c++11/futex.cc
  4. +++ b/libstdc++-v3/src/c++11/futex.cc
  5. @@ -46,13 +46,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
  6. namespace
  7. {
  8. +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex
  9. + typedef struct
  10. + {
  11. + long tv_sec;
  12. + long tv_nsec;
  13. + } sys_timespec;
  14. +#else
  15. + typedef struct timespec sys_timespec;
  16. +#endif
  17. +
  18. // Return the relative duration from (now_s + now_ns) to (abs_s + abs_ns)
  19. // as a timespec.
  20. - struct timespec
  21. + sys_timespec
  22. relative_timespec(chrono::seconds abs_s, chrono::nanoseconds abs_ns,
  23. time_t now_s, long now_ns)
  24. {
  25. - struct timespec rt;
  26. + sys_timespec rt;
  27. // Did we already time out?
  28. if (now_s > abs_s.count())