about summary refs log tree commit diff
path: root/nixpkgs
diff options
context:
space:
mode:
authorvolth <volth@volth.com>2019-05-05 23:40:20 +0000
committerAlyssa Ross <hi@alyssa.is>2020-11-27 13:28:18 +0000
commit56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600 (patch)
tree8cdbfcec6eee3e6c28d990a1071241c25e126e26 /nixpkgs
parent84875aacac4550333888ac4a5624c08157c3a673 (diff)
downloadnixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.gz
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.bz2
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.lz
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.xz
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.tar.zst
nixlib-56a4b2b477a63be9bb1fd016dc9ccfc2bbebf600.zip
platform.gcc.arch: support for AMD CPUs
(cherry picked from commit 463db72e631e0bd4a835796324eb1981071c6ee4)
Diffstat (limited to 'nixpkgs')
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/default.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/j/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/dlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/givaro/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/linbox/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/dlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix4
11 files changed, 62 insertions, 18 deletions
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
index 6ee287e287bc..3a770cf98e6d 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
@@ -64,18 +64,24 @@ let
   # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
   isGccArchSupported = arch:
     if isGNU then
-      { skylake        = versionAtLeast ccVersion "6.0";
+      { # Intel
+        skylake        = versionAtLeast ccVersion "6.0";
         skylake-avx512 = versionAtLeast ccVersion "6.0";
         cannonlake     = versionAtLeast ccVersion "8.0";
         icelake-client = versionAtLeast ccVersion "8.0";
         icelake-server = versionAtLeast ccVersion "8.0";
         knm            = versionAtLeast ccVersion "8.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "6.0";
       }.${arch} or true
     else if isClang then
-      { cannonlake     = versionAtLeast ccVersion "5.0";
+      { # Intel
+        cannonlake     = versionAtLeast ccVersion "5.0";
         icelake-client = versionAtLeast ccVersion "7.0";
         icelake-server = versionAtLeast ccVersion "7.0";
         knm            = versionAtLeast ccVersion "7.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "4.0";
       }.${arch} or true
     else
       false;
diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix
index 8e6b434281eb..6df0d64bbeb3 100644
--- a/nixpkgs/pkgs/development/interpreters/j/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/j/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, readline, libedit, bc
-, avxSupport ? false
+, avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
 }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/development/libraries/dlib/default.nix b/nixpkgs/pkgs/development/libraries/dlib/default.nix
index a7d68d62f2ae..359e8a15f020 100644
--- a/nixpkgs/pkgs/development/libraries/dlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dlib/default.nix
@@ -2,7 +2,7 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
-, avxSupport ? true
+, avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
 , cudaSupport ? true
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     rm -rf dlib/external
   '';
 
-  cmakeFlags = [ 
+  cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
index bc84039a9aa2..226d9c5e7445 100644
--- a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -35,13 +35,22 @@ stdenv.mkDerivation rec {
     # disable SIMD instructions (which are enabled *when available* by default)
     # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
     default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
+    # Intel
     westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
     sandybridge    = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
     ivybridge      = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                                                                       "--disable-fma4" ];
-    broadwell      = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake        = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                                                                       "--disable-fma4" ];
+    haswell        = [                                                                                                                                                                                       "--disable-fma4" ];
+    broadwell      = [                                                                                                                                                                                       "--disable-fma4" ];
+    skylake        = [                                                                                                                                                                                       "--disable-fma4" ];
+    skylake-avx512 = [                                                                                                                                                                                       "--disable-fma4" ];
+    # AMD
+    btver1         = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
+    btver2         = [                                                                                        "--disable-avx2"                                                               "--disable-fma" "--disable-fma4" ];
+    bdver1         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
+    bdver2         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
+    bdver3         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
+    bdver4         = [                                                                                                                                                                                                        ];
+    znver1         = [                                                                                                                                                                                       "--disable-fma4" ];
   }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/givaro/default.nix b/nixpkgs/pkgs/development/libraries/givaro/default.nix
