Skip to content
Snippets Groups Projects
Commit 6c798540 authored by Eric Bavier's avatar Eric Bavier
Browse files

gnu: Update scotch to 6.0.4.

* gnu/packages/maths.scm (scotch): Update to 6.0.4.
  [arguments]: Add -fPIC to CFLAGS.
* gnu/packages/patches/scotch-test-threading.patch: Adjust patch for a
  new set of test fixes.
* gnu/packages/patches/pt-scotch-build-parallelism.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
parent 38f0a2ba
No related branches found
No related tags found
No related merge requests found
......@@ -550,6 +550,7 @@ dist_patch_DATA = \
gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/procps-make-3.82.patch \
gnu/packages/patches/pt-scotch-build-parallelism.patch \
gnu/packages/patches/pulseaudio-fix-mult-test.patch \
gnu/packages/patches/pulseaudio-longer-test-timeout.patch \
gnu/packages/patches/pycairo-wscript.patch \
......
......@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
......@@ -785,15 +785,16 @@ (define-public superlu-dist
(define-public scotch
(package
(name "scotch")
(version "6.0.0")
(version "6.0.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/31831/"
(uri (string-append "https://gforge.inria.fr/frs/download.php/34618/"
"scotch_" version ".tar.gz"))
(sha256
(base32 "0yfqf9lk7chb3h42777x42x4adx0v3n0b41q0cdqrdmscp4iczp5"))
(patches (list (search-patch "scotch-test-threading.patch")))))
(base32 "1ir088mvrqggyqdkx9qfynmiaffqbyih5qfl5mga2nrlm1qlsgzm"))
(patches (list (search-patch "scotch-test-threading.patch")
(search-patch "pt-scotch-build-parallelism.patch")))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
......@@ -820,7 +821,7 @@ (define-public scotch
CCP = mpicc
CCD = gcc
CPPFLAGS =~{ -D~a~}
CFLAGS = -O2 -g $(CPPFLAGS)
CFLAGS = -O2 -g -fPIC $(CPPFLAGS)
LDFLAGS = -lz -lm -lrt -lpthread
CP = cp
LEX = flex -Pscotchyy -olex.yy.c
......@@ -833,8 +834,7 @@ (define-public scotch
'("COMMON_FILE_COMPRESS_GZ"
"COMMON_PTHREAD"
"COMMON_RANDOM_FIXED_SEED"
;; TODO: Define once our MPI supports
;; MPI_THREAD_MULTIPLE
;; XXX: Causes invalid frees in superlu-dist tests
;; "SCOTCH_PTHREAD"
;; "SCOTCH_PTHREAD_NUMBER=2"
"restrict=__restrict")))))
......
Building with -j may cause the esmumps_main target to fail with a "no rule for
dependency libptesmumps.a" error. Fix the dependency name.
--- scotch_6.0.4/src/esmumps/Makefile 2012-12-01 08:29:29.000000000 -0600
+++ scotch_6.0.4/src/esmumps/Makefile 2015-06-15 17:29:23.279605734 -0500
@@ -160,6 +160,6 @@
order.h \
symbol.h \
esmumps.h \
- lib$(ESMUMPSLIB)$(LIB) \
+ libesmumps$(LIB) \
$(libdir)/lib$(SCOTCHLIB)$(LIB) \
$(libdir)/lib$(SCOTCHLIB)errexit$(LIB)
* These tests assume threading support, even when the library is compiled
without it. Protect these checks.
Fix this test so that it succeeds when the library is not compiled with
SCOTCH_PTHREAD.
* Tests should not require keyboard interaction.
--- a/src/check/test_scotch_dgraph_band.c 2012-09-27 10:46:42.000000000 -0500
+++ b/src/check/test_scotch_dgraph_band.c 2014-05-13 14:36:07.479270243 -0500
@@ -99,10 +99,12 @@
errorPrint ("main: Cannot initialize (1)");
exit (1);
}
+#ifdef SCOTCH_PTHREAD
if (thrdlvlreqval > thrdlvlproval) {
errorPrint ("main: Cannot initialize (2)");
exit (1);
}
+#endif
if (argc != 2) {
errorPrint ("main: invalid number of parameters");
@@ -115,12 +117,14 @@
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
+#ifdef SCOTCH_DEBUG_CHECK2
if (proclocnum == 0) { /* Synchronize on keybord input */
char c;
printf ("Waiting for key press...\n");
scanf ("%c", &c);
}
+#endif /* SCOTCH_DEBUG_CHECK2 */
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
errorPrint ("main: cannot communicate");
--- a/src/check/test_scotch_dgraph_grow.c 2012-11-30 12:19:33.000000000 -0600
+++ b/src/check/test_scotch_dgraph_grow.c 2014-05-13 14:35:31.307269303 -0500
@@ -103,10 +103,12 @@
errorPrint ("main: Cannot initialize (1)");
exit (1);
}
+#ifdef SCOTCH_PTHREAD
if (thrdlvlreqval > thrdlvlproval) {
errorPrint ("main: Cannot initialize (2)");
exit (1);
}
+#endif
if (argc != 2) {
errorPrint ("main: invalid number of parameters");
@@ -119,12 +121,14 @@
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
+#ifdef SCOTCH_DEBUG_CHECK2
if (proclocnum == 0) { /* Synchronize on keybord input */
char c;
printf ("Waiting for key press...\n");
scanf ("%c", &c);
}
+#endif /* SCOTCH_DEBUG_CHECK2 */
if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */
errorPrint ("main: cannot communicate");
--- a/src/check/test_scotch_dgraph_redist.c 2012-09-26 11:42:27.000000000 -0500
+++ b/src/check/test_scotch_dgraph_redist.c 2014-05-13 14:34:30.323267722 -0500
@@ -98,10 +98,12 @@
errorPrint ("main: Cannot initialize (1)");
exit (1);
}
+#ifdef SCOTCH_PTHREAD
if (thrdlvlreqval > thrdlvlproval) {
errorPrint ("main: Cannot initialize (2)");
exit (1);
}
+#endif
if (argc != 2) {
errorPrint ("main: invalid number of parameters");
@@ -114,7 +116,6 @@
fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
-#define SCOTCH_DEBUG_CHECK2
#ifdef SCOTCH_DEBUG_CHECK2
if (proclocnum == 0) { /* Synchronize on keybord input */
char c;
--- /tmp/nix-build-scotch-6.0.0.drv-9/scotch_6.0.0/src/check/test_common_thread.c 2012-11-30 11:05:23.000000000 -0600
+++ scotch_6.0.0/src/check/test_common_thread.c 2014-05-13 17:26:27.159535244 -0500
@@ -90,7 +90,7 @@
/* */
/*************************/
-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
+#ifdef SCOTCH_PTHREAD
static
void
@@ -161,7 +161,7 @@
return (o);
}
-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
+#endif /* SCOTCH_PTHREAD */
/*********************/
/* */
--- scotch_6.0.4/src/check/test_common_thread.c 2014-09-28 11:39:59.000000000 -0500
+++ scotch_6.0.4/src/check/test_common_thread.c 2015-01-10 00:52:00.076229542 -0600
@@ -175,14 +175,14 @@
char * argv[])
{
TestThreadGroup groudat;
-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
+#ifdef SCOTCH_PTHREAD
+#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD))
TestThread * restrict thrdtab;
int thrdnbr;
-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
+#endif /* SCOTCH_PTHREAD */
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
SCOTCH_errorProg (argv[0]);
-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
+#ifdef SCOTCH_PTHREAD
+#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD))
thrdnbr = SCOTCH_PTHREAD_NUMBER;
groudat.redusum = COMPVAL (thrdnbr);
@@ -197,9 +197,9 @@
errorPrint ("main: cannot launch or run threads");
return (1);
}
-#else /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
- printf ("Scotch not compiled with either COMMON_PTHREAD or SCOTCH_PTHREAD\n");
-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
+#else /* not SCOTCH_PTHREAD */
+ printf ("Scotch not compiled with SCOTCH_PTHREAD\n");
+#endif /* not SCOTCH_PTHREAD */
return (0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment