Skip to content

Commit

Permalink
x11vulkan: Use the correct SONAME of libX11-xcb.so.1 on Linux, etc.
Browse files Browse the repository at this point in the history
On most Unix platforms supported by SDL, the canonical name used to load
a library at runtime includes its ABI major version, and the name
without a version is not guaranteed to exist on non-developer systems.
libX11-xcb.so.1 is correct on Linux, and probably on other Unix
platforms like FreeBSD.

A notable exception is OpenBSD, which apparently does not use
ABI-suffixed names, so continue to use libX11-xcb.so there.

Signed-off-by: Simon McVittie <[email protected]>
(cherry picked from commit 7713a7e)
(cherry picked from commit 54757c2)
  • Loading branch information
smcv authored and slouken committed Sep 9, 2024
1 parent 1df907b commit 38d3b1b
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/video/x11/SDL_x11vulkan.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@

#if defined(__OpenBSD__)
#define DEFAULT_VULKAN "libvulkan.so"
#define DEFAULT_X11_XCB "libX11-xcb.so"
#else
#define DEFAULT_VULKAN "libvulkan.so.1"
#define DEFAULT_X11_XCB "libX11-xcb.so.1"
#endif

/*
Expand Down Expand Up @@ -108,7 +110,7 @@ int X11_Vulkan_LoadLibrary(_THIS, const char *path)
} else {
const char *libX11XCBLibraryName = SDL_getenv("SDL_X11_XCB_LIBRARY");
if (!libX11XCBLibraryName) {
libX11XCBLibraryName = "libX11-xcb.so";
libX11XCBLibraryName = DEFAULT_X11_XCB;
}
videoData->vulkan_xlib_xcb_library = SDL_LoadObject(libX11XCBLibraryName);
if (!videoData->vulkan_xlib_xcb_library) {
Expand Down

0 comments on commit 38d3b1b

Please sign in to comment.