Commit Graph

503 Commits

Author SHA1 Message Date
Daniël de Kok
6a236f5410 mkl: 2020.1.217 -> 2020.2.254 2020-07-22 17:38:07 +02:00
markuskowa
533720caa9
Merge pull request #93031 from andrew-d/andrew/dsd
dsd: init at 2018-07-01
2020-07-18 23:18:23 +02:00
Jack Coughlin
8a65fe8da6 petsc: Fix install_name_tool patch
The PETSc library's config/install.py script checks whether
/usr/bin/install_name_tool is an existing file:

https://gitlab.com/petsc/petsc/-/blob/master/config/install.py#L368

Therefore, it is not enough to replace it with something that we expect
to be on the PATH, as this will cause the linked if statement to be
silently skipped. The consequence is that applications linked against
this version of petsc will fail at runtime on MacOS with a dynamic
loading error.

Instead, we should replace install_name_tool with the absolute path of a
binary we know will be present at build time.

Note that this should be fixed upstream as well, but this is sufficient
to fix the runtime error.
2020-07-18 08:47:24 -07:00
Andrew Dunham
f856cb8a9e it++: init at 4.3.1 2020-07-16 17:59:24 -07:00
Benjamin Hipple
2ec5479689
Merge pull request #89299 from wucke13/petsc
petsc: add fotran build argument
2020-07-07 13:50:29 -04:00
wucke13
dc5113fb06 petsc: 3.13.1 -> 3.13.2
+ add fortran build argument
2020-07-07 09:34:43 +02:00
R. RyanTM
669b2ab244 suitesparse-graphblas: 3.2.2 -> 3.3.0 2020-06-30 16:21:46 +00:00
R. RyanTM
f79c05b113 openblas: 0.3.9 -> 0.3.10 2020-06-19 10:59:46 +02:00
Daniël de Kok
127cdd0cab mkl: use validatePkgConfig hook 2020-05-31 20:45:07 +02:00
Daniël de Kok
e88673aa27 mkl: fix expectation of MKLROOT being set in pkg-config files
The Intel MKL pkg-config files did not work, because they expect that
the MKLROOT environment variable is set. This change replaces
occurences by the actual path of MKL in the Nix store.

Since the pkg-config files seem to break quite frequently after
upgrades, add a post-install check to validate the pkg-config files.
2020-05-14 19:40:18 +02:00
Timo Kaufmann
346de1fb8c
Merge pull request #87518 from r-ryantm/auto-update/sympow
sympow: 2.023.5 -> 2.023.6
2020-05-11 21:35:40 +00:00
R. RyanTM
f66d997a29 sympow: 2.023.5 -> 2.023.6 2020-05-10 16:42:21 +00:00
Frederik Rietdijk
d7cca0f356 Merge master into staging-next 2020-05-09 11:12:29 +02:00
R. RyanTM
c0e63bc87e petsc: 3.13.0 -> 3.13.1 2020-05-08 15:57:25 +00:00
Benjamin Hipple
706642091e mkl: include symlinks to versioned libblas.so.3 names
Some build systems look for this specifically.
2020-05-08 06:52:02 +02:00
Jonathan Ringer
c1e605dd6b openblas: also export unversioned libraries for linux 2020-05-08 06:52:02 +02:00
Mario Rodas
a340a9f4d8
Merge pull request #86755 from andersk/abseil-ortools
abseil-cpp: 20191119 -> 20200225.2; or-tools: 7.5 -> 7.6
2020-05-07 06:53:54 -05:00
R. RyanTM
7a17b13b48 or-tools: 7.5 -> 7.6 2020-05-04 03:12:00 -07:00
Frederik Rietdijk
00bbfccecf Merge staging into staging-next 2020-05-01 09:28:45 +02:00
R. RyanTM
51b1533b37 suitesparse-graphblas: 3.2.1 -> 3.2.2 2020-05-01 09:06:34 +02:00
Markus Kowalewski
15cd0bd993 openblas: 0.3.8 -> 0.3.9 2020-05-01 09:02:51 +02:00
Matthew Bauer
5a500ff0ba blas,lapack: use correct name for library
To match the soname, we need to use libblas.so.3, liblapack.so.3.
2020-04-22 12:37:04 -05:00
Matthew Bauer
a6a502fca0 magma: remove mklSupport flag
This now relies on the "blas" and "lapack" packages.
2020-04-20 16:02:57 -05:00
Matthew Bauer
ff2f2644f8 blas,lapack: use isILP64 instead of is64bit
This is a better name since we have multiple 64-bit things that could
be referred to.

