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.
This commit is contained in:
Eric Bavier 2015-01-10 01:02:46 -06:00
parent 38f0a2bade
commit 6c7985408f
4 changed files with 29 additions and 132 deletions

View File

@ -550,6 +550,7 @@ dist_patch_DATA = \
gnu/packages/patches/polkit-drop-test.patch \ gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \ gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/procps-make-3.82.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-fix-mult-test.patch \
gnu/packages/patches/pulseaudio-longer-test-timeout.patch \ gnu/packages/patches/pulseaudio-longer-test-timeout.patch \
gnu/packages/patches/pycairo-wscript.patch \ gnu/packages/patches/pycairo-wscript.patch \

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 John Darrington <jmd@gnu.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 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org> ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
@ -785,15 +785,16 @@ implemented in ANSI C, and MPI for communications.")
(define-public scotch (define-public scotch
(package (package
(name "scotch") (name "scotch")
(version "6.0.0") (version "6.0.4")
(source (source
(origin (origin
(method url-fetch) (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")) "scotch_" version ".tar.gz"))
(sha256 (sha256
(base32 "0yfqf9lk7chb3h42777x42x4adx0v3n0b41q0cdqrdmscp4iczp5")) (base32 "1ir088mvrqggyqdkx9qfynmiaffqbyih5qfl5mga2nrlm1qlsgzm"))
(patches (list (search-patch "scotch-test-threading.patch"))))) (patches (list (search-patch "scotch-test-threading.patch")
(search-patch "pt-scotch-build-parallelism.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("zlib" ,zlib) `(("zlib" ,zlib)
@ -820,7 +821,7 @@ CCS = gcc
CCP = mpicc CCP = mpicc
CCD = gcc CCD = gcc
CPPFLAGS =~{ -D~a~} CPPFLAGS =~{ -D~a~}
CFLAGS = -O2 -g $(CPPFLAGS) CFLAGS = -O2 -g -fPIC $(CPPFLAGS)
LDFLAGS = -lz -lm -lrt -lpthread LDFLAGS = -lz -lm -lrt -lpthread
CP = cp CP = cp
LEX = flex -Pscotchyy -olex.yy.c LEX = flex -Pscotchyy -olex.yy.c
@ -833,8 +834,7 @@ YACC = bison -pscotchyy -y -b y
'("COMMON_FILE_COMPRESS_GZ" '("COMMON_FILE_COMPRESS_GZ"
"COMMON_PTHREAD" "COMMON_PTHREAD"
"COMMON_RANDOM_FIXED_SEED" "COMMON_RANDOM_FIXED_SEED"
;; TODO: Define once our MPI supports ;; XXX: Causes invalid frees in superlu-dist tests
;; MPI_THREAD_MULTIPLE
;; "SCOTCH_PTHREAD" ;; "SCOTCH_PTHREAD"
;; "SCOTCH_PTHREAD_NUMBER=2" ;; "SCOTCH_PTHREAD_NUMBER=2"
"restrict=__restrict"))))) "restrict=__restrict")))))

View File

@ -0,0 +1,13 @@
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)

View File

@ -1,139 +1,22 @@
* These tests assume threading support, even when the library is compiled Fix this test so that it succeeds when the library is not compiled with
without it. Protect these checks. SCOTCH_PTHREAD.
* Tests should not require keyboard interaction. --- 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
--- 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 */
/*********************/
/* */
@@ -175,14 +175,14 @@ @@ -175,14 +175,14 @@
char * argv[]) char * argv[])
{ {
TestThreadGroup groudat; TestThreadGroup groudat;
-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) -#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
+#ifdef SCOTCH_PTHREAD +#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD))
TestThread * restrict thrdtab; TestThread * restrict thrdtab;
int thrdnbr; int thrdnbr;
-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */ #endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
+#endif /* SCOTCH_PTHREAD */
SCOTCH_errorProg (argv[0]); SCOTCH_errorProg (argv[0]);
-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) -#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
+#ifdef SCOTCH_PTHREAD +#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD))
thrdnbr = SCOTCH_PTHREAD_NUMBER; thrdnbr = SCOTCH_PTHREAD_NUMBER;
groudat.redusum = COMPVAL (thrdnbr); 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);
}