index fdaf518c6114..b88d63c3d7e4 100644
--- a/nixpkgs/pkgs/development/libraries/givaro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/givaro/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optionals stdenv.isx86_64 {
     # disable SIMD instructions (which are enabled *when available* by default)
     default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    # Intel
     westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
     sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
     ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
@@ -27,6 +28,14 @@ stdenv.mkDerivation rec {
     broadwell      = [                                                                                                                         "--disable-fma4" ];
     skylake        = [                                                                                                                         "--disable-fma4" ];
     skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
+    # AMD
+    btver1         = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    btver2         = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    bdver1         = [                                                                                        "--disable-avx2"                                  ];
+    bdver2         = [                                                                                        "--disable-avx2"                                  ];
+    bdver3         = [                                                                                        "--disable-avx2"                                  ];
+    bdver4         = [                                                                                                                                          ];
+    znver1         = [                                                                                                                         "--disable-fma4" ];
   }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
 
   # On darwin, tests are linked to dylib in the nix store, so we need to make
diff --git a/nixpkgs/pkgs/development/libraries/linbox/default.nix b/nixpkgs/pkgs/development/libraries/linbox/default.nix
index 2217996acdbc..0612a5be4efd 100644
--- a/nixpkgs/pkgs/development/libraries/linbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/linbox/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optionals stdenv.isx86_64 {
     # disable SIMD instructions (which are enabled *when available* by default)
     default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    # Intel
     westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
     sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
     ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
@@ -49,6 +50,14 @@ stdenv.mkDerivation rec {
     broadwell      = [                                                                                                                         "--disable-fma4" ];
     skylake        = [                                                                                                                         "--disable-fma4" ];
     skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
+    # AMD
+    btver1         = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    btver2         = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
+    bdver1         = [                                                                                        "--disable-avx2"                                  ];
+    bdver2         = [                                                                                        "--disable-avx2"                                  ];
+    bdver3         = [                                                                                        "--disable-avx2"                                  ];
+    bdver4         = [                                                                                                                                          ];
+    znver1         = [                                                                                                                         "--disable-fma4" ];
   }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
   ++ stdenv.lib.optionals withSage [
     "--enable-sage"
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
index a4c12793abb3..33054dd403f9 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -259,6 +259,7 @@ stdenv.mkDerivation {
       then [ "-no-sse2" ]
       else lib.optionals (compareVersion "5.9.0" >= 0) {
         default        = [ "-sse2" "-no-sse3" "-no-ssse3" "-no-sse4.1" "-no-sse4.2" "-no-avx" "-no-avx2" ];
+        # Intel
         westmere       = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2" "-no-avx" "-no-avx2" ];
         sandybridge    = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
         ivybridge      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
@@ -266,6 +267,14 @@ stdenv.mkDerivation {
         broadwell      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
         skylake        = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
         skylake-avx512 = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
+        # AMD
+        btver1         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2" "-no-avx" "-no-avx2" ];
+        btver2         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
+        bdver1         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
+        bdver2         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
+        bdver3         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
+        bdver4         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
+        znver1         = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
       }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
     )
     ++ [
diff --git a/nixpkgs/pkgs/development/python-modules/dlib/default.nix b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
index a57d83075513..33cb72dca408 100644
--- a/nixpkgs/pkgs/development/python-modules/dlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage, dlib, python, pytest, more-itertools, avxSupport ? true, lib }:
+{ buildPythonPackage, lib, dlib, python, pytest, more-itertools,
+  avxSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
+}:
 
 buildPythonPackage {
   inherit (dlib) name src nativeBuildInputs buildInputs meta;
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
index 4dc5c57070d1..1633a32bee26 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
+, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"                                     "bdver4" "znver1"]
+, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"                   "bdver2" "bdver3" "bdver4" "znver1"]
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix
index 4dd378d1410b..8f30ecbcc984 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/2/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
+, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"                                     "bdver4" "znver1"]
+, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"                   "bdver2" "bdver3" "bdver4" "znver1"]
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index b686ea4d04f2..14fcde4367c8 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub
 , boost, zlib, openssl
 , upnpSupport ? true, miniupnpc ? null
-, aesniSupport ? false
-, avxSupport ? false
+, aesniSupport ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
+, avxSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [ "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"]
 }:
 
 assert upnpSupport -> miniupnpc != null;