dlopen(libglapi) (Re: [PATCH 08/11] confiigure: drop unused variable GBM_BACKEND_DIRS)

Pekka Paalanen ppaalanen at gmail.com
Mon Jun 22 23:31:55 PDT 2015


On Sun, 21 Jun 2015 16:03:09 +0000
Emil Velikov <emil.l.velikov at gmail.com> wrote:

> On 19/06/15 22:00, Eric Anholt wrote:

> > I find 9/10 weird -- if the DRI drivers need libglapi, why aren't they
> > just linking libglapi?
> > 
> Short version - currently they don't because of hysterical raisins, once
> we move to shared-glapi only libGL we'll add the link.
> 
> Long version - the dri modules require glapi provider. Which could be
> either one of:
> 1) the xserver glapi (no longer there since ~1.14)
> 2) libGL with static glapi
> 3) the shared glapi
> 
> Thanks to some interesting overlinking of libgbm, which itself has
> propagated to libEGL, people won't notice the issue if they're not using
> 1) or 2). So people working directly with EGL/gbm (wayland/weston folk,
> everyone writing their wayland compositor, Google with their gbm work)
> has noticed those and had the same workaround for a while. While most of
> us working with X and/or GLX did not see it.
> 
> This of course is prominent, (only?) when using dlopen(libgbm/libEGL),
> rather than linking against them.

Aaah, so this explains all the hassle with
http://cgit.freedesktop.org/wayland/weston/tree/src/compositor-drm.c?id=1.8.0#n1382

> When 1) and 2) are gone (second is on it's way out), we can add the link
> to the dri modules. Although neither helps in the case of "using old dri
> module with new loader", thus the need for the explicit dlopen().

A nice reminder of that strange piece of code in Weston.


Thanks,
pq


More information about the wayland-devel mailing list