summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/archivers/unzip/cross-cc.patch12
-rw-r--r--pkgs/tools/archivers/unzip/default.nix12
2 files changed, 20 insertions, 4 deletions
diff --git a/pkgs/tools/archivers/unzip/cross-cc.patch b/pkgs/tools/archivers/unzip/cross-cc.patch
new file mode 100644
index 000000000000..3d38ffdef6e3
--- /dev/null
+++ b/pkgs/tools/archivers/unzip/cross-cc.patch
@@ -0,0 +1,12 @@
+--- a/unix/Makefile
++++ b/unix/Makefile
+@@ -42,9 +42,7 @@
+ # such as -DDOSWILD).
+ 
+ # UnZip flags
+-CC = cc#	try using "gcc" target rather than changing this (CC and LD
+ LD = $(CC)#	must match, else "unresolved symbol:  ___main" is possible)
+-AS = as
+ LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
+ AF = $(LOC)
+ CFLAGS = -O
diff --git a/pkgs/tools/archivers/unzip/default.nix b/pkgs/tools/archivers/unzip/default.nix
index b9fa760c019b..ad484b3d4d97 100644
--- a/pkgs/tools/archivers/unzip/default.nix
+++ b/pkgs/tools/archivers/unzip/default.nix
@@ -1,5 +1,8 @@
-{ stdenv, fetchurl, bzip2
-, enableNLS ? false, libnatspec }:
+{ stdenv, fetchurl
+, bzip2
+, enableNLS ? false, libnatspec
+, buildPlatform, hostPlatform
+}:
 
 stdenv.mkDerivation {
   name = "unzip-6.0";
@@ -25,14 +28,15 @@ stdenv.mkDerivation {
       url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-arch/unzip/files/unzip-6.0-natspec.patch?revision=1.1";
       name = "unzip-6.0-natspec.patch";
       sha256 = "67ab260ae6adf8e7c5eda2d1d7846929b43562943ec4aff629bd7018954058b1";
-    });
+    })
+    ++ stdenv.lib.optional (hostPlatform != buildPlatform) ./cross-cc.patch;
 
   nativeBuildInputs = [ bzip2 ];
   buildInputs = [ bzip2 ] ++ stdenv.lib.optional enableNLS libnatspec;
 
   makefile = "unix/Makefile";
 
-  NIX_LDFLAGS = [ "-lbz2" ] ++ stdenv.lib.optional enableNLS "-lnatspec";
+  ${"NIX_${stdenv.cc.infixSalt_}LDFLAGS"} = [ "-lbz2" ] ++ stdenv.lib.optional enableNLS "-lnatspec";
 
   buildFlags = "generic D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2";