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
					Mark Olesen
				
			
				
					committed by
					
						 Adam J. Stewart
						Adam J. Stewart
					
				
			
			
				
	
			
			
			 Adam J. Stewart
						Adam J. Stewart
					
				
			
						parent
						
							dd79630464
						
					
				
				
					commit
					1c73f9d92f
				
			| @@ -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; | ||||||
|  |   | ||||||
| @@ -31,7 +31,7 @@ class Scotch(Package): | |||||||
|        partitioning, graph clustering, and sparse matrix ordering.""" |        partitioning, graph clustering, and sparse matrix ordering.""" | ||||||
|  |  | ||||||
|     homepage = "http://www.labri.fr/perso/pelegrin/scotch/" |     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" |     base_url = "http://gforge.inria.fr/frs/download.php/latestfile/298" | ||||||
|     list_url = "http://gforge.inria.fr/frs/?group_id=248" |     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') |             description='Build a shared version of the library') | ||||||
|     variant('metis', default=True, |     variant('metis', default=True, | ||||||
|             description='Build metis and parmetis wrapper libraries') |             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('flex@:2.6.1', type='build') | ||||||
|     depends_on('bison', type='build') |     depends_on('bison', type='build') | ||||||
|     depends_on('mpi', when='+mpi') |     depends_on('mpi', when='+mpi') | ||||||
|     depends_on('zlib', when='+compression') |     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 |     # NOTE: In cross-compiling environment parallel build | ||||||
|     # produces weird linker errors. |     # produces weird linker errors. | ||||||
|     parallel = False |     parallel = False | ||||||
| @@ -87,9 +92,13 @@ def configure(self): | |||||||
|             '-DCOMMON_RANDOM_FIXED_SEED', |             '-DCOMMON_RANDOM_FIXED_SEED', | ||||||
|             '-DSCOTCH_DETERMINISTIC', |             '-DSCOTCH_DETERMINISTIC', | ||||||
|             '-DSCOTCH_RENAME', |             '-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'): |         if self.spec.satisfies('platform=darwin'): | ||||||
|             cflags.extend([ |             cflags.extend([ | ||||||
|                 '-Drestrict=__restrict' |                 '-Drestrict=__restrict' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user