~ruther/guix-local

6c7985408f045e3e0cbf889f1656b27cab5fd890 — Eric Bavier 11 years ago 38f0a2b
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.
M gnu-system.am => gnu-system.am +1 -0
@@ 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			\

M gnu/packages/maths.scm => gnu/packages/maths.scm +8 -8
@@ 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 @@ implemented in ANSI C, and MPI for communications.")
(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 @@ CCS = gcc
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 @@ YACC = bison -pscotchyy -y -b y
                       '("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")))))

A gnu/packages/patches/pt-scotch-build-parallelism.patch => gnu/packages/patches/pt-scotch-build-parallelism.patch +13 -0
@@ 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)

M gnu/packages/patches/scotch-test-threading.patch => gnu/packages/patches/scotch-test-threading.patch +7 -124
@@ 1,139 1,22 @@
* 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);
 }