diff options
-rwxr-xr-x | proton | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -148,10 +148,20 @@ def try_get_game_library_dir(): # # On failure, returns None def find_nvidia_wine_dll_dir(): - libdl = CDLL(find_library("libdl")) - libglx_nvidia = CDLL("libGLX_nvidia.so.0") + try: + libdl_soname = find_library("dl") + + # If we couldn't determine the proper soname for libdl, bail out. + if libdl_soname is None: + return None + + libdl = CDLL(libdl_soname) + except (FileNotFoundError, OSError): + return None - if libdl is None or libglx_nvidia is None: + try: + libglx_nvidia = CDLL("libGLX_nvidia.so.0") + except OSError: return None # from dlinfo(3) |