On Fri, 2017-04-28 at 14:14 +0100, Emil Velikov wrote: > From: Emil Velikov <[email protected]> > > In the early days of Xorg and Mesa we had multiple providers of the > GLAPI. All of those were the ones responsible for dlopening the DRI > module. Hence it was perfectly fine, and actually expected, for the DRI > modules to have unresolved symbols. > > Since then we've moved the API to a separate shared library and no other > libraries provide the symbols. > > Here comes the picky part: > It's possible that one uses old Xorg (where libglx.so provides the > GLAPI) and new Mesa (with DRI modules linking against libglapi.so). > > That should still work, since the the libglx.so symbols will take > precedence over the libglapi.so ones. > > I've verified this while running 1.14 series Xorg alongside this (and > next) patch. > > It may seem a bit fragile, but that's of reasonably OK since all of the > affected Xorg versions have been EOL for years. > > The final one being the 1.14 series, which saw its final bug fix release > 1.14.7 in June 2014. > > To ensure that the binaries do not have unresolved symbols add > -no-undefined and $(LD_NO_UNDEFINED), just like we do everywhere else > throughout mesa. >
Turns out that this commit is making install to fail when libdrm is installed in /usr/local/lib. To workaround this, exporting LDFLAGS to "-L/usr/local/lib" fixes the problem. But I guess there should be a better way to fix this. > Cc: [email protected] > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98428 > Signed-off-by: Emil Velikov <[email protected]> > --- > src/gallium/targets/dri/Makefile.am | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/targets/dri/Makefile.am > b/src/gallium/targets/dri/Makefile.am > index 459459ebed2..8363406c581 100644 > --- a/src/gallium/targets/dri/Makefile.am > +++ b/src/gallium/targets/dri/Makefile.am > @@ -1,10 +1,8 @@ > include $(top_srcdir)/src/gallium/Automake.inc > > -if HAVE_ANDROID > if HAVE_SHARED_GLAPI > SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la > endif > -endif > > AM_CFLAGS = \ > -I$(top_srcdir)/src/mapi \ > @@ -31,8 +29,10 @@ gallium_dri_la_LDFLAGS = \ > -shared \ > -shrext .so \ > -module \ > + -no-undefined \ > -avoid-version \ > - $(GC_SECTIONS) > + $(GC_SECTIONS) \ > + $(LD_NO_UNDEFINED) > > if HAVE_LD_VERSION_SCRIPT > gallium_dri_la_LDFLAGS += \ _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
