Fix libGL not being found on NetBSD

Fixes #646.
master
Camilla Berglund ago%!(EXTRA string=10 years)
parent 9ac9c61433
commit 486354d63f
  1. 1
      README.md
  2. 21
      src/glx_context.c

@ -82,6 +82,7 @@ used by the tests and examples and are not required to build the library.
- [WGL] Removed dependency on external WGL headers - [WGL] Removed dependency on external WGL headers
- [GLX] Replaced legacy renderable with `GLXWindow` - [GLX] Replaced legacy renderable with `GLXWindow`
- [GLX] Removed dependency on external GLX headers - [GLX] Removed dependency on external GLX headers
- [GLX] Bugfix: NetBSD does not provide `libGL.so.1`
- [EGL] Removed dependency on external EGL headers - [EGL] Removed dependency on external EGL headers

@ -152,19 +152,32 @@ static GLXContext createLegacyContext(_GLFWwindow* window,
// //
int _glfwInitContextAPI(void) int _glfwInitContextAPI(void)
{ {
int i;
const char* sonames[] =
{
#if defined(__CYGWIN__) #if defined(__CYGWIN__)
const char* soname = "libGL-1.so"; "libGL-1.so",
#else #else
const char* soname = "libGL.so.1"; "libGL.so.1",
"libGL.so",
#endif #endif
NULL
};
if (!_glfwCreateContextTLS()) if (!_glfwCreateContextTLS())
return GLFW_FALSE; return GLFW_FALSE;
_glfw.glx.handle = dlopen(soname, RTLD_LAZY | RTLD_GLOBAL); for (i = 0; sonames[i]; i++)
{
_glfw.glx.handle = dlopen(sonames[i], RTLD_LAZY | RTLD_GLOBAL);
if (_glfw.glx.handle)
break;
}
if (!_glfw.glx.handle) if (!_glfw.glx.handle)
{ {
_glfwInputError(GLFW_API_UNAVAILABLE, "GLX: %s", dlerror()); _glfwInputError(GLFW_API_UNAVAILABLE, "GLX: Failed to load GLX");
return GLFW_FALSE; return GLFW_FALSE;
} }

Loading…
Cancel
Save