summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Henigman <fjhenigman@chromium.org>2014-11-06 16:29:26 -0500
committerEmil Velikov <emil.l.velikov@gmail.com>2015-06-25 15:17:02 +0100
commit0db9835d3ba3f84f601e7a60e1f1590400788b36 (patch)
tree8832e0658dfa785aec5129728143493709b092de
parentca079a77f92b8d60aa17a611ad93c92e840ed09f (diff)
downloadmesa-0db9835d3ba3f84f601e7a60e1f1590400788b36.tar.gz
gbm: dlopen libglapi so gbm_create_device works
Dri driver libs are not linked to pull in libglapi so gbm_create_device() fails when it tries to dlopen them (unless the application is linked with something that does pull in libglapi, like libGL). Until dri drivers can be fixed properly, dlopen libglapi before trying to dlopen them. Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org> Signed-off-by: Frank Henigman <fjhenigman@google.com> [Emil Velikov: Drop misleading bugzilla link, mention that libname differs] Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> (cherry picked from commit 828f13330c9384f2b55c8b0f962d93a74ecd0601)
-rw-r--r--src/gbm/backends/dri/gbm_dri.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
index 62bdf891d57..ccc3cc6930f 100644
--- a/src/gbm/backends/dri/gbm_dri.c
+++ b/src/gbm/backends/dri/gbm_dri.c
@@ -311,6 +311,14 @@ dri_open_driver(struct gbm_dri_device *dri)
if (search_paths == NULL)
search_paths = DEFAULT_DRIVER_DIR;
+ /* Temporarily work around dri driver libs that need symbols in libglapi
+ * but don't automatically link it in.
+ */
+ /* XXX: Library name differs on per platforms basis. Update this as
+ * osx/cygwin/windows/bsd gets support for GBM..
+ */
+ dlopen("libglapi.so.0", RTLD_LAZY | RTLD_GLOBAL);
+
dri->driver = NULL;
end = search_paths + strlen(search_paths);
for (p = search_paths; p < end && dri->driver == NULL; p = next + 1) {