From c54f23d405bf468e348ebba7e6ded48dc9a8ff9b Mon Sep 17 00:00:00 2001
From: Peter Scheibel <scheibel1@llnl.gov>
Date: Wed, 15 May 2019 04:59:12 +0900
Subject: [PATCH] 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.
---
 .../repos/builtin/packages/cuda/package.py    | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
index 3e4316b7af..2ad654bbc0 100644
--- a/var/spack/repos/builtin/packages/cuda/package.py
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -5,6 +5,8 @@
 
 from spack import *
 from glob import glob
+from llnl.util.filesystem import LibraryList
+import os
 
 
 class Cuda(Package):
@@ -58,3 +60,22 @@ def install(self, spec, prefix):
             '--toolkit',        # install CUDA Toolkit
             '--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)
-- 
GitLab