LP64  : integer=32, long=64, pointer=64
ILP64 : integer=64, long=64, pointer=64
2020-04-20 16:02:43 -05:00
Matthew Bauer
fcf33e2499 scs: breaks on 64bit blas 2020-04-17 16:24:31 -05:00
Matthew Bauer
1c8aba8334 treewide: use blas and lapack
This makes packages use lapack and blas, which can wrap different
BLAS/LAPACK implementations.

treewide: cleanup from blas/lapack changes

A few issues in the original treewide:

- can’t assume blas64 is a bool
- unused commented code
2020-04-17 16:24:09 -05:00
Matthew Bauer
43873351ff blas/lapack: add wrapper for “alternative”s of BLAS/LAPACK provider
This is based on previous work for switching between BLAS and LAPACK
implementation in Debian[1] and Gentoo[2]. The goal is to have one way
to depend on the BLAS/LAPACK libraries that all packages must use. The
attrs “blas” and “lapack” are used to represent a wrapped BLAS/LAPACK
provider. Derivations that don’t care how BLAS and LAPACK are
implemented can just use blas and lapack directly. If you do care what
you get (perhaps for some CPP), you should verify that blas and lapack
match what you expect with an assertion.

The “blas” package collides with the old “blas” reference
implementation. This has been renamed to “blas-reference”. In
addition, “lapack-reference” is also included, corresponding to
“liblapack” from Netlib.org.

Currently, there are 3 providers of the BLAS and LAPACK interfaces:

- lapack-reference: the BLAS/LAPACK implementation maintained by netlib.org
- OpenBLAS: an optimized version of BLAS and LAPACK
- MKL: Intel’s unfree but highly optimized BLAS/LAPACK implementation

By default, the above implementations all use the “LP64” BLAS and
LAPACK ABI. This corresponds to “openblasCompat” and is the safest way
to use BLAS/LAPACK. You may received some benefits from “ILP64” or
8-byte integer BLAS at the expense of breaking compatibility with some
packages.

This can be switched at build time with an override like:

    import <nixpkgs> {
        config.allowUnfree = true;
        overlays = [(self: super: {
          lapack = super.lapack.override {
            lapackProvider = super.lapack-reference;
          };
          blas = super.blas.override {
            blasProvider = super.lapack-reference;
          };
        })];
      }

or, switched at runtime via LD_LIBRARY_PATH like:

    $ LD_LIBRARY_PATH=$(nix-build -E '(with import <nixpkgs> {}).lapack.override { lapackProvider = pkgs.mkl; is64bit = true; })')/lib:$(nix-build -E '(with import <nixpkgs> {}).blas.override { blasProvider = pkgs.mkl; is64bit = true; })')/lib ./your-blas-linked-binary

By default, we use OpenBLAS LP64 also known in Nixpkgs as
openblasCompat.

