mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
foundationdb5: build with gcc6
This commit is contained in:
parent
6a69a322b8
commit
a064678390
@ -1,4 +1,4 @@
|
||||
{ stdenv, stdenv49, gccStdenv, llvmPackages
|
||||
{ gcc6Stdenv, stdenv, gccStdenv, llvmPackages
|
||||
, lib, fetchurl, fetchpatch, fetchFromGitHub
|
||||
|
||||
, cmake, ninja, which, findutils, m4, gawk
|
||||
@ -37,6 +37,7 @@ in with builtins; {
|
||||
patches = [
|
||||
./patches/ldflags-5.1.patch
|
||||
./patches/fix-scm-version.patch
|
||||
./patches/gcc-fixes.patch
|
||||
python3-six-patch
|
||||
python3-print-patch
|
||||
];
|
||||
@ -50,6 +51,7 @@ in with builtins; {
|
||||
patches = [
|
||||
./patches/ldflags-5.2.patch
|
||||
./patches/fix-scm-version.patch
|
||||
./patches/gcc-fixes.patch
|
||||
python3-six-patch
|
||||
python3-print-patch
|
||||
];
|
||||
|
117
pkgs/servers/foundationdb/patches/gcc-fixes.patch
Normal file
117
pkgs/servers/foundationdb/patches/gcc-fixes.patch
Normal file
@ -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; }
|
@ -1,7 +1,7 @@
|
||||
# This builder is for FoundationDB's original, somewhat strange visual studio +
|
||||
# make build system. In FoundationDB 6.1 and later, there's a new CMake system
|
||||
# (which will eventually become the default version.)
|
||||
{ stdenv49, lib, fetchurl, fetchFromGitHub
|
||||
{ gcc6Stdenv, lib, fetchurl, fetchFromGitHub
|
||||
|
||||
, which, findutils, m4, gawk
|
||||
, python, openjdk, mono, libressl
|
||||
@ -12,7 +12,7 @@ let
|
||||
# hysterical raisins dictate a version of boost this old. however,
|
||||
# we luckily do not need to build anything, we just need the header
|
||||
# files.
|
||||
boost152 = stdenv49.mkDerivation {
|
||||
boost152 = gcc6Stdenv.mkDerivation {
|
||||
name = "boost-headers-1.52.0";
|
||||
|
||||
src = fetchurl {
|
||||
@ -33,10 +33,6 @@ let
|
||||
# the revision can be inferred from the fdb tagging policy
|
||||
, rev ? "refs/tags/${version}"
|
||||
|
||||
# in theory newer versions of fdb support newer compilers, but they
|
||||
# don't :( maybe one day
|
||||
, stdenv ? stdenv49
|
||||
|
||||
# in theory newer versions of fdb support newer boost versions, but they
|
||||
# don't :( maybe one day
|
||||
, boost ? boost152
|
||||
@ -45,7 +41,7 @@ let
|
||||
, officialRelease ? true
|
||||
|
||||
, patches ? []
|
||||
}: stdenv.mkDerivation {
|
||||
}: gcc6Stdenv.mkDerivation {
|
||||
pname = "foundationdb";
|
||||
inherit version;
|
||||
|
||||
@ -143,7 +139,7 @@ let
|
||||
|
||||
outputs = [ "out" "lib" "dev" "pythonsrc" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with gcc6Stdenv.lib; {
|
||||
description = "Open source, distributed, transactional key-value store";
|
||||
homepage = https://www.foundationdb.org;
|
||||
license = licenses.asl20;
|
||||
|
@ -3432,9 +3432,7 @@ in
|
||||
|
||||
fusuma = callPackage ../tools/inputmethods/fusuma {};
|
||||
|
||||
fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb {
|
||||
stdenv49 = gcc49Stdenv;
|
||||
});
|
||||
fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb { });
|
||||
|
||||
inherit (fdbPackages)
|
||||
foundationdb51
|
||||
@ -7943,7 +7941,6 @@ in
|
||||
extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc;
|
||||
};
|
||||
|
||||
gcc49Stdenv = overrideCC gccStdenv buildPackages.gcc49;
|
||||
gcc6Stdenv = overrideCC gccStdenv buildPackages.gcc6;
|
||||
gcc7Stdenv = overrideCC gccStdenv buildPackages.gcc7;
|
||||
gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8;
|
||||
|
Loading…
Reference in New Issue
Block a user