about summary refs log tree commit diff
path: root/pkgs/development/libraries/science
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-01-05 13:46:40 +0100
committerFrederik Rietdijk <freddyrietdijk@fridh.nl>2019-01-15 10:11:33 +0100
commit05ee1015bbbe38124444bf9de22523aaf2821998 (patch)
treec2270791e75440dbc14e7de2b1480a4122cc9c6f /pkgs/development/libraries/science
parentd6f401e132ebc9083c64dc2d7a7574344c49a9c9 (diff)
downloadnixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar.gz
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar.bz2
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar.lz
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar.xz
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.tar.zst
nixlib-05ee1015bbbe38124444bf9de22523aaf2821998.zip
openblas: fix cross-compilation
Diffstat (limited to 'pkgs/development/libraries/science')
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix29
1 files changed, 15 insertions, 14 deletions
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 120fa25090a4..e4c05896125e 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -3,6 +3,7 @@
 # pointer width, but some expect to use 32-bit integers always
 # (for compatibility with reference BLAS).
 , blas64 ? null
+, buildPackages
 }:
 
 with stdenv.lib;
@@ -16,7 +17,6 @@ let
       BINARY = "32";
       TARGET = "ARMV6";
       DYNAMIC_ARCH = "0";
-      CC = "gcc";
       USE_OPENMP = "1";
     };
 
@@ -24,7 +24,6 @@ let
       BINARY = "32";
       TARGET = "ARMV7";
       DYNAMIC_ARCH = "0";
-      CC = "gcc";
       USE_OPENMP = "1";
     };
 
@@ -32,7 +31,6 @@ let
       BINARY = "64";
       TARGET = "ARMV8";
       DYNAMIC_ARCH = "1";
-      CC = "gcc";
       USE_OPENMP = "1";
     };
 
@@ -40,7 +38,6 @@ let
       BINARY = "32";
       TARGET = "P2";
       DYNAMIC_ARCH = "1";
-      CC = "gcc";
       USE_OPENMP = "1";
     };
 
@@ -48,9 +45,6 @@ let
       BINARY = "64";
       TARGET = "ATHLON";
       DYNAMIC_ARCH = "1";
-      # Note that clang is available through the stdenv on OSX and
-      # thus is not an explicit dependency.
-      CC = "clang";
       USE_OPENMP = "0";
       MACOSX_DEPLOYMENT_TARGET = "10.7";
     };
@@ -59,7 +53,6 @@ let
       BINARY = "64";
       TARGET = "ATHLON";
       DYNAMIC_ARCH = "1";
-      CC = "gcc";
       USE_OPENMP = "1";
     };
   };
@@ -113,21 +106,29 @@ stdenv.mkDerivation rec {
     "relro" "bindnow"
   ];
 
-  nativeBuildInputs =
-    [gfortran perl which]
-    ++ optionals stdenv.isDarwin [coreutils];
+  nativeBuildInputs = [
+    perl
+    which
+    buildPackages.gfortran
+    buildPackages.stdenv.cc
+  ] ++ optionals stdenv.isDarwin [
+    coreutils
+  ];
 
   makeFlags =
     [
-      "FC=gfortran"
+      "FC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}gfortran"
+      "CC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}cc"
       ''PREFIX="''$(out)"''
       "NUM_THREADS=64"
       "INTERFACE64=${if blas64 then "1" else "0"}"
       "NO_STATIC=1"
-    ] ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
+    ]
+    ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
+    ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "NO_BINARY_MODE=1" "HOSTCC=cc" "CROSS=1" ]
     ++ mapAttrsToList (var: val: var + "=" + val) config;
 
-  doCheck = true;
+  doCheck = stdenv.hostPlatform != stdenv.buildPlatform;
   checkTarget = "tests";
 
   postInstall = ''