gnu: Add gklib-suitesparse.
* gnu/packages/maths.scm (gklib-suitesparse): New variable. * gnu/packages/patches/gklib-suitesparse.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
9b5dbc46e6
commit
95ecbdc9b1
|
@ -1272,6 +1272,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
%D%/packages/patches/gitg-fix-positional-argument.patch \
|
||||
%D%/packages/patches/gklib-suitesparse.patch \
|
||||
%D%/packages/patches/glib-appinfo-watch.patch \
|
||||
%D%/packages/patches/glib-networking-gnutls-binding.patch \
|
||||
%D%/packages/patches/glib-skip-failing-test.patch \
|
||||
|
|
|
@ -5397,6 +5397,31 @@ matrix with which the LU factorization becomes sparser. It is a variant of
|
|||
COLAMD which has the the option to apply constraints to the ordering.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public gklib-suitesparse
|
||||
(package/inherit gklib
|
||||
(name "gklib-suitesparse")
|
||||
(source (origin
|
||||
(inherit (package-source gklib))
|
||||
(patches (cons
|
||||
(search-patch
|
||||
"gklib-suitesparse.patch")
|
||||
(origin-patches (package-source gklib))))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments gklib)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'patch-cmake
|
||||
(lambda _
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("add_library\\(GKlib.*" all)
|
||||
(string-append
|
||||
all
|
||||
"target_link_libraries(GKlib PUBLIC"
|
||||
" ${SUITESPARSE_CONFIG_LIBRARIES} m)\n")))))))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs gklib)
|
||||
(prepend suitesparse-config)))))
|
||||
|
||||
(define-public suitesparse
|
||||
(package
|
||||
(name "suitesparse")
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
This patch contains the relevant changes to GKlib made in SuiteSparse
|
||||
(CHOLMOD) for the version 7.2.0
|
||||
(https://github.com/DrTimothyAldenDavis/SuiteSparse/commit/8a7641cdb4809533c681417e94f98058c07c5da2).
|
||||
The disabling of signal handling when MATLAB_MEX_FILE is defined is omitted.
|
||||
|
||||
diff -ur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF)
|
||||
|
||||
+find_package ( SuiteSparse_config 7.1.0 REQUIRED )
|
||||
+
|
||||
get_filename_component(abs "." ABSOLUTE)
|
||||
set(GKLIB_PATH ${abs})
|
||||
unset(abs)
|
||||
diff -ur a/GKlib.h b/GKlib.h
|
||||
--- a/GKlib.h
|
||||
+++ b/GKlib.h
|
||||
@@ -59,6 +59,24 @@
|
||||
#include <omp.h>
|
||||
#endif
|
||||
|
||||
+/* -------------------------------------------------------------------------- */
|
||||
+/* Added for incorporation into SuiteSparse.
|
||||
+ Tim Davis, Oct 31, 2022, Texas A&M University. */
|
||||
+#include "SuiteSparse_config.h"
|
||||
+#define malloc SuiteSparse_config_malloc
|
||||
+#define calloc SuiteSparse_config_calloc
|
||||
+#define realloc SuiteSparse_config_realloc
|
||||
+#define free(p) \
|
||||
+{ \
|
||||
+ if ((p) != NULL) \
|
||||
+ { \
|
||||
+ SuiteSparse_config_free (p) ; \
|
||||
+ (p) = NULL ; \
|
||||
+ } \
|
||||
+}
|
||||
+
|
||||
+/* -------------------------------------------------------------------------- */
|
||||
+
|
||||
|
||||
|
||||
|
||||
diff -ur a/memory.c b/memory.c
|
||||
--- a/memory.c
|
||||
+++ b/memory.c
|
||||
@@ -108,6 +108,8 @@
|
||||
/*************************************************************************/
|
||||
int gk_malloc_init()
|
||||
{
|
||||
+ gkmcore = NULL;
|
||||
+#if 0
|
||||
if (gkmcore == NULL)
|
||||
gkmcore = gk_gkmcoreCreate();
|
||||
|
||||
@@ -115,6 +117,7 @@
|
||||
return 0;
|
||||
|
||||
gk_gkmcorePush(gkmcore);
|
||||
+#endif
|
||||
|
||||
return 1;
|
||||
}
|
Reference in New Issue