upcxx package: Add resilience to broken libfabric (#44618)

Some systems have a libfabric install that doesn't work, so don't
drop dead if a call to `fi_info` fails (e.g. due to missing shared libraries)
This commit is contained in:
Dan Bonachea 2024-06-18 21:10:04 -04:00 committed by GitHub
parent 6b052c3af9
commit 3b78515fd4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,12 +9,14 @@
from spack.package import *
@llnl.util.lang.memoized
def is_CrayXC():
return spack.platforms.host().name == "linux" and (
os.environ.get("CRAYPE_NETWORK_TARGET") == "aries"
)
@llnl.util.lang.memoized
def is_CrayEX():
if spack.platforms.host().name == "linux":
target = os.environ.get("CRAYPE_NETWORK_TARGET")
@ -22,11 +24,15 @@ def is_CrayEX():
return True
elif target is None: # but some systems lack Cray PrgEnv
fi_info = which("fi_info")
if fi_info and fi_info("-l", output=str).find("cxi") >= 0:
if (
fi_info
and fi_info("-l", output=str, error=str, fail_on_error=False).find("cxi") >= 0
):
return True
return False
@llnl.util.lang.memoized
def cross_detect():
if is_CrayXC():
if which("srun"):