hhvm: fix build
Upstream re2 commit:b94b7cd42e
Upstream bytecode.h commit:f8a75ca667
This commit is contained in:
parent
46e41da543
commit
d9a0c68775
@ -26,6 +26,10 @@ stdenv.mkDerivation rec {
|
|||||||
gmp libyaml libedit libvpx imagemagick fribidi gperf
|
gmp libyaml libedit libvpx imagemagick fribidi gperf
|
||||||
];
|
];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./flexible-array-members-gcc6.patch
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = false; # occasional build problems;
|
enableParallelBuilding = false; # occasional build problems;
|
||||||
dontUseCmakeBuildDir = true;
|
dontUseCmakeBuildDir = true;
|
||||||
NIX_LDFLAGS = "-lpam -L${pam}/lib";
|
NIX_LDFLAGS = "-lpam -L${pam}/lib";
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
diff --git a/hphp/runtime/vm/bytecode.h b/hphp/runtime/vm/bytecode.h
|
||||||
|
index ddc7b69..edf807c 100644
|
||||||
|
--- a/hphp/runtime/vm/bytecode.h
|
||||||
|
+++ b/hphp/runtime/vm/bytecode.h
|
||||||
|
@@ -124,7 +124,7 @@ private:
|
||||||
|
static void* allocMem(unsigned nargs);
|
||||||
|
|
||||||
|
private:
|
||||||
|
- TypedValue m_extraArgs[];
|
||||||
|
+ TypedValue m_extraArgs[0];
|
||||||
|
TYPE_SCAN_FLEXIBLE_ARRAY_FIELD(m_extraArgs);
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/third-party/re2/src/re2/dfa.cc b/third-party/re2/src/re2/dfa.cc
|
||||||
|
index 483f678..3aa3610 100644
|
||||||
|
--- a/third-party/re2/src/re2/dfa.cc
|
||||||
|
+++ b/third-party/re2/src/re2/dfa.cc
|
||||||
|
@@ -101,8 +101,13 @@ class DFA {
|
||||||
|
uint flag_; // Empty string bitfield flags in effect on the way
|
||||||
|
// into this state, along with kFlagMatch if this
|
||||||
|
// is a matching state.
|
||||||
|
- std::atomic<State*> next_[]; // Outgoing arrows from State,
|
||||||
|
- // one per input byte class
|
||||||
|
+// Work around the bug affecting flexible array members in GCC 6.1 and 6.2.
|
||||||
|
+// (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70932)
|
||||||
|
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 6 && __GNUC_MINOR__ >= 1
|
||||||
|
+ std::atomic<State*> next_[0]; // Outgoing arrows from State, one per input byte class
|
||||||
|
+#else
|
||||||
|
+ std::atomic<State*> next_[]; // Outgoing arrows from State, one per input byte class
|
||||||
|
+#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
Loading…
x
Reference in New Issue
Block a user