Hi Jon, Sorry about this breakage. I assumed that the library extensions are handled consistently across mesa. Seems like I was wrong.
Guessing that you meant to send this to the mesa-dev ? On 06/04/14 15:59, Jon TURNEY wrote: > Partially revert bba9c28 "configure: use LIB_EXT rather than hardcoded .so" > This is an interesting (and slightly messy) topic. List of all dlopen (or equivalent) users Hard-coded -------- - src/egl/drivers/dri2/egl_dri2.c *dri.so, libglapi.so.0 Both extension and version are hard-coded. - src/gbm/backends/dri/gbm_dri.c *dri.so - src/gbm/main/backend.c gbm_dri.so, gbm_gallium_drm.so GBM backends, the former is built-in into libgbm. - src/glx/dri_common.c *dri.so, libGL.so.1 Both extension and version are hard-coded. The Apple specific glx handles libGL appropriately. - src/loader/loader.c libudev.so.* Used on platforms that have libudev (i.e. linux) so we should be safe Platform aware -------------- - src/egl/main/egldriver.c egl_dri2, egl_gallium EGL backends, the former is built-in into libEGL. - src/gallium/targets/egl-static/egl_st.c st_GL, libglapi GLapi providers - the lib prefix in the latter is hard-coded. - src/mesa/main/texcompress_s3tc.c DXTN_LIBNAME Library name is correctly set to Windows and *nix. NOTE: Apple one is missing. - src/gallium/auxiliary/pipe-loader/pipe_loader.c pipe_* Only built via automake. Current users opencl, xa, gallium_gbm. - src/gallium/auxiliary/util/u_format_s3tc.c: DXTN_LIBNAME Library name is correctly set to Windows, *nix and Apple. Summary ------- - all the dri handling uses hard-coded .so library extension and could be compacted into the src/loader. - the rest seems to be on "as needed" basis and with a bug or two lurking in the code. - would be great if a brave soul could clean the remaining hard-coded mayhem. Mildly related: There are a few pieces in mesa that mention DJGPP which could be cleaned up. > Filenames passed to dlopen() don't need to use the platform's default > extension > for shared libraries. > > Using the '.so' extension when dlopen()ing DRI drivers is hardcoded into mesa > and the X server, so it should be hardcoded here in the Makefile as well. > Interesting, all the xserver modules are correctly* handled while the dri drivers are not. * Use .dll for Windows, .so otherwise (including Apple, hmmm) > A similar fix is probably also needed for gallium DRI drivers. > Currently the only gallium related part is the "compatibility symlinks" script, that is enabled only for linux. Thanks for the heads up :) > (Consider that if we were starting from scratch, perhaps we would use a custom > extension like .dri instead) > IMHO if we're starting from scratch we should use the platform specific extensions consistently but neither suggestion matter in this case :'( With that said the patch is Reviewed-by: Emil Velikov <emil.l.veli...@gmail.com> > Cc: Emil Velikov <emil.l.veli...@gmail.com> > Signed-off-by: Jon TURNEY <jon.tur...@dronecode.org.uk> > --- > src/mesa/drivers/dri/Makefile.am | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/src/mesa/drivers/dri/Makefile.am > b/src/mesa/drivers/dri/Makefile.am > index 13127f0..b66c041 100644 > --- a/src/mesa/drivers/dri/Makefile.am > +++ b/src/mesa/drivers/dri/Makefile.am > @@ -9,37 +9,37 @@ SUBDIRS+=common > if HAVE_I915_DRI > SUBDIRS += i915 > MEGADRIVERS_DEPS += i915/libi915_dri.la > -MEGADRIVERS += i915_dri.@LIB_EXT@ > +MEGADRIVERS += i915_dri.so > endif > > if HAVE_I965_DRI > SUBDIRS += i965 > MEGADRIVERS_DEPS += i965/libi965_dri.la > -MEGADRIVERS += i965_dri.@LIB_EXT@ > +MEGADRIVERS += i965_dri.so > endif > > if HAVE_NOUVEAU_DRI > SUBDIRS += nouveau > MEGADRIVERS_DEPS += nouveau/libnouveau_dri.la > -MEGADRIVERS += nouveau_vieux_dri.@LIB_EXT@ > +MEGADRIVERS += nouveau_vieux_dri.so > endif > > if HAVE_R200_DRI > SUBDIRS += r200 > MEGADRIVERS_DEPS += r200/libr200_dri.la > -MEGADRIVERS += r200_dri.@LIB_EXT@ > +MEGADRIVERS += r200_dri.so > endif > > if HAVE_RADEON_DRI > SUBDIRS += radeon > MEGADRIVERS_DEPS += radeon/libradeon_dri.la > -MEGADRIVERS += radeon_dri.@LIB_EXT@ > +MEGADRIVERS += radeon_dri.so > endif > > if HAVE_SWRAST_DRI > SUBDIRS += swrast > MEGADRIVERS_DEPS += swrast/libswrast_dri.la > -MEGADRIVERS += swrast_dri.@LIB_EXT@ > +MEGADRIVERS += swrast_dri.so > endif > > pkgconfigdir = $(libdir)/pkgconfig > @@ -51,7 +51,7 @@ driinclude_HEADERS = > $(top_srcdir)/include/GL/internal/dri_interface.h > nodist_EXTRA_mesa_dri_drivers_la_SOURCES = dummy.cpp > mesa_dri_drivers_la_SOURCES = > mesa_dri_drivers_la_LDFLAGS = \ > - -module -avoid-version -shared -no-undefined \ > + -module -avoid-version -shared -no-undefined -shrext .so \ > -Wl,-Bsymbolic \ > $(GC_SECTIONS) \ > $() > @@ -76,19 +76,19 @@ if HAVE_COMPAT_SYMLINKS > # Add a link to allow setting LD_LIBRARY_PATH/LIBGL_DRIVERS_PATH to /lib of > the build tree. > all-local: mesa_dri_drivers.la > $(AM_V_at)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); > - $(AM_V_GEN)ln -f .libs/mesa_dri_drivers.@LIB_EXT@ \ > - $(top_builddir)/$(LIB_DIR)/mesa_dri_drivers.@LIB_EXT@; > + $(AM_V_GEN)ln -f .libs/mesa_dri_drivers.so \ > + $(top_builddir)/$(LIB_DIR)/mesa_dri_drivers.so; > $(AM_V_GEN)for i in $(MEGADRIVERS); do \ > - ln -f $(top_builddir)/$(LIB_DIR)/mesa_dri_drivers.@LIB_EXT@ \ > + ln -f $(top_builddir)/$(LIB_DIR)/mesa_dri_drivers.so \ > $(top_builddir)/$(LIB_DIR)/$$i; \ > done; > endif > > # hardlink each megadriver instance, but don't actually have > -# mesa_dri_drivers.@LIB_EXT@ in the set of final installed files. > +# mesa_dri_drivers.so in the set of final installed files. > install-data-hook: > for i in $(MEGADRIVERS); do \ > - ln -f $(DESTDIR)$(dridir)/mesa_dri_drivers.@LIB_EXT@ \ > + ln -f $(DESTDIR)$(dridir)/mesa_dri_drivers.so \ > $(DESTDIR)$(dridir)/$$i; \ > done; > $(RM) -f $(DESTDIR)$(dridir)/mesa_dri_drivers.* > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev