diff options
author | Bart Ribbers <bribbers@disroot.org> | 2020-09-21 16:59:59 +0200 |
---|---|---|
committer | Leo <thinkabit.ukim@gmail.com> | 2020-09-21 17:20:01 +0000 |
commit | 0eb71337cccc82d742176b4d107efa26d95b1570 (patch) | |
tree | 0fae17b9df2243818cabe92ac2f16cbb80352643 | |
parent | 536aad48066d3865cd22afe4fc58e3ca6fed009f (diff) |
community/lapack: modernize and fix missing symbols
-rw-r--r-- | community/lapack/APKBUILD | 45 | ||||
-rw-r--r-- | community/lapack/Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch | 140 |
2 files changed, 162 insertions, 23 deletions
diff --git a/community/lapack/APKBUILD b/community/lapack/APKBUILD index 2c37f2de75d..f08f4a01eca 100644 --- a/community/lapack/APKBUILD +++ b/community/lapack/APKBUILD @@ -2,45 +2,40 @@ # Maintainer: Francesco Colista <fcolista@alpinelinux.org> pkgname=lapack pkgver=3.9.0 -pkgrel=2 +pkgrel=3 pkgdesc="Linear Algebra PACKage" url="http://www.netlib.org/lapack" arch="all" -license="custom" -options="!check" #no longer test available +license="BSD-3-Clause" +options="!check" # Tests broken makedepends="gfortran cmake" -subpackages=" - $pkgname-dev:_dev - blas - blas-dev +subpackages="$pkgname-dev:_dev blas blas-dev" +source="https://github.com/Reference-LAPACK/lapack/archive/v$pkgver/lapack-v$pkgver.tar.gz + Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch " -source="lapack-$pkgver.tar.gz::https://github.com/Reference-LAPACK/lapack/archive/v$pkgver.tar.gz" - -prepare() { - local i - sed -e 's|/CMAKE/|/cmake/|' -i CBLAS/CMakeLists.txt - mkdir sandbox -} build() { - cd "$builddir"/sandbox - cmake .. \ + cmake -B build \ -DCMAKE_BUILD_TYPE=None \ - -DCMAKE_SKIP_RPATH=ON \ - -DBUILD_SHARED_LIBS=ON \ - -DBUILD_TESTING=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_SKIP_RPATH=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=ON \ -DCMAKE_Fortran_COMPILER=gfortran \ -DLAPACKE=ON \ -DCBLAS=ON \ -DBUILD_DEPRECATED=ON - make + cmake --build build +} + +check() { + cd build + CTEST_OUTPUT_ON_FAILURE=TRUE ctest } package() { - cd "$builddir"/sandbox - make DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" cmake --build build --target install } _dev() { @@ -50,6 +45,9 @@ _dev() { "$pkgdir"/usr/include \ "$pkgdir"/usr/lib/pkgconfig \ "$pkgdir"/usr/lib/cmake + + mv "$pkgdir"/usr/lib/libtmglib.so \ + "$subpkgdir"/usr/lib # Move development files meant for blas-dev mv "$subpkgdir"/usr/lib/libblas.so \ @@ -76,4 +74,5 @@ blas() { "$subpkgdir"/usr/lib } -sha512sums="424956ad941a60a4b71e0d451ad48db12a692f8a71a90f3ca7f71d6ecc1922f392746ea84df1c47a46577ed2db32e9e47ec44ad248207c5ac7da179becb712ef lapack-3.9.0.tar.gz" +sha512sums="424956ad941a60a4b71e0d451ad48db12a692f8a71a90f3ca7f71d6ecc1922f392746ea84df1c47a46577ed2db32e9e47ec44ad248207c5ac7da179becb712ef lapack-v3.9.0.tar.gz +df52008c824a63828c396152f5505cb228f1b4114df0208322efae620fc4f5c918e8975e84d29b9edb54d9f019c614a9a6a802cdefaadbe47f3cfac0a120c161 Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch" diff --git a/community/lapack/Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch b/community/lapack/Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch new file mode 100644 index 00000000000..87f46cfacd5 --- /dev/null +++ b/community/lapack/Restore-missing-prototypes-for-deprecated-LAPACK-fun.patch @@ -0,0 +1,140 @@ +From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@debian.org> +Date: Sat, 23 Nov 2019 12:22:20 +0100 +Subject: [PATCH] Restore missing prototypes for deprecated LAPACK functions + +Some LAPACK functions prototypes were inadvertedly dropped in 3.9.0. As a +consequence, LAPACKE has several unresolved symbols. + +Closes #365 +--- + LAPACKE/include/lapack.h | 100 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 100 insertions(+) + +diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h +index 3f42532..5c131d8 100644 +--- a/LAPACKE/include/lapack.h ++++ b/LAPACKE/include/lapack.h +@@ -1842,6 +1842,28 @@ void LAPACK_zgeqlf( + lapack_complex_double* work, lapack_int const* lwork, + lapack_int* info ); + ++#define LAPACK_sgeqpf LAPACK_GLOBAL(sgeqpf,SGEQPF) ++void LAPACK_sgeqpf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda, ++ lapack_int* jpvt, float* tau, float* work, ++ lapack_int *info ); ++ ++#define LAPACK_dgeqpf LAPACK_GLOBAL(dgeqpf,DGEQPF) ++void LAPACK_dgeqpf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda, ++ lapack_int* jpvt, double* tau, double* work, ++ lapack_int *info ); ++ ++#define LAPACK_cgeqpf LAPACK_GLOBAL(cgeqpf,CGEQPF) ++void LAPACK_cgeqpf( lapack_int* m, lapack_int* n, lapack_complex_float* a, ++ lapack_int* lda, lapack_int* jpvt, ++ lapack_complex_float* tau, lapack_complex_float* work, ++ float* rwork, lapack_int *info ); ++ ++#define LAPACK_zgeqpf LAPACK_GLOBAL(zgeqpf,ZGEQPF) ++void LAPACK_zgeqpf( lapack_int* m, lapack_int* n, lapack_complex_double* a, ++ lapack_int* lda, lapack_int* jpvt, ++ lapack_complex_double* tau, lapack_complex_double* work, ++ double* rwork, lapack_int *info ); ++ + #define LAPACK_cgeqp3 LAPACK_GLOBAL(cgeqp3,CGEQP3) + void LAPACK_cgeqp3( + lapack_int const* m, lapack_int const* n, +@@ -3617,6 +3639,47 @@ void LAPACK_zggrqf( + lapack_complex_double* work, lapack_int const* lwork, + lapack_int* info ); + ++#define LAPACK_sggsvd LAPACK_GLOBAL(sggsvd,SGGSVD) ++lapack_int LAPACKE_sggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, float* a, ++ lapack_int lda, float* b, lapack_int ldb, ++ float* alpha, float* beta, float* u, lapack_int ldu, ++ float* v, lapack_int ldv, float* q, lapack_int ldq, ++ lapack_int* iwork ); ++ ++#define LAPACK_dggsvd LAPACK_GLOBAL(dggsvd,DGGSVD) ++lapack_int LAPACKE_dggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, double* a, ++ lapack_int lda, double* b, lapack_int ldb, ++ double* alpha, double* beta, double* u, ++ lapack_int ldu, double* v, lapack_int ldv, double* q, ++ lapack_int ldq, lapack_int* iwork ); ++ ++#define LAPACK_cggsvd LAPACK_GLOBAL(cggsvd,CGGSVD) ++lapack_int LAPACKE_cggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, ++ lapack_complex_float* a, lapack_int lda, ++ lapack_complex_float* b, lapack_int ldb, ++ float* alpha, float* beta, lapack_complex_float* u, ++ lapack_int ldu, lapack_complex_float* v, ++ lapack_int ldv, lapack_complex_float* q, ++ lapack_int ldq, lapack_int* iwork ); ++ ++#define LAPACK_zggsvd LAPACK_GLOBAL(zggsvd,ZGGSVD) ++lapack_int LAPACKE_zggsvd( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int n, lapack_int p, ++ lapack_int* k, lapack_int* l, ++ lapack_complex_double* a, lapack_int lda, ++ lapack_complex_double* b, lapack_int ldb, ++ double* alpha, double* beta, ++ lapack_complex_double* u, lapack_int ldu, ++ lapack_complex_double* v, lapack_int ldv, ++ lapack_complex_double* q, lapack_int ldq, ++ lapack_int* iwork ); ++ + #define LAPACK_cggsvd3 LAPACK_GLOBAL(cggsvd3,CGGSVD3) + void LAPACK_cggsvd3( + char const* jobu, char const* jobv, char const* jobq, +@@ -3679,6 +3742,43 @@ void LAPACK_zggsvd3( + lapack_int* iwork, + lapack_int* info ); + ++#define LAPACK_sggsvp LAPACK_GLOBAL(sggsvp,SGGSVP) ++lapack_int LAPACKE_sggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, float* a, ++ lapack_int lda, float* b, lapack_int ldb, float tola, ++ float tolb, lapack_int* k, lapack_int* l, float* u, ++ lapack_int ldu, float* v, lapack_int ldv, float* q, ++ lapack_int ldq ); ++ ++#define LAPACK_dggsvp LAPACK_GLOBAL(dggsvp,DGGSVP) ++lapack_int LAPACKE_dggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, double* a, ++ lapack_int lda, double* b, lapack_int ldb, ++ double tola, double tolb, lapack_int* k, ++ lapack_int* l, double* u, lapack_int ldu, double* v, ++ lapack_int ldv, double* q, lapack_int ldq ); ++ ++#define LAPACK_cggsvp LAPACK_GLOBAL(cggsvp,CGGSVP) ++lapack_int LAPACKE_cggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, ++ lapack_complex_float* a, lapack_int lda, ++ lapack_complex_float* b, lapack_int ldb, float tola, ++ float tolb, lapack_int* k, lapack_int* l, ++ lapack_complex_float* u, lapack_int ldu, ++ lapack_complex_float* v, lapack_int ldv, ++ lapack_complex_float* q, lapack_int ldq ); ++ ++#define LAPACK_zggsvp LAPACK_GLOBAL(zggsvp,ZGGSVP) ++lapack_int LAPACKE_zggsvp( int matrix_layout, char jobu, char jobv, char jobq, ++ lapack_int m, lapack_int p, lapack_int n, ++ lapack_complex_double* a, lapack_int lda, ++ lapack_complex_double* b, lapack_int ldb, ++ double tola, double tolb, lapack_int* k, ++ lapack_int* l, lapack_complex_double* u, ++ lapack_int ldu, lapack_complex_double* v, ++ lapack_int ldv, lapack_complex_double* q, ++ lapack_int ldq ); ++ + #define LAPACK_cggsvp3 LAPACK_GLOBAL(cggsvp3,CGGSVP3) + void LAPACK_cggsvp3( + char const* jobu, char const* jobv, char const* jobq, + + |