[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