[packages/SuiteSparse-SLIP_LU] - last version of SuiteSparse SLIP_LU library from SuiteSparse 5.13.0

qboosh qboosh at pld-linux.org
Sun Jun 29 21:41:04 CEST 2025


commit caabd4b3a361d0b9ac616daddd8daf42526fd7c6
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Jun 29 21:42:23 2025 +0200

    - last version of SuiteSparse SLIP_LU library from SuiteSparse 5.13.0

 SuiteSparse-ILP32.patch   |  20 ++
 SuiteSparse-SLIP_LU.spec  | 146 ++++++++++++
 SuiteSparse-amdf77.patch  |  39 +++
 SuiteSparse-config.patch  | 124 ++++++++++
 SuiteSparse-externc.patch | 593 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 922 insertions(+)
---
diff --git a/SuiteSparse-SLIP_LU.spec b/SuiteSparse-SLIP_LU.spec
new file mode 100644
index 0000000..0723b71
--- /dev/null
+++ b/SuiteSparse-SLIP_LU.spec
@@ -0,0 +1,146 @@
+#
+# Conditional build:
+%bcond_without	metis		# partition support (using metis lib)
+
+# main package version
+%define		suite_ver	5.13.0
+# see */Include/*.h /VER(SION)?_CODE
+%define		amd_ver		2.4.6
+%define		colamd_ver	2.9.6
+%define		sliplu_ver	1.0.2
+
+Summary:	SLIP_LU: Sparse Left-looking Integer-Preserving LU factorization
+Summary(pl.UTF-8):	SLIP_LU - lewostronny rozkład LU dla macierzy rzadkich zachowujący liczby całkowite
+Name:		SuiteSparse-SLIP_LU
+Version:	%{sliplu_ver}
+Release:	9
+License:	LGPL v3+, GPL v2+
+Group:		Libraries
+#Source0Download: https://github.com/DrTimothyAldenDavis/SuiteSparse/releases
+Source0:	https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v%{suite_ver}/SuiteSparse-%{suite_ver}.tar.gz
+# Source0-md5:	e9e7bc594b77ae4b58d943cdc286d679
+Patch0:		SuiteSparse-config.patch
+Patch1:		SuiteSparse-amdf77.patch
+Patch2:		SuiteSparse-externc.patch
+Patch3:		SuiteSparse-ILP32.patch
+URL:		http://suitesparse.com/
+BuildRequires:	SuiteSparse-AMD-devel >= %{amd_ver}
+BuildRequires:	SuiteSparse-COLAMD-devel >= %{colamd_ver}
+BuildRequires:	SuiteSparse-config-devel >= %{suite_ver}
+BuildRequires:	blas-devel
+BuildRequires:	gcc-fortran
+BuildRequires:	gmp-devel
+BuildRequires:	lapack-devel
+BuildRequires:	libgomp-devel
+BuildRequires:	libstdc++-devel
+BuildRequires:	libtool >= 2:1.5
+%if %{with metis}
+BuildRequires:	metis-devel >= 5
+%endif
+BuildRequires:	mpfr-devel
+Requires:	SuiteSparse-AMD >= %{amd_ver}
+Requires:	SuiteSparse-COLAMD >= %{colamd_ver}
+Requires:	SuiteSparse-config-libs >= %{suite_ver}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+SLIP_LU is software package used to solve a sparse systems of linear
+equations exactly using the Sparse Left-looking Integer-Preserving LU
+factorization.
+
+%description -l pl.UTF-8
+SLIP_LU to pakiet służący do dokładnego rozwiązywania rzadkich układów
+równań liniowych przy użyciu lewostronnego rzadkiego rozkładu LU
+zachowującego liczby całkowite.
+
+%package devel
+Summary:	Header file for SLIP_LU library
+Summary(pl.UTF-8):	Plik nagłówkowy biblioteki SLIP_LU
+Version:	%{sliplu_ver}
+Group:		Development/Libraries
+Requires:	%{name} = %{sliplu_ver}-%{release}
+Requires:	SuiteSparse-config-devel >= %{suite_ver}
+Requires:	gmp-devel
+Requires:	mpfr-devel
+
+%description devel
+Header file for SLIP_LU library.
+
+%description devel -l pl.UTF-8
+Plik nagłówkowy biblioteki SLIP_LU.
+
+%package static
+Summary:	Static SLIP_LU library
+Summary(pl.UTF-8):	Statyczna biblioteka SLIP_LU
+Version:	%{sliplu_ver}
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{sliplu_ver}-%{release}
+
+%description static
+Static SLIP_LU library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka SLIP_LU.
+
+%prep
+%setup -q -n SuiteSparse-%{suite_ver}
+%patch -P0 -p1
+%patch -P1 -p1
+%patch -P2 -p1
+%ifnarch %{x8664} aarch64 alpha mips64 ppc64 s390x sparc64
+%patch -P3 -p1
+%endif
+
+%build
+%{__make} -C SLIP_LU -j1 \
+	CC="%{__cc}" \
+	CXX="%{__cxx}" \
+	CFLAGS="%{rpmcflags}" \
+	CXXFLAGS="%{rpmcxxflags}" \
+	F77=gfortran \
+	FFLAGS="%{rpmcflags}" \
+	LDFLAGS="%{rpmldflags} -L$(pwd)/lib" \
+	%{!?with_metis:CHOLMOD_CONFIG=-DNPARTITION} \
+	CUDA=no \
+	%{?with_metis:MY_METIS_LIB=-lmetis MY_METIS_INC=%{_includedir}}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/suitesparse,%{_datadir}/misc}
+
+%{__make} -C SLIP_LU -j1 install \
+	CC="%{__cc}" \
+	CXX="%{__cxx}" \
+	CFLAGS="%{rpmcflags}" \
+	CXXFLAGS="%{rpmcxxflags}" \
+	F77=gfortran \
+	FFLAGS="%{rpmcflags}" \
+	LDFLAGS="%{rpmldflags} -L$RPM_BUILD_ROOT%{_libdir}" \
+	CUDA=no \
+	INSTALL=$RPM_BUILD_ROOT%{_prefix} \
+	INSTALL_INCLUDE=$RPM_BUILD_ROOT%{_includedir}/suitesparse \
+	INSTALL_LIB=$RPM_BUILD_ROOT%{_libdir} \
+	MY_METIS_LIB=-lmetis
+
+cp -p SLIP_LU/Lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc SLIP_LU/README.md SLIP_LU/License/license.txt
+%attr(755,root,root) %{_libdir}/libsliplu.so.*.*.*
+%ghost %{_libdir}/libsliplu.so.1
+
+%files devel
+%defattr(644,root,root,755)
+%{_libdir}/libsliplu.so
+%{_includedir}/suitesparse/SLIP_LU.h
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libsliplu.a
diff --git a/SuiteSparse-ILP32.patch b/SuiteSparse-ILP32.patch
new file mode 100644
index 0000000..35de673
--- /dev/null
+++ b/SuiteSparse-ILP32.patch
@@ -0,0 +1,20 @@
+--- SuiteSparse/AMD/Demo/amd_l_demo.out.orig	2014-03-21 20:21:58.000000000 +0100
++++ SuiteSparse/AMD/Demo/amd_l_demo.out	2023-01-08 19:10:17.659993999 +0100
+@@ -6,7 +6,7 @@ AMD version 2.4.0, July 31, 2013: approx
+     (rows with more than max (10 * sqrt (n), 16) entries are
+     considered "dense", and placed last in output permutation)
+     aggressive absorption:  yes
+-    size of AMD integer: 8
++    size of AMD integer: 4
+ 
+ 
+ Input matrix:  24-by-24, with 160 entries.
+@@ -123,7 +123,7 @@ AMD version 2.4.0, July 31, 2013, result
+     number of nonzeros on diagonal:                     24
+     nonzeros in pattern of A+A' (excl. diagonal):       136
+     # dense rows/columns of A+A':                       0
+-    memory used, in bytes:                              3032
++    memory used, in bytes:                              1516
+     # of memory compactions:                            0
+ 
+     The following approximate statistics are for a subsequent
diff --git a/SuiteSparse-amdf77.patch b/SuiteSparse-amdf77.patch
new file mode 100644
index 0000000..60be497
--- /dev/null
+++ b/SuiteSparse-amdf77.patch
@@ -0,0 +1,39 @@
+--- SuiteSparse/AMD/Lib/Makefile.orig	2016-05-04 20:01:13.000000000 +0200
++++ SuiteSparse/AMD/Lib/Makefile	2023-01-11 21:43:51.689203711 +0100
+@@ -52,7 +52,7 @@ amd_l_%.o: ../Source/amd_%.c $(INC)
+ # Create the static library (C versions only)
+ #-------------------------------------------------------------------------------
+ 
+-static: $(AR_TARGET)
++static: $(AR_TARGET) libamdf77.a
+ 
+ $(AR_TARGET): $(OBJ)
+ 	$(ARCHIVE) $@ $^
+@@ -81,7 +81,7 @@ libamdf77.a: $(AMDF77)
+ #-------------------------------------------------------------------------------
+ 
+ # install AMD
+-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
++install: $(AR_TARGET) libamdf77.a $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/libamdf77.so.$(VERSION)
+ 
+ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+ 	@mkdir -p $(INSTALL_LIB)
+@@ -98,6 +98,18 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+ 	chmod 644 $(INSTALL_DOC)/AMD_UserGuide.pdf
+ 	chmod 644 $(INSTALL_DOC)/AMD_README.txt
+ 
++$(INSTALL_LIB)/libamdf77.so.$(VERSION): $(AMD_F77)
++	@mkdir -p $(INSTALL_LIB)
++	@mkdir -p $(INSTALL_INCLUDE)
++	@mkdir -p $(INSTALL_DOC)
++	$(F77) $(SO_OPTS) $^ -o $@ -lm
++	( cd $(INSTALL_LIB) ; ln -sf libamdf77.so.$(VERSION) libamdf77.so )
++	( cd $(INSTALL_LIB) ; ln -sf libamdf77.so.$(VERSION) libamdf77.so.$(SO_VERSION) )
++	$(CP) ../Include/amd.h $(INSTALL_INCLUDE)
++	$(CP) ../Doc/AMD_UserGuide.pdf $(INSTALL_DOC)
++	$(CP) ../README.txt $(INSTALL_DOC)/AMD_README.txt
++	chmod 755 $(INSTALL_LIB)/libamdf77.so.$(VERSION)
++
+ # uninstall AMD
+ uninstall:
+ 	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
diff --git a/SuiteSparse-config.patch b/SuiteSparse-config.patch
new file mode 100644
index 0000000..2a8d572
--- /dev/null
+++ b/SuiteSparse-config.patch
@@ -0,0 +1,124 @@
+--- SuiteSparse-5.13.0/SuiteSparse_config/SuiteSparse_config.mk.orig	2022-08-31 18:14:11.000000000 +0200
++++ SuiteSparse-5.13.0/SuiteSparse_config/SuiteSparse_config.mk	2023-09-09 18:37:07.316739831 +0200
+@@ -154,7 +154,7 @@ SUITESPARSE_VERSION = 5.13.0
+ 
+     # The CF macro is used by SuiteSparse Makefiles as a combination of
+     # CFLAGS, CPPFLAGS, TARGET_ARCH, and system-dependent settings.
+-    CF ?= $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) $(OPTIMIZATION) -fexceptions -fPIC
++    CF ?= $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -fPIC
+ 
+     #---------------------------------------------------------------------------
+     # code formatting (for Tcov on Linux only)
+@@ -217,7 +217,7 @@ SUITESPARSE_VERSION = 5.13.0
+     # A Fortran compiler is optional.  Only required for the optional Fortran
+     # interfaces to AMD and UMFPACK.  Not needed by 'make' or 'make install'
+     F77 ?= gfortran
+-    F77FLAGS ?= $(FFLAGS) $(OPTIMIZATION)
++    F77FLAGS ?= $(FFLAGS)
+ 
+     #---------------------------------------------------------------------------
+     # NVIDIA CUDA configuration for CHOLMOD and SPQR
+@@ -349,7 +349,6 @@ SUITESPARSE_VERSION = 5.13.0
+     ifeq ($(UNAME),Linux)
+         # add the posix realtime extensions library: librt
+         LDLIBS += -lrt
+-        LDFLAGS += -Wl,-rpath=$(INSTALL_LIB)
+     endif
+ 
+     #---------------------------------------------------------------------------
+@@ -469,7 +468,7 @@ else
+         SO_MAIN   = $(LIBRARY).so.$(SO_VERSION)
+         SO_TARGET = $(LIBRARY).so.$(VERSION)
+         SO_OPTS  += -shared -Wl,-soname -Wl,$(SO_MAIN) -Wl,--no-undefined \
+-                     -Wl,-rpath,'$$ORIGIN' -Wl,-z,origin
++
+         # Use rpath ORIGIN so that Linux/Unix *.so files can be moved without modification:
+         SO_INSTALL_NAME = echo
+     endif
+--- SuiteSparse/CSparse/Lib/Makefile.orig	2017-12-23 20:00:31.000000000 +0100
++++ SuiteSparse/CSparse/Lib/Makefile	2023-01-13 16:42:59.747528205 +0100
+@@ -15,7 +15,7 @@
+ # CSparse/Lib.  It does not install it for system-wide usage.
+ 
+ LIBRARY = libcsparse
+-CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O
++CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
+ 
+ I = -I../Include
+ RANLIB = ranlib
+--- SuiteSparse/CSparse/Demo/Makefile.orig	2017-12-23 20:05:19.000000000 +0100
++++ SuiteSparse/CSparse/Demo/Makefile	2023-01-13 16:43:15.587442393 +0100
+@@ -1,4 +1,4 @@
+-CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O
++CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
+ I = -I../Include
+ 
+ LDLIBS += -lm
+--- SuiteSparse-5.13.0/Makefile.orig	2022-08-31 18:14:11.000000000 +0200
++++ SuiteSparse-5.13.0/Makefile	2023-09-09 18:42:15.215071803 +0200
+@@ -16,7 +16,6 @@ include SuiteSparse_config/SuiteSparse_c
+ # installs all libraries SuiteSparse/lib.
+ go: metis
+ 	( cd SuiteSparse_config && $(MAKE) )
+-	( cd Mongoose && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
+ 	( cd AMD && $(MAKE) )
+ 	( cd BTF && $(MAKE) )
+ 	( cd CAMD && $(MAKE) )
+@@ -34,7 +33,6 @@ ifneq ($(GPU_CONFIG),)
+ 	( cd GPUQREngine && $(MAKE) )
+ endif
+ 	( cd SPQR && $(MAKE) )
+-	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' )
+ 	( cd SLIP_LU && $(MAKE) )
+ #	( cd PIRO_BAND && $(MAKE) )
+ #	( cd SKYLINE_SVD && $(MAKE) )
+@@ -44,7 +42,7 @@ endif
+ #       sudo make install INSTALL=/usr/local
+ # See SuiteSparse/README.md for more details.
+ # (note that CSparse is not installed; CXSparse is installed instead)
+-install: metisinstall gbinstall moninstall
++install: metisinstall
+ 	( cd SuiteSparse_config && $(MAKE) install )
+ 	# ( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' install )
+ 	( cd AMD && $(MAKE) install )
+@@ -126,7 +124,6 @@ endif
+ # the static library
+ library: metis
+ 	( cd SuiteSparse_config && $(MAKE) )
+-	( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
+ 	( cd AMD && $(MAKE) library )
+ 	( cd BTF && $(MAKE) library )
+ 	( cd CAMD && $(MAKE) library )
+@@ -144,7 +141,6 @@ ifneq (,$(GPU_CONFIG))
+ 	( cd GPUQREngine && $(MAKE) library )
+ endif
+ 	( cd SPQR && $(MAKE) library )
+-	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' library )
+ 	( cd SLIP_LU && $(MAKE) library )
+ #	( cd PIRO_BAND && $(MAKE) library )
+ #	( cd SKYLINE_SVD && $(MAKE) library )
+@@ -154,7 +150,6 @@ endif
+ # both the dynamic and static libraries.
+ static: metis
+ 	( cd SuiteSparse_config && $(MAKE) static )
+-	( cd Mongoose  && $(MAKE) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' static )
+ 	( cd AMD && $(MAKE) static )
+ 	( cd BTF && $(MAKE) static )
+ 	( cd CAMD && $(MAKE) static )
+@@ -172,7 +167,6 @@ ifneq (,$(GPU_CONFIG))
+ 	( cd GPUQREngine && $(MAKE) static )
+ endif
+ 	( cd SPQR && $(MAKE) static )
+-	( cd GraphBLAS && $(MAKE) JOBS=$(JOBS) CMAKE_OPTIONS='$(CMAKE_OPTIONS)' static )
+ 	( cd SLIP_LU && $(MAKE) static )
+ #	( cd PIRO_BAND && $(MAKE) static )
+ #	( cd SKYLINE_SVD && $(MAKE) static )
+@@ -233,8 +227,6 @@ clean:
+ 
+ # Create the PDF documentation
+ docs:
+-	( cd GraphBLAS && $(MAKE) docs )
+-	( cd Mongoose  && $(MAKE) docs )
+ 	( cd AMD && $(MAKE) docs )
+ 	( cd CAMD && $(MAKE) docs )
+ 	( cd KLU && $(MAKE) docs )
diff --git a/SuiteSparse-externc.patch b/SuiteSparse-externc.patch
new file mode 100644
index 0000000..0f3442c
--- /dev/null
+++ b/SuiteSparse-externc.patch
@@ -0,0 +1,593 @@
+--- SuiteSparse/SuiteSparse_config/SuiteSparse_config.h.orig	2023-01-08 20:43:25.056391141 +0100
++++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.h	2023-01-08 20:44:40.592648593 +0100
+@@ -38,13 +38,13 @@
+ #ifndef SUITESPARSE_CONFIG_H
+ #define SUITESPARSE_CONFIG_H
+ 
++#include <limits.h>
++#include <stdlib.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include <limits.h>
+-#include <stdlib.h>
+-
+ /* ========================================================================== */
+ /* === SuiteSparse_long ===================================================== */
+ /* ========================================================================== */
+--- SuiteSparse/AMD/Include/amd.h.orig	2014-03-21 20:21:57.000000000 +0100
++++ SuiteSparse/AMD/Include/amd.h	2023-01-04 20:58:16.230505798 +0100
+@@ -35,16 +35,16 @@
+ #ifndef AMD_H
+ #define AMD_H
+ 
++/* get the definition of size_t: */
++#include <stddef.h>
++
++#include "SuiteSparse_config.h"
++
+ /* make it easy for C++ programs to include AMD */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-/* get the definition of size_t: */
+-#include <stddef.h>
+-
+-#include "SuiteSparse_config.h"
+-
+ int amd_order                  /* returns AMD_OK, AMD_OK_BUT_JUMBLED,
+                                 * AMD_INVALID, or AMD_OUT_OF_MEMORY */
+ (
+--- SuiteSparse/BTF/Include/btf.h.orig	2023-01-05 21:42:08.734841990 +0100
++++ SuiteSparse/BTF/Include/btf.h	2023-01-05 21:42:11.574826604 +0100
+@@ -88,13 +88,13 @@
+ #ifndef _BTF_H
+ #define _BTF_H
+ 
++#include "SuiteSparse_config.h"
++
+ /* make it easy for C++ programs to include BTF */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include "SuiteSparse_config.h"
+-
+ int btf_maxtrans    /* returns # of columns matched */
+ (
+     /* --- input, not modified: --- */
+--- SuiteSparse/CAMD/Include/camd.h.orig	2014-03-21 20:21:51.000000000 +0100
++++ SuiteSparse/CAMD/Include/camd.h	2023-01-07 11:34:30.942879513 +0100
+@@ -23,16 +23,16 @@
+ #ifndef CAMD_H
+ #define CAMD_H
+ 
+-/* make it easy for C++ programs to include CAMD */
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ /* get the definition of size_t: */
+ #include <stddef.h>
+ 
+ #include "SuiteSparse_config.h"
+ 
++/* make it easy for C++ programs to include CAMD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ int camd_order              /* returns CAMD_OK, CAMD_OK_BUT_JUMBLED,
+                              * CAMD_INVALID, or CAMD_OUT_OF_MEMORY */
+ (
+--- SuiteSparse/CCOLAMD/Include/ccolamd.h.orig	2014-03-21 20:21:07.000000000 +0100
++++ SuiteSparse/CCOLAMD/Include/ccolamd.h	2023-01-07 14:56:06.067354598 +0100
+@@ -16,14 +16,14 @@
+ #ifndef CCOLAMD_H
+ #define CCOLAMD_H
+ 
++/* for size_t definition: */
++#include <stdlib.h>
++
+ /* make it easy for C++ programs to include CCOLAMD */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-/* for size_t definition: */
+-#include <stdlib.h>
+-
+ /* ========================================================================== */
+ /* === CCOLAMD version ====================================================== */
+ /* ========================================================================== */
+--- SuiteSparse/COLAMD/Include/colamd.h.orig	2014-03-21 20:13:38.000000000 +0100
++++ SuiteSparse/COLAMD/Include/colamd.h	2023-01-07 16:11:41.276118597 +0100
+@@ -44,17 +44,17 @@
+ #ifndef COLAMD_H
+ #define COLAMD_H
+ 
+-/* make it easy for C++ programs to include COLAMD */
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ /* ========================================================================== */
+ /* === Include files ======================================================== */
+ /* ========================================================================== */
+ 
+ #include <stdlib.h>
+ 
++/* make it easy for C++ programs to include COLAMD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* ========================================================================== */
+ /* === COLAMD version ======================================================= */
+ /* ========================================================================== */
+--- SuiteSparse/CHOLMOD/Include/cholmod_blas.h.orig	2023-01-07 17:06:54.181504381 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_blas.h	2023-01-07 17:06:58.504814293 +0100
+@@ -15,6 +15,11 @@
+ #ifndef CHOLMOD_BLAS_H
+ #define CHOLMOD_BLAS_H
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* ========================================================================== */
+ /* === Architecture ========================================================= */
+ /* ========================================================================== */
+@@ -452,4 +457,8 @@ void BLAS_ZGER (BLAS_INT *m, BLAS_INT *n
+     } \
+ }
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_camd.h.orig	2014-03-21 20:11:21.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_camd.h	2023-01-07 17:07:49.154539900 +0100
+@@ -31,6 +31,10 @@
+ 
+ #include "cholmod_core.h"
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_ccolamd */
+ /* -------------------------------------------------------------------------- */
+@@ -99,4 +103,8 @@ int cholmod_camd
+ int cholmod_l_camd (cholmod_sparse *, SuiteSparse_long *, size_t,
+     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_check.h.orig	2014-03-21 20:11:21.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_check.h	2023-01-07 17:08:22.791024342 +0100
+@@ -69,6 +69,11 @@
+ #include "cholmod_core.h"
+ #include <stdio.h>
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_check_common:  check the Common object */
+ /* -------------------------------------------------------------------------- */
+@@ -424,4 +429,9 @@ int cholmod_write_dense
+ 
+ int cholmod_l_write_dense (FILE *, cholmod_dense *, const char *,
+     cholmod_common *) ;
++
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_cholesky.h.orig	2014-06-04 21:33:21.000000000 +0200
++++ SuiteSparse/CHOLMOD/Include/cholmod_cholesky.h	2023-01-07 17:09:00.270821296 +0100
+@@ -67,6 +67,11 @@
+ #include "cholmod_supernodal.h"
+ #endif
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_analyze:  order and analyze (simplicial or supernodal) */
+ /* -------------------------------------------------------------------------- */
+@@ -584,4 +589,8 @@ SuiteSparse_long cholmod_postorder	/* re
+ SuiteSparse_long cholmod_l_postorder (SuiteSparse_long *, size_t,
+     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_core.h.orig	2015-07-15 05:18:18.000000000 +0200
++++ SuiteSparse/CHOLMOD/Include/cholmod_core.h	2023-01-08 20:50:15.337501791 +0100
+@@ -289,6 +289,11 @@
+ #define CHOLMOD_HOST_SUPERNODE_BUFFERS 8
+ #define CHOLMOD_DEVICE_STREAMS 2
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* ========================================================================== */
+ /* === CHOLMOD objects ====================================================== */
+ /* ========================================================================== */
+@@ -2447,4 +2452,8 @@ int cholmod_l_version (int version [3])
+ 
+ #endif
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_gpu.h.orig	2018-12-23 03:18:58.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_gpu.h	2023-01-16 17:36:07.886049654 +0100
+@@ -23,6 +23,11 @@
+ #endif
+ #endif
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* CHOLMOD_GPU_PRINTF: for printing GPU debug error messages */
+ /*
+ #define CHOLMOD_GPU_PRINTF(args) printf args
+@@ -77,4 +82,8 @@ void cholmod_l_gpu_end ( cholmod_common
+ int cholmod_gpu_allocate   ( cholmod_common *Common ) ;
+ int cholmod_l_gpu_allocate ( cholmod_common *Common ) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_gpu_kernels.h.orig	2014-03-23 01:15:27.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_gpu_kernels.h	2023-01-07 17:14:19.432425583 +0100
+@@ -19,13 +19,13 @@
+ #ifndef CHOLMODGPUKERNELS_H
+ #define CHOLMODGPUKERNELS_H
+ 
++#include "SuiteSparse_config.h"
++
+ /* make it easy for C++ programs to include CHOLMOD */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include "SuiteSparse_config.h"
+-
+ int createMapOnDevice ( Int *d_Map, Int *d_Ls, Int psi, Int nsrow ); 
+ 
+ int createRelativeMapOnDevice ( Int *d_Map, Int *d_Ls, Int *d_RelativeMap,
+--- SuiteSparse/CHOLMOD/Include/cholmod_matrixops.h.orig	2014-03-21 20:11:19.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_matrixops.h	2023-01-07 17:19:34.947382958 +0100
+@@ -37,6 +37,11 @@
+ 
+ #include "cholmod_core.h"
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_drop:  drop entries with small absolute value */
+ /* -------------------------------------------------------------------------- */
+@@ -234,4 +239,8 @@ int cholmod_l_symmetry (cholmod_sparse *
+     SuiteSparse_long *, SuiteSparse_long *, SuiteSparse_long *,
+     cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_modify.h.orig	2014-06-04 21:44:15.000000000 +0200
++++ SuiteSparse/CHOLMOD/Include/cholmod_modify.h	2023-01-07 17:20:07.183874985 +0100
+@@ -47,6 +47,11 @@
+ 
+ #include "cholmod_core.h"
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_updown:  multiple rank update/downdate */
+ /* -------------------------------------------------------------------------- */
+@@ -324,4 +329,8 @@ int cholmod_l_rowdel_mark (size_t, cholm
+     SuiteSparse_long *, cholmod_factor *, cholmod_dense *, cholmod_dense *,
+     cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_partition.h.orig	2014-03-21 20:11:21.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_partition.h	2023-01-07 17:20:32.837069343 +0100
+@@ -40,6 +40,11 @@
+ #include "cholmod_core.h"
+ #include "cholmod_camd.h"
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_nested_dissection */
+ /* -------------------------------------------------------------------------- */
+@@ -163,4 +168,8 @@ SuiteSparse_long cholmod_collapse_septre
+ SuiteSparse_long cholmod_l_collapse_septree (size_t, size_t, double, size_t,
+     SuiteSparse_long *, SuiteSparse_long *, cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod_supernodal.h.orig	2014-03-21 20:11:21.000000000 +0100
++++ SuiteSparse/CHOLMOD/Include/cholmod_supernodal.h	2023-01-07 17:21:07.966879028 +0100
+@@ -49,6 +49,11 @@
+ 
+ #include "cholmod_core.h"
+ 
++/* make it easy for C++ programs to include CHOLMOD */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* cholmod_super_symbolic */
+ /* -------------------------------------------------------------------------- */
+@@ -169,4 +174,8 @@ int cholmod_super_ltsolve
+ int cholmod_l_super_ltsolve (cholmod_factor *, cholmod_dense *, cholmod_dense *,
+     cholmod_common *) ;
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CHOLMOD/Include/cholmod.h.orig	2014-09-16 22:27:35.000000000 +0200
++++ SuiteSparse/CHOLMOD/Include/cholmod.h	2023-01-08 20:50:28.674096207 +0100
+@@ -75,11 +75,6 @@
+ #ifndef CHOLMOD_H
+ #define CHOLMOD_H
+ 
+-/* make it easy for C++ programs to include CHOLMOD */
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ /* assume large file support.  If problems occur, compile with -DNLARGEFILE */
+ #include "cholmod_io64.h"
+ 
+@@ -123,8 +118,4 @@ extern "C" {
+ #include "cholmod_gpu.h"
+ #endif
+ 
+-#ifdef __cplusplus
+-}
+-#endif
+-
+ #endif
+--- SuiteSparse/CSparse/Include/cs.h.orig	2017-09-12 18:46:19.000000000 +0200
++++ SuiteSparse/CSparse/Include/cs.h	2023-01-12 18:45:36.412409364 +0100
+@@ -14,6 +14,10 @@
+ #define CS_DATE "Sept 12, 2017"       /* CSparse release date */
+ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2016"
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ #ifdef MATLAB_MEX_FILE
+ #undef csi
+ #define csi mwSignedIndex
+@@ -149,4 +153,9 @@ csn *cs_ndone (csn *N, cs *C, void *w, v
+ #define CS_MARK(w,j) { w [j] = CS_FLIP (w [j]) ; }
+ #define CS_CSC(A) (A && (A->nz == -1))
+ #define CS_TRIPLET(A) (A && (A->nz >= 0))
++
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--- SuiteSparse/CXSparse/Include/cs.h.orig	2014-03-25 15:57:05.000000000 +0100
++++ SuiteSparse/CXSparse/Include/cs.h	2023-01-07 20:23:44.164190879 +0100
+@@ -14,7 +14,6 @@
+ #include <complex>
+ typedef std::complex<double> cs_complex_t ;
+ #endif
+-extern "C" {
+ #else
+ #ifndef NCOMPLEX
+ #include <complex.h>
+@@ -34,6 +33,10 @@ extern "C" {
+ #define cs_long_t_id    SuiteSparse_long_id
+ #define cs_long_t_max   SuiteSparse_long_max
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* double/int version of CXSparse */
+ /* -------------------------------------------------------------------------- */
+--- SuiteSparse/KLU/Include/klu.h.orig	2014-03-21 20:21:26.000000000 +0100
++++ SuiteSparse/KLU/Include/klu.h	2023-01-07 19:11:09.271116694 +0100
+@@ -7,15 +7,15 @@
+ #ifndef _KLU_H
+ #define _KLU_H
+ 
++#include "amd.h"
++#include "colamd.h"
++#include "btf.h"
++
+ /* make it easy for C++ programs to include KLU */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include "amd.h"
+-#include "colamd.h"
+-#include "btf.h"
+-
+ /* -------------------------------------------------------------------------- */
+ /* Symbolic object - contains the pre-ordering computed by klu_analyze */
+ /* -------------------------------------------------------------------------- */
+--- SuiteSparse/LDL/Include/ldl.h.orig	2016-05-04 22:45:33.000000000 +0200
++++ SuiteSparse/LDL/Include/ldl.h	2023-01-11 20:43:28.728830972 +0100
+@@ -38,6 +38,10 @@
+ 
+ #endif
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* ========================================================================== */
+ /* === int version ========================================================== */
+ /* ========================================================================== */
+@@ -110,3 +114,6 @@ SuiteSparse_long ldl_l_valid_matrix ( Su
+ #define LDL_SUBSUB_VERSION 6
+ #define LDL_VERSION LDL_VERSION_CODE(LDL_MAIN_VERSION,LDL_SUB_VERSION)
+ 
++#ifdef __cplusplus
++}
++#endif
+--- SuiteSparse/RBio/Include/RBio.h.orig	2014-03-21 20:22:01.000000000 +0100
++++ SuiteSparse/RBio/Include/RBio.h	2023-01-07 20:55:56.607055271 +0100
+@@ -46,10 +46,6 @@
+ 
+ #include "SuiteSparse_config.h"
+ 
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ #include <stddef.h>
+ #include <string.h>
+ #include <stdio.h>
+@@ -60,6 +56,10 @@ extern "C" {
+ #include "mex.h"
+ #endif
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* -------------------------------------------------------------------------- */
+ /* error codes */
+ /* -------------------------------------------------------------------------- */
+--- SuiteSparse/SPQR/Include/SuiteSparseQR_C.h.orig	2012-05-28 01:00:20.000000000 +0200
++++ SuiteSparse/SPQR/Include/SuiteSparseQR_C.h	2023-01-07 21:28:30.366470847 +0100
+@@ -11,7 +11,6 @@
+ /* If included by a C++ program, the Complex type is std::complex<double> */
+ #include <complex>
+ #define Complex std::complex<double>
+-extern "C" {
+ #endif
+ 
+ #include "cholmod.h"
+@@ -22,6 +21,8 @@ extern "C" {
+    size n, which the C code must then interpret as double array of size 2*n,
+    with real and imaginary parts interleaved. */
+ #define Complex double
++#else
++extern "C" {
+ #endif
+ 
+ /* ========================================================================== */
+--- SuiteSparse/SPQR/Include/SuiteSparseQR.hpp.orig	2023-01-16 17:36:42.955859665 +0100
++++ SuiteSparse/SPQR/Include/SuiteSparseQR.hpp	2023-01-16 17:37:05.512404132 +0100
+@@ -15,11 +15,8 @@
+ #include <cublas_v2.h>
+ #endif
+ #define SUITESPARSE_GPU_EXTERN_ON
+-extern "C"
+-{
+ #include "SuiteSparseQR_definitions.h"
+ #include "cholmod.h"
+-}
+ #undef SUITESPARSE_GPU_EXTERN_ON
+ 
+ // =============================================================================
+--- SuiteSparse/SPQR/Include/spqr.hpp.orig	2014-03-19 20:39:23.000000000 +0100
++++ SuiteSparse/SPQR/Include/spqr.hpp	2023-01-07 21:29:30.076147372 +0100
+@@ -1015,9 +1015,7 @@ inline Long spqr_mult (Long a, Long b, i
+ // To compile SuiteSparseQR with 64-bit BLAS, use -DBLAS64.  See also
+ // CHOLMOD/Include/cholmod_blas.h
+ 
+-extern "C" {
+ #include "cholmod_blas.h"
+-}
+ 
+ #undef CHECK_BLAS_INT
+ #undef EQ
+--- SuiteSparse/UMFPACK/Include/umfpack.h.orig	2014-03-21 20:16:08.000000000 +0100
++++ SuiteSparse/UMFPACK/Include/umfpack.h	2023-01-07 21:59:54.662929404 +0100
+@@ -22,10 +22,6 @@
+ /* Make it easy for C++ programs to include UMFPACK */
+ /* -------------------------------------------------------------------------- */
+ 
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ #include "SuiteSparse_config.h"
+ 
+ /* -------------------------------------------------------------------------- */
+@@ -42,6 +38,13 @@ extern "C" {
+ /* User-callable routines */
+ /* -------------------------------------------------------------------------- */
+ 
++/* AMD */
++#include "amd.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ /* Primary routines: */
+ #include "umfpack_symbolic.h"
+ #include "umfpack_numeric.h"
+@@ -85,9 +88,6 @@ extern "C" {
+ #include "umfpack_timer.h"
+ #include "umfpack_tictoc.h"
+ 
+-/* AMD */
+-#include "amd.h"
+-
+ /* global function pointers */
+ #include "umfpack_global.h"
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/SuiteSparse-SLIP_LU.git/commitdiff/caabd4b3a361d0b9ac616daddd8daf42526fd7c6



More information about the pld-cvs-commit mailing list