diff --git a/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_linux.py b/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_linux.py index 4bce75d109c..10a92c20830 100644 --- a/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_linux.py +++ b/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_linux.py @@ -164,8 +164,6 @@ def load_with_system_search(desc: LibDescriptor) -> LoadedDL | None: Returns: A LoadedDL object if successful, None if the library cannot be loaded - Raises: - RuntimeError: If the library is loaded but no expected symbol is found """ for soname in _candidate_sonames(desc): try: @@ -174,8 +172,7 @@ def load_with_system_search(desc: LibDescriptor) -> LoadedDL | None: pass else: abs_path = abs_path_for_dynamic_library(desc.name, handle) - if abs_path is None: - raise RuntimeError(f"No expected symbol for libname={desc.name!r}") + assert abs_path return LoadedDL(abs_path, False, handle._handle, "system-search") return None diff --git a/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_windows.py b/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_windows.py index a296813aa29..5069a624790 100644 --- a/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_windows.py +++ b/cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_dl_windows.py @@ -69,11 +69,10 @@ def add_dll_directory(dll_abs_path: str) -> None: dirpath = os.path.dirname(dll_abs_path) assert os.path.isdir(dirpath), dll_abs_path - # Add the DLL directory to the search path - result = kernel32.AddDllDirectory(dirpath) - if not result: - # Fallback: just update PATH if AddDllDirectory fails - pass + # Add the DLL directory to the native search path. AddDllDirectory only + # affects the LOAD_LIBRARY_SEARCH_USER_DIRS search; PATH is updated + # unconditionally below to also cover legacy dependent-DLL resolution. + kernel32.AddDllDirectory(dirpath) # Update PATH as a fallback for dependent DLL resolution curr_path = os.environ.get("PATH")