CUDA package: exclude compat libs (#11449)

CUDA 10.0 provides Compatability libraries for running newer versions
of CUDA with older drivers. These do not work with newer drivers.
This commit is contained in:
Peter Scheibel 2019-05-15 04:59:12 +09:00 committed by GitHub
parent a5cf50df2e
commit c54f23d405
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,8 @@
from spack import * from spack import *
from glob import glob from glob import glob
from llnl.util.filesystem import LibraryList
import os
class Cuda(Package): class Cuda(Package):
@ -58,3 +60,22 @@ def install(self, spec, prefix):
'--toolkit', # install CUDA Toolkit '--toolkit', # install CUDA Toolkit
'--toolkitpath=%s' % prefix '--toolkitpath=%s' % prefix
) )
@property
def libs(self):
prefix = self.prefix
search_paths = [(prefix.lib, False), (prefix.lib64, False),
(prefix, True)]
for search_root, recursive in search_paths:
libs = find_libraries(
'libcuda', root=search_root, shared=True, recursive=recursive)
if libs:
break
filtered_libs = []
# CUDA 10.0 provides Compatability libraries for running newer versions
# of CUDA with older drivers. These do not work with newer drivers.
for lib in libs:
if 'compat' not in lib.split(os.sep):
filtered_libs.append(lib)
return LibraryList(filtered_libs)