summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/rocsolver/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/rocsolver/package.py')
-rw-r--r--var/spack/repos/builtin/packages/rocsolver/package.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py
index 4cc1e485eb..404adac95d 100644
--- a/var/spack/repos/builtin/packages/rocsolver/package.py
+++ b/var/spack/repos/builtin/packages/rocsolver/package.py
@@ -36,6 +36,11 @@ class Rocsolver(CMakePackage):
size and compile time by adding specialized kernels \
for small matrix sizes",
)
+ variant("asan", default=False, description="Build with address-sanitizer enabled or disabled")
+
+ conflicts("+asan", when="os=rhel9")
+ conflicts("+asan", when="os=centos7")
+ conflicts("+asan", when="os=centos8")
license("BSD-2-Clause")
@@ -138,6 +143,13 @@ class Rocsolver(CMakePackage):
def setup_build_environment(self, env):
env.set("CXX", self.spec["hip"].hipcc)
+ if self.spec.satisfies("+asan"):
+ env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang")
+ env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++")
+ env.set("ASAN_OPTIONS", "detect_leaks=0")
+ env.set("CFLAGS", "-fsanitize=address -shared-libasan")
+ env.set("CXXFLAGS", "-fsanitize=address -shared-libasan")
+ env.set("LDFLAGS", "-fuse-ld=lld")
@run_after("build")
@on_package_attributes(run_tests=True)