diff --git a/pkgs/development/compilers/llvm/5/fix-gcc9.patch b/pkgs/development/compilers/llvm/5/fix-gcc9.patch new file mode 100644 index 00000000000..eaf71f1468d --- /dev/null +++ b/pkgs/development/compilers/llvm/5/fix-gcc9.patch @@ -0,0 +1,33 @@ +diff --git a/lib/Target/Mips/MipsFastISel.cpp b/lib/Target/Mips/MipsFastISel.cpp +index f79cb0e6..c6279046 100644 +--- a/lib/Target/Mips/MipsFastISel.cpp ++++ b/lib/Target/Mips/MipsFastISel.cpp +@@ -70,6 +70,7 @@ + #include + #include + #include ++#include + + #define DEBUG_TYPE "mips-fastisel" + +@@ -1309,13 +1310,13 @@ bool MipsFastISel::fastLowerArguments() { + return false; + } + +- const ArrayRef GPR32ArgRegs = {Mips::A0, Mips::A1, Mips::A2, +- Mips::A3}; +- const ArrayRef FGR32ArgRegs = {Mips::F12, Mips::F14}; +- const ArrayRef AFGR64ArgRegs = {Mips::D6, Mips::D7}; +- ArrayRef::iterator NextGPR32 = GPR32ArgRegs.begin(); +- ArrayRef::iterator NextFGR32 = FGR32ArgRegs.begin(); +- ArrayRef::iterator NextAFGR64 = AFGR64ArgRegs.begin(); ++ std::array GPR32ArgRegs = {{Mips::A0, Mips::A1, Mips::A2, ++ Mips::A3}}; ++ std::array FGR32ArgRegs = {{Mips::F12, Mips::F14}}; ++ std::array AFGR64ArgRegs = {{Mips::D6, Mips::D7}}; ++ auto NextGPR32 = GPR32ArgRegs.begin(); ++ auto NextFGR32 = FGR32ArgRegs.begin(); ++ auto NextAFGR64 = AFGR64ArgRegs.begin(); + + struct AllocatedReg { + const TargetRegisterClass *RC; diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix index 2fe7df7695b..a99b3fa96ae 100644 --- a/pkgs/development/compilers/llvm/5/llvm.nix +++ b/pkgs/development/compilers/llvm/5/llvm.nix @@ -49,6 +49,13 @@ stdenv.mkDerivation ({ name = "llvm-gcc8-type-mismatch.patch"; sha256 = "0ga2123aclq3x9w72d0rm0az12m8c1i4r1106vh701hf4cghgbch"; }) + ./fix-gcc9.patch + #(fetchpatch { + # name = "llvm-fix-gcc9.patch"; + # url = "https://reviews.llvm.org/file/data/zs3ck5ryvc5n672fd2kw/PHID-FILE-byoqefzwmkd7qnlip4v2/file"; + # sha256 = "0injj1hqgrbcbihhwp2nbal88jfykad30r54f2cdcx7gws2fcy8i"; + # stripLen = 1; + #}) ]; postPatch = stdenv.lib.optionalString stdenv.isDarwin '' substituteInPlace cmake/modules/AddLLVM.cmake \