Evidently at least static OSMesa is still used as shared one causes substantial increase in the load time for some programs that use it (from seconds up-to ~30min).
Rather than forcing everyone to use shared mesa, revert commit a6efbac9fb502c4f0166e7a0680b6828e1f6926c and default to shared build when both shared and static are disabled. Reported-by: Burlen Loring <burlen.lor...@gmail.com> --- configure.ac | 30 +++++++++++++++++++++++------- install-gallium-links.mk | 2 ++ install-lib-links.mk | 2 ++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 1e5e496..39330cf 100644 --- a/configure.ac +++ b/configure.ac @@ -284,15 +284,18 @@ dnl Can't have static and shared libraries, default to static if user dnl explicitly requested. If both disabled, set to static since shared dnl was explicitly requested. case "x$enable_static$enable_shared" in -xnoyes ) +xyesyes ) + AC_MSG_WARN([Cannot build static and shared libraries, disabling shared]) + enable_shared=no ;; -* ) - AC_MSG_WARN([Messa build supports only shared libraries, enabling shared]) +xnono ) + AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared]) enable_shared=yes - enable_static=no ;; esac +AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) + dnl dnl other compiler options dnl @@ -773,6 +776,11 @@ PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED], have_libudev=yes, have_libudev=no) if test "x$enable_dri" = xyes; then + # DRI must be shared, I think + if test "$enable_static" = yes; then + AC_MSG_ERROR([Cannot use static libraries for DRI drivers]) + fi + # not a hard requirement as swrast does not depend on it if test "x$have_libdrm" = xyes; then DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" @@ -1104,7 +1112,12 @@ x16|x32) esac if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then - OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" + # only link libraries with osmesa if shared + if test "$enable_static" = no; then + OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" + else + OSMESA_LIB_DEPS="" + fi OSMESA_MESA_DEPS="" OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" fi @@ -1153,8 +1166,11 @@ if test "x$enable_egl" = xyes; then AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) - if test "x$enable_dri" = xyes; then - HAVE_EGL_DRIVER_DRI2=1 + if test "$enable_static" != yes; then + if test "x$enable_dri" = xyes; then + HAVE_EGL_DRIVER_DRI2=1 + fi + fi fi AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes) diff --git a/install-gallium-links.mk b/install-gallium-links.mk index 5ee923b..6ed8a24a 100644 --- a/install-gallium-links.mk +++ b/install-gallium-links.mk @@ -1,6 +1,7 @@ # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the driver into /lib of the build tree. +if BUILD_SHARED if HAVE_COMPAT_SYMLINKS all-local : .libs/install-gallium-links @@ -23,3 +24,4 @@ all-local : .libs/install-gallium-links fi; \ done && touch $@ endif +endif diff --git a/install-lib-links.mk b/install-lib-links.mk index 0e13719..09fb86a 100644 --- a/install-lib-links.mk +++ b/install-lib-links.mk @@ -1,6 +1,7 @@ # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the driver into /lib of the build tree. +if BUILD_SHARED if HAVE_COMPAT_SYMLINKS all-local : .libs/install-mesa-links @@ -14,3 +15,4 @@ all-local : .libs/install-mesa-links fi; \ done && touch $@ endif +endif -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev