summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorLucas Ransan <lucas@ransan.tk>2020-12-21 19:01:38 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2020-12-28 08:43:32 +0100
commit7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77 (patch)
treea722d314b9b0d2c242336b7393fea1d02f1ff107 /pkgs/tools
parent1c89832fd5cb1c3be4a5bb9b483e219b06db0f25 (diff)
downloadnixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar.gz
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar.bz2
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar.lz
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar.xz
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.tar.zst
nixpkgs-7fd60b3c97f043ab60b5c8a6dc3bc13efe427d77.zip
p7zip: fix build on gcc10
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix4
-rw-r--r--pkgs/tools/archivers/p7zip/gcc10.patch40
2 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index a155c1717eb..610e89c2fc3 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
   }
   ;
 
+  patches = [
+    ./gcc10.patch
+  ];
+
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
   postPatch = ''
     sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits
diff --git a/pkgs/tools/archivers/p7zip/gcc10.patch b/pkgs/tools/archivers/p7zip/gcc10.patch
new file mode 100644
index 00000000000..9361249af93
--- /dev/null
+++ b/pkgs/tools/archivers/p7zip/gcc10.patch
@@ -0,0 +1,40 @@
+From 1b7d2c73f01b2d2b6a3d2d16840e96e92afdcd61 Mon Sep 17 00:00:00 2001
+From: jinfeihan57 <jinfeihan57@gmail.com>
+Date: Tue, 9 Jun 2020 16:48:25 +0800
+Subject: [PATCH] gix gcc10 compiler error
+
+---
+ CPP/Windows/ErrorMsg.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
+index 99684ae..90a7e20 100644
+--- a/CPP/Windows/ErrorMsg.cpp
++++ b/CPP/Windows/ErrorMsg.cpp
+@@ -13,7 +13,7 @@ UString MyFormatMessage(DWORD errorCode)
+   const char * txt = 0;
+   AString msg;
+ 
+-  switch(errorCode) {
++  switch(HRESULT(errorCode)) {
+     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
+     case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
+     case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
+@@ -22,7 +22,7 @@ UString MyFormatMessage(DWORD errorCode)
+     case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
+     case E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
+     case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
+-    case ERROR_DIRECTORY          : txt = "Error Directory"; break ;
++    case ERROR_DIRECTORY       : txt = "Error Directory"; break ;
+     default:
+       txt = strerror(errorCode);
+   }
+@@ -43,7 +43,7 @@ bool MyFormatMessage(DWORD messageID, CSysString &message)
+   const char * txt = 0;
+   AString msg;
+ 
+-  switch(messageID) {
++  switch(HRESULT(messageID)) {
+     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
+     case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
+     case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;