summary refs log tree commit diff
path: root/pkgs/development/libraries/fftw
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2020-02-11 11:53:54 +0100
committerNiklas Hambüchen <mail@nh2.me>2020-02-11 13:37:39 +0100
commita72367ae315765a89c9667948b6961e0d80dfd31 (patch)
tree7f9506eff514a1f244b5dfd10b1750d631b5dd72 /pkgs/development/libraries/fftw
parent19ff097181fdaf4a84c2087f1bc59fa6b0304b6b (diff)
downloadnixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar.gz
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar.bz2
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar.lz
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar.xz
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.tar.zst
nixpkgs-a72367ae315765a89c9667948b6961e0d80dfd31.zip
fftw: Re-enable OpenMP with non-GCC and musl.
Clang now supports OpenMP, and musl has no problem with it either.

Related to #7023 and #34645.

See also #79818.
Diffstat (limited to 'pkgs/development/libraries/fftw')
-rw-r--r--pkgs/development/libraries/fftw/default.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index c9577436c30..fcbcde74538 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -1,7 +1,8 @@
-{ fetchurl, stdenv, lib, precision ? "double", perl }:
+{ fetchurl, stdenv, lib, llvmPackages ? null, precision ? "double", perl }:
 
 with lib;
 
+assert stdenv.cc.isClang -> llvmPackages != null;
 assert elem precision [ "single" "double" "long-double" "quad-precision" ];
 
 let
@@ -24,6 +25,11 @@ stdenv.mkDerivation {
     ++ optional withDoc "info"; # it's dev-doc only
   outputBin = "dev"; # fftw-wisdom
 
+  buildInputs = lib.optionals stdenv.cc.isClang [
+    # TODO: This may mismatch the LLVM version sin the stdenv, see #79818.
+    llvmPackages.openmp
+  ];
+
   configureFlags =
     [ "--enable-shared"
       "--enable-threads"
@@ -32,7 +38,7 @@ stdenv.mkDerivation {
     # all x86_64 have sse2
     # however, not all float sizes fit
     ++ optional (stdenv.isx86_64 && (precision == "single" || precision == "double") )  "--enable-sse2"
-    ++ optional (stdenv.cc.isGNU && !stdenv.hostPlatform.isMusl) "--enable-openmp"
+    ++ [ "--enable-openmp" ]
     # doc generation causes Fortran wrapper generation which hard-codes gcc
     ++ optional (!withDoc) "--disable-doc";