Merge pull request #120983 from tsurucapital/openblas-dynamic-arch

openblas: Allow setting DYNAMIC_ARCH

authored by

Thomas Tuegel and committed by
GitHub
afd7f222 50a11f4f

+11 -8
+11 -8
pkgs/development/libraries/science/math/openblas/default.nix
··· 15 # Select a specific optimization target (other than the default) 16 # See https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt 17 , target ? null 18 , enableStatic ? stdenv.hostPlatform.isStatic 19 , enableShared ? !stdenv.hostPlatform.isStatic 20 }: ··· 25 26 let 27 setTarget = x: if target == null then x else target; 28 29 # To add support for a new platform, add an element to this set. 30 configs = { 31 armv6l-linux = { 32 BINARY = 32; 33 TARGET = setTarget "ARMV6"; 34 - DYNAMIC_ARCH = false; 35 USE_OPENMP = true; 36 }; 37 38 armv7l-linux = { 39 BINARY = 32; 40 TARGET = setTarget "ARMV7"; 41 - DYNAMIC_ARCH = false; 42 USE_OPENMP = true; 43 }; 44 45 aarch64-darwin = { 46 BINARY = 64; 47 TARGET = setTarget "VORTEX"; 48 - DYNAMIC_ARCH = true; 49 USE_OPENMP = false; 50 MACOSX_DEPLOYMENT_TARGET = "11.0"; 51 }; ··· 53 aarch64-linux = { 54 BINARY = 64; 55 TARGET = setTarget "ARMV8"; 56 - DYNAMIC_ARCH = true; 57 USE_OPENMP = true; 58 }; 59 60 i686-linux = { 61 BINARY = 32; 62 TARGET = setTarget "P2"; 63 - DYNAMIC_ARCH = true; 64 USE_OPENMP = true; 65 }; 66 67 x86_64-darwin = { 68 BINARY = 64; 69 TARGET = setTarget "ATHLON"; 70 - DYNAMIC_ARCH = true; 71 USE_OPENMP = false; 72 MACOSX_DEPLOYMENT_TARGET = "10.7"; 73 }; ··· 75 x86_64-linux = { 76 BINARY = 64; 77 TARGET = setTarget "ATHLON"; 78 - DYNAMIC_ARCH = true; 79 USE_OPENMP = !stdenv.hostPlatform.isMusl; 80 }; 81 82 powerpc64le-linux = { 83 BINARY = 64; 84 TARGET = setTarget "POWER5"; 85 - DYNAMIC_ARCH = true; 86 USE_OPENMP = !stdenv.hostPlatform.isMusl; 87 }; 88 };
··· 15 # Select a specific optimization target (other than the default) 16 # See https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt 17 , target ? null 18 + # Select whether DYNAMIC_ARCH is enabled or not. 19 + , dynamicArch ? null 20 , enableStatic ? stdenv.hostPlatform.isStatic 21 , enableShared ? !stdenv.hostPlatform.isStatic 22 }: ··· 27 28 let 29 setTarget = x: if target == null then x else target; 30 + setDynamicArch = x: if dynamicArch == null then x else dynamicArch; 31 32 # To add support for a new platform, add an element to this set. 33 configs = { 34 armv6l-linux = { 35 BINARY = 32; 36 TARGET = setTarget "ARMV6"; 37 + DYNAMIC_ARCH = setDynamicArch false; 38 USE_OPENMP = true; 39 }; 40 41 armv7l-linux = { 42 BINARY = 32; 43 TARGET = setTarget "ARMV7"; 44 + DYNAMIC_ARCH = setDynamicArch false; 45 USE_OPENMP = true; 46 }; 47 48 aarch64-darwin = { 49 BINARY = 64; 50 TARGET = setTarget "VORTEX"; 51 + DYNAMIC_ARCH = setDynamicArch true; 52 USE_OPENMP = false; 53 MACOSX_DEPLOYMENT_TARGET = "11.0"; 54 }; ··· 56 aarch64-linux = { 57 BINARY = 64; 58 TARGET = setTarget "ARMV8"; 59 + DYNAMIC_ARCH = setDynamicArch true; 60 USE_OPENMP = true; 61 }; 62 63 i686-linux = { 64 BINARY = 32; 65 TARGET = setTarget "P2"; 66 + DYNAMIC_ARCH = setDynamicArch true; 67 USE_OPENMP = true; 68 }; 69 70 x86_64-darwin = { 71 BINARY = 64; 72 TARGET = setTarget "ATHLON"; 73 + DYNAMIC_ARCH = setDynamicArch true; 74 USE_OPENMP = false; 75 MACOSX_DEPLOYMENT_TARGET = "10.7"; 76 }; ··· 78 x86_64-linux = { 79 BINARY = 64; 80 TARGET = setTarget "ATHLON"; 81 + DYNAMIC_ARCH = setDynamicArch true; 82 USE_OPENMP = !stdenv.hostPlatform.isMusl; 83 }; 84 85 powerpc64le-linux = { 86 BINARY = 64; 87 TARGET = setTarget "POWER5"; 88 + DYNAMIC_ARCH = setDynamicArch true; 89 USE_OPENMP = !stdenv.hostPlatform.isMusl; 90 }; 91 };