Upgrade version to 6.0.1

Signed-off-by: cherry530 <707078654@qq.com>
This commit is contained in:
cherry530 2023-09-22 17:25:14 +08:00
parent 1379512416
commit d12e81c414
7 changed files with 71 additions and 87 deletions

View File

@ -1,11 +0,0 @@
--- a/SRC/CMakeLists.orig.txt 2018-04-25 15:17:39.786715000 +0200
+++ b/SRC/CMakeLists.txt 2018-04-25 15:25:00.253317607 +0200
@@ -230,7 +230,7 @@
target_link_libraries(superlu ${BLAS_LIB} m)
set_target_properties(superlu PROPERTIES
- VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR}
+ VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR}.${VERSION_MINOR}
)
include(GNUInstallDirs)

View File

@ -1,17 +1,12 @@
Name: SuperLU
Version: 5.2.1
Release: 7
Version: 6.0.1
Release: 1
Summary: Library for the direct solution of large, sparse, nonsymmetric systems of linear equations
License: BSD and GPLv2+
URL: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/
Source0: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_%{version}.tar.gz
Source0: https://github.com/xiaoyeli/superlu/archive/v%{version}/superlu-%{version}.tar.gz
BuildRequires: openblas-devel openblas-srpm-macros cmake3 gcc-gfortran csh
# Fixed include path for building
Patch0000: superlu-cmake-includedir.patch
# Remove MC64 functionality
Patch0001: superlu-removemc64.patch
# Add minor version for target properties
Patch0002: SuperLU-5.2.1-set_soname.patch
%description
The library is written in C and is callable from either C or Fortran program. It uses MPI, OpenMP and
@ -36,7 +31,7 @@ Requires: SuperLU = %{version}-%{release}
The package contains all the help documentation along with C and FORTRAN examples.
%prep
%autosetup -n SuperLU_%{version} -p1
%autosetup -n superlu-%{version} -p1
rm -fr SRC/mc64ad.f.bak
find . -type f | sed -e "/TESTING/d" | xargs chmod a-x
find EXAMPLE -type f | while read file; do [ "$(file $file | awk '{print $2}')" = ELF ] && rm $file || : ; done
@ -61,16 +56,21 @@ cd -
%files
%doc License.txt
%{_libdir}/libsuperlu.so.5*
%{_libdir}/libsuperlu.so.6*
%files devel
%{_includedir}/SuperLU/
%{_includedir}/*
%{_libdir}/libsuperlu.so
%{_libdir}/cmake/superlu/
%{_libdir}/pkgconfig/superlu.pc
%files help
%doc DOC EXAMPLE FORTRAN
%changelog
* Tue Sep 26 2023 xu_ping <707078654@qq.com> - 6.0.1-1
- Upgrade version to 6.0.1
* Thu Mar 5 2020 Ling Yang <lingyang2@huawei.com> - 5.2.1-6
- Package Init

4
SuperLU.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: git
src_repo: https://github.com/xiaoyeli/superlu
tag_prefix: ^v
separator: .

BIN
superlu-6.0.1.tar.gz Normal file

Binary file not shown.

View File

@ -1,9 +0,0 @@
--- SuperLU_5.2.1/SRC/CMakeLists.txt 2018-04-13 17:01:44.007761121 +0200
+++ CMakeLists.txt 2018-04-13 17:01:30.573718261 +0200
@@ -242,5 +242,5 @@
install(FILES ${headers}
# DESTINATION ${CMAKE_INSTALL_PREFIX}/include
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SuperLU
)

View File

@ -1,5 +1,7 @@
--- SuperLU_5.2.1/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200
+++ mc64ad.c 2018-04-13 17:13:23.571981656 +0200
diff --git a/SRC/mc64ad.c b/SRC/mc64ad.c
index 97fa736..3f6b884 100644
--- a/SRC/mc64ad.c
+++ b/SRC/mc64ad.c
@@ -1,2645 +1,16 @@
-/* mc64ad.f -- translated by f2c (version 20100827).
- You must link the resulting object file with libf2c:
@ -119,7 +121,7 @@
-
-/* ********************************************************************** */
-/* Subroutine */ int_t mc64ad_(int_t *job, int_t *n, int_t *ne, int_t *
- ip, int_t *irn, double *a, int_t *num, int_t *cperm,
- ip, int_t *irn, double *a, int_t *num, int *cperm,
- int_t *liw, int_t *iw, int_t *ldw, double *dw, int_t *
- icntl, int_t *info)
-{
@ -135,16 +137,17 @@
- double fact, rinf;
-
- extern /* Subroutine */ int_t mc21ad_(int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *, int_t *), mc64bd_(
- int_t *, int_t *, int_t *, int_t *, double *, int_t
- *, int_t *, int_t *, int_t *, int_t *, int_t *,
- double *), mc64rd_(int_t *, int_t *, int_t *, int_t *,
- double *), mc64sd_(int_t *, int_t *, int_t *, int_t *
- , double *, int_t *, int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *, int_t *), mc64wd_(
- int_t *, int_t *, int_t *, int_t *, double *, int_t
- *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t
- *, double *, double *);
- int_t *, int_t *, int_t *, int_t *, int_t *),
- mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- int *iperm, int_t *num, int_t *jperm,
- int_t *pr, int_t *q, int_t *l, double *d__),
- mc64rd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a),
- mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- int *iperm, int_t *numx, int_t *w, int_t *len, int_t *lenl,
- int_t *lenh, int_t *fc, int_t *iw, int_t *iw4),
- mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- int *iperm, int_t *num, int_t *jperm, int_t *out,
- int_t *pr, int_t *q, int_t *l, double *u, double *d__);
-
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
-/* Research Councils *** */
@ -346,7 +349,7 @@
- info[2] = *job;
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " because JOB = %d\n", info[1], *job);
- " because JOB = %d\n", (int) info[1], (int) *job);
- }
- goto L99;
- }
@ -356,7 +359,7 @@
- info[2] = *n;
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " because N = %d\n", info[1], *job);
- " because N = %d\n", (int) info[1], (int) *job);
- }
- goto L99;
- }
@ -366,7 +369,7 @@
- info[2] = *ne;
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " because NE = %d\n", info[1], *job);
- " because NE = %d\n", (int) info[1], (int) *job);
- }
- goto L99;
- }
@ -391,7 +394,7 @@
- info[2] = k;
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " LIW too small, must be at least %8d\n", info[1], k);
- " LIW too small, must be at least %8d\n", (int) info[1], (int) k);
- }
- goto L99;
- }
@ -415,7 +418,7 @@
- info[2] = k;
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " LDW too small, must be at least %8d\n", info[1], k);
- " LDW too small, must be at least %8d\n", (int) info[1], (int) k);
- }
- goto L99;
- }
@ -439,7 +442,7 @@
- if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d Column %8d"
- " contains an entry with invalid row index %8d\n",
- info[1], j, i__);
- (int) info[1], (int) j, (int) i__);
- }
- goto L99;
- }
@ -451,7 +454,7 @@
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " Column %8d"
- " contains two or more entries with row index %8d\n",
- info[1], j, i__);
- (int) info[1], (int) j, (int) i__);
- }
- goto L99;
- } else {
@ -465,15 +468,15 @@
-/* Print diagnostics on input */
- if (icntl[3] >= 0) {
- printf(" ****** Input parameters for MC64A/AD: JOB = %8d,"
- " N = %d, NE = %8d\n", *job, *n, *ne);
- " N = %d, NE = %8d\n", (int) *job, (int) *n, (int) *ne);
- printf(" IP(1:N+1) = ");
- for (j=1; j<=(*n+1); ++j) {
- printf("%8d", ip[j]);
- printf("%8d", (int) ip[j]);
- if (j%8 == 0) printf("\n");
- }
- printf("\n IRN(1:NE) = ");
- for (j=1; j<=(*ne); ++j) {
- printf("%8d", irn[j]);
- printf("%8d", (int) irn[j]);
- if (j%8 == 0) printf("\n");
- }
- printf("\n");
@ -621,24 +624,24 @@
- info[1] = 1;
- if (icntl[2] >= 0) {
- printf(" ****** Warning from MC64A/AD. INFO(1) = %2d"
- " The matrix is structurally singular.\n", info[1]);
- " The matrix is structurally singular.\n", (int)info[1]);
- }
- }
- if (info[1] == 2) {
-/* Scaling factors are large, return with warning */
- if (icntl[2] >= 0) {
- printf(" ****** Warning from MC64A/AD. INFO(1) = %2d\n"
- " Some scaling factors may be too large.\n", info[1]);
- " Some scaling factors may be too large.\n", (int) info[1]);
- }
- }
-/* Print diagnostics on output */
- if (icntl[3] >= 0) {
- printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n",
- info[1], info[2]);
- printf(" NUM = %8d", *num);
- (int) info[1], (int) info[2]);
- printf(" NUM = %8d", (int) *num);
- printf(" CPERM(1:N) = ");
- for (j=1; j<=*n; ++j) {
- printf("%8d", cperm[j]);
- printf("%8d", (int) cperm[j]);
- if (j%8 == 0) printf("\n");
- }
- if (*job == 5) {
@ -662,7 +665,7 @@
-
-/* ********************************************************************** */
-/* Subroutine */ int_t mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *
- irn, double *a, int_t *iperm, int_t *num, int_t *jperm,
- irn, double *a, int *iperm, int_t *num, int_t *jperm,
- int_t *pr, int_t *q, int_t *l, double *d__)
-{
- /* System generated locals */
@ -685,10 +688,10 @@
- double dnew;
- int_t jord, qlen, idum, jdum;
- double rinf;
- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *,
- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *,
- int_t *, double *, int_t *, int_t *), mc64fd_(int_t *
- , int_t *, int_t *, int_t *, double *, int_t *, int_t *);
- extern /* Subroutine */ int_t
- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *);
-
-
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
@ -1094,7 +1097,6 @@
-{
- /* System generated locals */
- int_t i__1;
- int_t c__1 = 1;
-
- /* Local variables */
- double di;
@ -1550,7 +1552,7 @@
-
-/* ********************************************************************** */
-/* Subroutine */ int_t mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *
- irn, double *a, int_t *iperm, int_t *numx, int_t *w,
- irn, double *a, int *iperm, int_t *numx, int_t *w,
- int_t *len, int_t *lenl, int_t *lenh, int_t *fc, int_t *iw,
- int_t *iw4)
+void mc64id_(int *a)
@ -1562,11 +1564,12 @@
- int_t i__, j, k, l, ii, mod, cnt, num;
- double bval, bmin, bmax, rinf;
- int_t nval, wlen, idum1, idum2, idum3;
- extern /* Subroutine */ int_t mc64qd_(int_t *, int_t *, int_t *,
- int_t *, int_t *, double *, int_t *, double *),
- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *);
- extern /* Subroutine */ int_t
- mc64qd_(int_t *, int_t *, int_t *, int_t *, int_t *, double *,
- int_t *, double *),
- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *,
- int_t *, int_t *, int_t *, int_t *);
-
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
-/* Research Councils *** */
@ -1576,7 +1579,10 @@
-/* *** any of the subroutines. *** */
-/* *** Any problems? Contact ... */
-/* Iain Duff (I.Duff@rl.ac.uk) or Jacko Koster (jak@ii.uib.no) *** */
-
+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");
+ abort();
+}
-/* N, NE, IP, IRN, are described in MC64A/AD. */
-/* A is a REAL (DOUBLE PRECISION in the D-version) array of length NE. */
-/* A(K), K=1..NE, must be set to the value of the entry that */
@ -1869,7 +1875,10 @@
-/* Subroutine */ int_t mc64qd_(int_t *ip, int_t *lenl, int_t *lenh,
- int_t *w, int_t *wlen, double *a, int_t *nval, double *
- val)
-{
+void mc64ad_(int *a, int *b, int *c, int d[], int e[], double f[],
+ int *g, int h[], int *i, int j[], int *k, double l[],
+ int m[], int n[])
{
- /* System generated locals */
- int_t i__1, i__2, i__3;
-
@ -2165,7 +2174,7 @@
-
-/* ********************************************************************** */
-/* Subroutine */ int_t mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *
- irn, double *a, int_t *iperm, int_t *num, int_t *jperm,
- irn, double *a, int *iperm, int_t *num, int_t *jperm,
- int_t *out, int_t *pr, int_t *q, int_t *l, double *u,
- double *d__)
-{
@ -2185,11 +2194,10 @@
- double dmin__, dnew;
- int_t jord, qlen, jdum;
- double rinf;
- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *,
- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *,
- int_t *, double *, int_t *, int_t *), mc64fd_(int_t *
- , int_t *, int_t *, int_t *, double *, int_t *,
- int_t *);
- extern /* Subroutine */ int_t
- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *);
-
-
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
@ -2652,11 +2660,3 @@
+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");
+ abort();
+}
+
+void mc64ad_(int *a, int *b, int *c, int d[], int e[], double f[],
+ int *g, int h[], int *i, int j[], int *k, double l[],
+ int m[], int n[])
+{
+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");
+ abort();
+}

Binary file not shown.