diff options
Diffstat (limited to 'pkgs/servers/foundationdb/patches/gcc-fixes.patch')
-rw-r--r-- | pkgs/servers/foundationdb/patches/gcc-fixes.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/pkgs/servers/foundationdb/patches/gcc-fixes.patch b/pkgs/servers/foundationdb/patches/gcc-fixes.patch new file mode 100644 index 00000000000..295e405b9fc --- /dev/null +++ b/pkgs/servers/foundationdb/patches/gcc-fixes.patch @@ -0,0 +1,117 @@ +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; } |