summaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-bug1686713
diff options
context:
space:
mode:
Diffstat (limited to 'www/firefox/files/patch-bug1686713')
-rw-r--r--www/firefox/files/patch-bug168671376
1 files changed, 76 insertions, 0 deletions
diff --git a/www/firefox/files/patch-bug1686713 b/www/firefox/files/patch-bug1686713
new file mode 100644
index 000000000000..f4e1eb4c0a98
--- /dev/null
+++ b/www/firefox/files/patch-bug1686713
@@ -0,0 +1,76 @@
+commit 89e72841a8f5
+Author: Greg V <greg@unrelenting.technology>
+Date: Thu Jan 14 22:16:53 2021 +0000
+
+ Bug 1686713 - Fix mozglue/misc/Uptime build on *BSD
+---
+ mozglue/misc/Uptime.cpp | 28 +++++++++++++++++-----------
+ 1 file changed, 17 insertions(+), 11 deletions(-)
+
+diff --git mozglue/misc/Uptime.cpp mozglue/misc/Uptime.cpp
+index bded4017ec13..0e953101994d 100644
+--- mozglue/misc/Uptime.cpp
++++ mozglue/misc/Uptime.cpp
+@@ -43,9 +43,7 @@ Maybe<uint64_t> NowIncludingSuspendMs() {
+ return Some(clock_gettime_nsec_np(CLOCK_MONOTONIC_RAW) / kNSperMS);
+ }
+
+-#endif // macOS
+-
+-#if defined(XP_WIN)
++#elif defined(XP_WIN)
+
+ // Number of hundreds of nanoseconds in a millisecond
+ static constexpr uint64_t kHNSperMS = 10000;
+@@ -77,11 +75,23 @@ Maybe<uint64_t> NowIncludingSuspendMs() {
+ pQueryInterruptTime(&interrupt_time);
+ return Some(interrupt_time / kHNSperMS);
+ }
+-#endif // XP_WIN
+
+-#if defined(XP_LINUX) // including Android
++#else
++
+ # include <time.h>
+
++# ifdef CLOCK_UPTIME // FreeBSD, OpenBSD
++# define CLOCK_EXCLUDING_SUSPEND CLOCK_UPTIME
++# else
++# define CLOCK_EXCLUDING_SUSPEND CLOCK_MONOTONIC
++# endif
++
++# ifdef CLOCK_BOOTTIME // Linux (including Android), OpenBSD (== MONOTONIC)
++# define CLOCK_INCLUDING_SUSPEND CLOCK_BOOTTIME
++# else
++# define CLOCK_INCLUDING_SUSPEND CLOCK_MONOTONIC
++# endif
++
+ // Number of nanoseconds in a millisecond.
+ static constexpr uint64_t kNSperMS = 1000000;
+
+@@ -92,23 +102,19 @@ uint64_t TimespecToMilliseconds(struct timespec aTs) {
+ Maybe<uint64_t> NowExcludingSuspendMs() {
+ struct timespec ts = {0};
+
+- if (clock_gettime(CLOCK_MONOTONIC, &ts)) {
++ if (clock_gettime(CLOCK_EXCLUDING_SUSPEND, &ts)) {
+ return Nothing();
+ }
+ return Some(TimespecToMilliseconds(ts));
+ }
+
+ Maybe<uint64_t> NowIncludingSuspendMs() {
+-# ifndef CLOCK_BOOTTIME
+- return Nothing();
+-# else
+ struct timespec ts = {0};
+
+- if (clock_gettime(CLOCK_BOOTTIME, &ts)) {
++ if (clock_gettime(CLOCK_INCLUDING_SUSPEND, &ts)) {
+ return Nothing();
+ }
+ return Some(TimespecToMilliseconds(ts));
+-# endif
+ }
+
+ #endif // XP_LINUX