[1]: https://wiki.debian.org/DebianScience/LinearAlgebraLibraries
[2]: https://wiki.gentoo.org/wiki/Blas-lapack-switch
2020-04-17 16:23:55 -05:00
Matthew Bauer
90326ba624 lapack: enable shared libraries, cblas, and tests 2020-04-17 16:17:12 -05:00
R. RyanTM
1450740470 suitesparse: 5.7.1 -> 5.7.2 2020-04-10 11:55:20 -07:00
Benjamin Hipple
a1f6400fd5
Merge pull request #84451 from robertodr/update-mkl
mkl: 2020.0.166 -> 2020.1.217 (Linux only)
2020-04-10 13:54:49 -04:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Mario Rodas
2f41064d86
Merge pull request #84455 from r-ryantm/auto-update/petsc
petsc: 3.12.4 -> 3.13.0
2020-04-08 21:35:27 -05:00
Niklas Hambüchen
df907c4786 openblas: Add singleThreaded option. Off by default.
See https://github.com/xianyi/OpenBLAS/issues/2543
2020-04-08 13:46:04 +02:00
Mario Rodas
ad15e4e8a0
petsc: fix build on darwin 2020-04-06 12:00:00 +00:00
R. RyanTM
758e81662f petsc: 3.12.4 -> 3.13.0 2020-04-06 11:46:40 +00:00
Roberto Di Remigio
488527eaa6
mkl: 2020.0.166 -> 2020.1.217 2020-04-06 11:57:22 +02:00
Roberto Di Remigio
335e097352
mkl: 2019.5.281 -> 2020.0.166 (Linux only) 2020-03-27 08:45:20 +01:00
Jan Tojnar
d951c534da
Merge pull request #82274 from jtojnar/suitesparese-5.6
suitesparse: 5.4.0 → 5.7.1 + clean up
2020-03-22 06:58:25 +01:00
Josef Kemetmüller
fbb273c5fe fenics: 2017.1.0 -> 2019.1.0
Fixes: NixOS/nixpkgs#75886
2020-03-19 21:48:27 -07:00
Timo Kaufmann
d8d0b60c22
Merge pull request #82766 from r-ryantm/auto-update/brial
brial: 1.2.7 -> 1.2.8
2020-03-17 14:29:02 +00:00
R. RyanTM
707e0b1e96 brial: 1.2.7 -> 1.2.8 2020-03-17 01:13:50 +00:00
Tom Hall
c6c753668d openblas: disable optimisation pending fix
See https://github.com/xianyi/OpenBLAS/issues/2496
2020-03-14 18:06:59 +00:00
wucke13
4f58c15ee6 petsc: 3.8.4 -> 3.12.4
+ add cxx flag to configure, because getdp needs it
2020-03-13 04:10:20 +00:00
Jan Tojnar
b552b84ae2
suitesparse: ultimate clean-up
* Switch to default buildPhase & installPhase
* In preConfigure
	* Do not add -DNPARTITION to CHOLMOD_CONFIG. That would disable the use of Metis but we already have that.
	* Do not remove -lrt on Darwin, Darwin compiler can handle that and the code no longer exists anyway.
	* With CUDA enabled
		* Do not replace CUDA_ROOT. It does not exist any more. Instead we are setting CUDA_PATH in makeFlags.
		* Do not replace GPU_BLAS_PATH, it defaults to CUDA_PATH so it will end up with the same value.
		* Do not add -DCHOLMOD_OMP_NUM_THREADS to GPU_CONFIG. Why would be having the library use the same number of threads as the builder a good idea?
		* Do not replace CUDA_PATH, we are setting it in makeFlags now.
		* Do not replace CUDART_LIB and CUBLAS_LIB. They were being replaced incorrectly (cuda libs are located in lib directory, not lib64). Instead set the correct paths in makeFlags.
		* Do not replace CUDA_INC_PATH. Its default looks like it will end up with the same value.
		* Do not replace NV20, NV30, NV35 – not used any more.
		* Do not replace NVCC, defaults to the same.
		* Do not replace NVCCFLAGS, we just used the default from SourceSparse 4.4.7 with -gencode=arch=compute_60,code=compute_60 tacked on top. Current upstream default looks much better.
* Stop adding -DNTIMER to CFLAGS on Darwin – clock_gettime is supported by macOS 10.12 SDK.
* In buildPhase
	* Move the make arguments to makeFlags and library to buildFlags, allowing us to drop the manual make call. I did not verify all of these are still needed.
	* Remove the creation of libsuitesparse.so. As far as I could tell it is some kind of remnant of our old expression – perhaps due to past deficiencies of the build scripts, we created the individual libraries as symlinks to libsuitesparse.so: e36b3ec0a5 But since the build script can now build individual .so libraries, there should be no need for this abomination. No other distros do this either.
* In installPhase
	* No need to copy things manually, there is an install target. We just need to pass INSTALL=$out flag to make to let it know where to install the files.
	* I do not have means of verifying the darwin dylib name fix but it looks like it might be fixed in an upcoming release.
	* I dropped the rpath fixup as it does not seem to be needed any more (ldd does not report any unresolved libraries).
2020-03-11 03:45:25 +01:00
Jan Tojnar
c16d5b6534
suitesparse: do not build Mongoose & GraphBLAS
We already have package for them
2020-03-11 02:33:06 +01:00
Jan Tojnar
306cf6091f
suitesparse: link against system metis 2020-03-10 21:16:28 +01:00
Jan Tojnar
e9d7774b7b
suitesparse: 5.4.0 → 5.7.1 2020-03-10 21:16:27 +01:00
Jan Tojnar
559f02e208
suitesparse-graphblas: init at 3.1.2 2020-03-10 21:16:27 +01:00
Jan Tojnar
b4e6293a8d
mongoose: init at 2.0.4 2020-03-10 20:35:44 +01:00
Jan Tojnar
40ae28791f
suitesparse: clean up
* Split to multiple outputs
* Fetch source from GitLab (the only source for future releases)
* Re-order attrset to be more idiomatic
* Format with nixpkgs-fmt
2020-03-10 20:35:44 +01:00