diff --git a/lib/gamemode_client.h b/lib/gamemode_client.h index 465da5b..83971b7 100644 --- a/lib/gamemode_client.h +++ b/lib/gamemode_client.h @@ -154,12 +154,18 @@ __attribute__((always_inline)) static inline int internal_load_libgamemode(void) /* Try and load libgamemode */ libgamemode = dlopen("libgamemode.so.0", RTLD_NOW); if (!libgamemode) { - snprintf(internal_gamemode_client_error_string, - sizeof(internal_gamemode_client_error_string), - "dylopen failed - %s", - dlerror()); - internal_libgamemode_loaded = -1; - return -1; + /* Attempt to load unversioned library for compatibility with older + * versions (as of writing, there are no ABI changes between the two - + * this may need to change if ever ABI-breaking changes are made) */ + libgamemode = dlopen("libgamemode.so", RTLD_NOW); + if (!libgamemode) { + snprintf(internal_gamemode_client_error_string, + sizeof(internal_gamemode_client_error_string), + "dlopen failed - %s", + dlerror()); + internal_libgamemode_loaded = -1; + return -1; + } } /* Attempt to bind all symbols */