Several small compilation fixes for new versions of gcc
There are several missing includes for cmath in the code, I added those. Next, Coro returns a reference to a stack variable and this causes a warning. As this is probably ok for Coro, I disabled the warning in that file for GCC. I want to have this warning in the build system as it is generally a very useful warning to have. Another change is that major and minor are deprecated for a while now. I replaced those with gnu_dev_major and gnu_dev_minor. ErrorOr currently implements operators ==, !=, and <. These do not compile because Error does not implement ==. This compiles on older versions of gcc and clang because ErrorOr<T>::operator== is not used anywhere. It is still wrong though and newer gcc versions complain. I simply removed these methods. The most interesting fix is that TraceEvent::~TraceEvent is currently throwing exceptions. This is illegal behavior in C++11 and a idea in older versions of C++. For now I simply removed the throw, but this might need some more thought.
This commit is contained in:
parent
4901e37b8f
commit
dbe9baff1f
|
@ -26,6 +26,7 @@
|
|||
#include "flow/IRandom.h"
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
|
||||
template <class T>
|
||||
class ContinuousSample {
|
||||
|
|
|
@ -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
|
||||
#endif
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "fdbserver/Knobs.h"
|
||||
#include "fdbrpc/Locality.h"
|
||||
#include <cmath>
|
||||
|
||||
ServerKnobs const* SERVER_KNOBS = new ServerKnobs();
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "flow/Knobs.h"
|
||||
#include "flow/flow.h"
|
||||
#include <cmath>
|
||||
|
||||
FlowKnobs const* FLOW_KNOBS = new FlowKnobs();
|
||||
|
||||
|
|
|
@ -643,7 +643,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.
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "flow/CompressedInt.h"
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <cmath>
|
||||
#include "flow/actorcompiler.h" // This must be the last #include.
|
||||
|
||||
struct MetricNameRef {
|
||||
|
|
13
flow/flow.h
13
flow/flow.h
|
@ -254,19 +254,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; }
|
||||
|
|
Loading…
Reference in New Issue