nixpkgs/pkgs/servers/foundationdb/patches/gcc-fixes.patch
2020-01-28 20:11:02 +01:00

118 lines
3.2 KiB
Diff

diff --git a/fdbrpc/ContinuousSample.h b/fdbrpc/ContinuousSample.h
index 54ff1b1..577c228 100644
--- a/fdbrpc/ContinuousSample.h
+++ b/fdbrpc/ContinuousSample.h
@@ -26,6 +26,7 @@
#include "flow/IRandom.h"
#include <vector>
#include <algorithm>
+#include <cmath>
template <class T>
class ContinuousSample {
diff --git a/fdbrpc/Smoother.h b/fdbrpc/Smoother.h
index 3ed8e6e..fb46947 100644
--- a/fdbrpc/Smoother.h
+++ b/fdbrpc/Smoother.h
@@ -23,6 +23,7 @@
#pragma once
#include "flow/flow.h"
+#include <cmath>
struct Smoother {
// Times (t) are expected to be nondecreasing
@@ -90,4 +91,4 @@ struct TimerSmoother {
double time, total, estimate;
};
-#endif
\ No newline at end of file
+#endif
diff --git a/fdbrpc/libcoroutine/Coro.c b/fdbrpc/libcoroutine/Coro.c
index cbfdc8f..9993cee 100644
--- a/fdbrpc/libcoroutine/Coro.c
+++ b/fdbrpc/libcoroutine/Coro.c
@@ -66,6 +66,8 @@ VALGRIND_STACK_DEREGISTER((coro)->valgrindStackId)
#define STACK_DEREGISTER(coro)
#endif
+#pragma GCC diagnostic ignored "-Wreturn-local-addr"
+
// Define outside
extern intptr_t g_stackYieldLimit;
diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp
index 819c513..acfbfe7 100644
--- a/fdbserver/Knobs.cpp
+++ b/fdbserver/Knobs.cpp
@@ -20,6 +20,7 @@
#include "Knobs.h"
#include "fdbrpc/Locality.h"
+#include <cmath>
ServerKnobs const* SERVER_KNOBS = new ServerKnobs();
diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp
index b485a84..82541d4 100644
--- a/flow/Knobs.cpp
+++ b/flow/Knobs.cpp
@@ -20,6 +20,7 @@
#include "Knobs.h"
#include "flow/flow.h"
+#include <cmath>
FlowKnobs const* FLOW_KNOBS = new FlowKnobs();
diff --git a/flow/Platform.cpp b/flow/Platform.cpp
index 69dac88..69b86d4 100644
--- a/flow/Platform.cpp
+++ b/flow/Platform.cpp
@@ -623,7 +623,7 @@ void getDiskStatistics(std::string const& directory, uint64_t& currentIOs, uint6
unsigned int minorId;
disk_stream >> majorId;
disk_stream >> minorId;
- if(majorId == (unsigned int) major(buf.st_dev) && minorId == (unsigned int) minor(buf.st_dev)) {
+ if(majorId == (unsigned int) gnu_dev_major(buf.st_dev) && minorId == (unsigned int) gnu_dev_minor(buf.st_dev)) {
std::string ignore;
uint64_t rd_ios; /* # of reads completed */
// This is the total number of reads completed successfully.
diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h
index 5421b83..711a960 100755
--- a/flow/TDMetric.actor.h
+++ b/flow/TDMetric.actor.h
@@ -36,6 +36,7 @@
#include "CompressedInt.h"
#include <algorithm>
#include <functional>
+#include <cmath>
struct MetricNameRef {
MetricNameRef() {}
diff --git a/flow/flow.h b/flow/flow.h
index 0c220af..f685fbc 100644
--- a/flow/flow.h
+++ b/flow/flow.h
@@ -248,19 +248,6 @@ public:
}
}
- bool operator == (ErrorOr const& o) const {
- return error == o.error && (!present() || get() == o.get());
- }
- bool operator != (ErrorOr const& o) const {
- return !(*this == o);
- }
-
- bool operator < (ErrorOr const& o) const {
- if (error != o.error) return error < o.error;
- if (!present()) return false;
- return get() < o.get();
- }
-
bool isError() const { return error.code() != invalid_error_code; }
bool isError(int code) const { return error.code() == code; }
Error getError() const { ASSERT(isError()); return error; }