ENH: add int64 variant to scotch (as per metis +int64) (#3536)

BUG: provide patch for scotch 6.0.4 if building non-threaded

- corresponds to issue #20179 from the scotch issue trackter
This commit is contained in:
Mark Olesen 2017-03-27 14:48:14 +02:00 committed by Adam J. Stewart
parent dd79630464
commit 1c73f9d92f
2 changed files with 22 additions and 2 deletions

View File

@ -0,0 +1,11 @@
--- scotch_6.0.4.orig/src/libscotch/common.h 2015-03-01 10:14:02.000000000 +0100
+++ scotch_6.0.4/src/libscotch/common.h 2017-03-27 13:07:18.644221999 +0200
@@ -306,6 +306,8 @@
ThreadLaunchStartFunc stafptr; /*+ Pointer to start routine +*/
ThreadLaunchJoinFunc joifptr; /*+ Pointer to join routine +*/
ThreadBarrier barrdat; /*+ Barrier data structure +*/
+#else
+ int thrdnbr; /* dummy for non-threaded */
#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
} ThreadGroupHeader;

View File

@ -31,7 +31,7 @@ class Scotch(Package):
partitioning, graph clustering, and sparse matrix ordering."""
homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz"
url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz" # noqa: E501
base_url = "http://gforge.inria.fr/frs/download.php/latestfile/298"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
@ -50,12 +50,17 @@ class Scotch(Package):
description='Build a shared version of the library')
variant('metis', default=True,
description='Build metis and parmetis wrapper libraries')
variant('int64', default=False,
description='Use int64_t for SCOTCH_Num typedef')
depends_on('flex@:2.6.1', type='build')
depends_on('bison', type='build')
depends_on('mpi', when='+mpi')
depends_on('zlib', when='+compression')
# Version-specific patches
patch('nonthreaded-6.0.4.patch', when='@6.0.4')
# NOTE: In cross-compiling environment parallel build
# produces weird linker errors.
parallel = False
@ -87,9 +92,13 @@ def configure(self):
'-DCOMMON_RANDOM_FIXED_SEED',
'-DSCOTCH_DETERMINISTIC',
'-DSCOTCH_RENAME',
'-DIDXSIZE64'
'-DIDXSIZE64', # SCOTCH_Idx typedef: indices for addressing
]
# SCOTCH_Num typedef: size of integers in arguments
if '+int64' in self.spec:
cflags.append('-DINTSIZE64')
if self.spec.satisfies('platform=darwin'):
cflags.extend([
'-Drestrict=__restrict'