From 1c73f9d92f15b1613041af5e8064e3c25b1104df Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 27 Mar 2017 14:48:14 +0200 Subject: 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 --- .../repos/builtin/packages/scotch/nonthreaded-6.0.4.patch | 11 +++++++++++ var/spack/repos/builtin/packages/scotch/package.py | 13 +++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin/packages/scotch/nonthreaded-6.0.4.patch diff --git a/var/spack/repos/builtin/packages/scotch/nonthreaded-6.0.4.patch b/var/spack/repos/builtin/packages/scotch/nonthreaded-6.0.4.patch new file mode 100644 index 0000000000..89d17e253e --- /dev/null +++ b/var/spack/repos/builtin/packages/scotch/nonthreaded-6.0.4.patch @@ -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; + diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py index f164037efa..b878349485 100644 --- a/var/spack/repos/builtin/packages/scotch/package.py +++ b/var/spack/repos/builtin/packages/scotch/package.py @@ -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 @@ class Scotch(Package): '-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' -- cgit v1.2.3-60-g2f50