autogen: try/except in try_dlopen (#13094)

* autogen: try/except in try_dlopen

* ugh
This commit is contained in:
nimlgen
2025-11-04 22:51:53 +08:00
committed by GitHub
parent eaf7cbc178
commit c857dc5af0
4 changed files with 15 additions and 7 deletions

View File

@@ -31,7 +31,9 @@ $(for p in "$@"; do echo " $p,"; done)
]
def _try_dlopen_$name():
library = ctypes.util.find_library("$name")
if library: return ctypes.CDLL(library)
if library:
try: return ctypes.CDLL(library)
except OSError: pass
for candidate in PATHS_TO_TRY:
try: return ctypes.CDLL(candidate)
except OSError: pass
@@ -436,7 +438,7 @@ generate_sqtt() {
fixup $BASE/rocprof.py
sed -i '1s/^/# pylint: skip-file\n/' $BASE/rocprof.py
sed -i "s/import ctypes/import ctypes, ctypes.util/g" $BASE/rocprof.py
patch_dlopen $BASE/rocprof.py rocprof-trace-decoder "'/usr/local/lib/rocprof-trace-decoder.so'" "'/usr/local/lib/rocprof-trace-decoder.dylib'"
patch_dlopen $BASE/rocprof.py rocprof-trace-decoder "'/usr/local/lib/librocprof-trace-decoder.so'" "'/usr/local/lib/librocprof-trace-decoder.dylib'"
sed -i "s/def _try_dlopen_rocprof-trace-decoder():/def _try_dlopen_rocprof_trace_decoder():/g" $BASE/rocprof.py
sed -i "s|FunctionFactoryStub()|_try_dlopen_rocprof_trace_decoder()|g" $BASE/rocprof.py
}

View File

@@ -15,7 +15,9 @@ PATHS_TO_TRY = [
]
def _try_dlopen_amd_comgr():
library = ctypes.util.find_library("amd_comgr")
if library: return ctypes.CDLL(library)
if library:
try: return ctypes.CDLL(library)
except OSError: pass
for candidate in PATHS_TO_TRY:
try: return ctypes.CDLL(candidate)
except OSError: pass

View File

@@ -15,7 +15,9 @@ PATHS_TO_TRY = [
]
def _try_dlopen_tinymesa_cpu():
library = ctypes.util.find_library("tinymesa_cpu")
if library: return ctypes.CDLL(library)
if library:
try: return ctypes.CDLL(library)
except OSError: pass
for candidate in PATHS_TO_TRY:
try: return ctypes.CDLL(candidate)
except OSError: pass

View File

@@ -9,12 +9,14 @@
#
import ctypes, ctypes.util
PATHS_TO_TRY = [
'/usr/local/lib/rocprof-trace-decoder.so',
'/usr/local/lib/rocprof-trace-decoder.dylib',
'/usr/local/lib/librocprof-trace-decoder.so',
'/usr/local/lib/librocprof-trace-decoder.dylib',
]
def _try_dlopen_rocprof_trace_decoder():
library = ctypes.util.find_library("rocprof-trace-decoder")
if library: return ctypes.CDLL(library)
if library:
try: return ctypes.CDLL(library)
except OSError: pass
for candidate in PATHS_TO_TRY:
try: return ctypes.CDLL(candidate)
except OSError: pass