This an adds --enable-shared-dricore option to configure.  When enabled,
DRI modules will link against a shared copy of the common mesa routines
rather than statically linking these.

This saves about 30MB on disc with a full complement of classic DRI
drivers.
---

Resending as it seems to have been ignored the first time.
We've applied this in Ubuntu as we are (as always) scrabbling for
CD space on the LiveCDs, but Fedora had a similar patch in the dim
distant past.

This seems to be something that distros generally will be interested
in.

 configs/autoconf.in                    |    8 ++++-
 configs/default                        |    3 ++
 configs/freebsd-dri                    |    4 ++-
 configs/linux-dri                      |    4 ++-
 configs/linux-dri-xcb                  |    4 ++-
 configs/linux-egl                      |    4 ++-
 configs/linux-indirect                 |    3 +-
 configure.ac                           |   32 +++++++++++++++++-
 src/glsl/Makefile                      |   20 ++++++++++-
 src/mesa/Makefile                      |   57 +++++++++++++++++++++++++++----
 src/mesa/drivers/dri/Makefile.template |   12 +++----
 src/mesa/drivers/osmesa/Makefile       |    2 +-
 src/mesa/x86/read_rgba_span_x86.S      |    8 ++++
 13 files changed, 136 insertions(+), 25 deletions(-)

diff --git a/configs/autoconf.in b/configs/autoconf.in
index e2d70c6..37a137d 100644
--- a/configs/autoconf.in
+++ b/configs/autoconf.in
@@ -33,6 +33,8 @@ LLVM_LDFLAGS = @LLVM_LDFLAGS@
 LLVM_LIBS = @LLVM_LIBS@
 GLW_CFLAGS = @GLW_CFLAGS@
 GLUT_CFLAGS = @GLUT_CFLAGS@
+DRI_CFLAGS = @DRI_CFLAGS@
+DRI_CXXFLAGS = @DRI_CXXFLAGS@
 
 TALLOC_LIBS = @TALLOC_LIBS@
 TALLOC_CFLAGS = @TALLOC_CFLAGS@
@@ -103,7 +105,10 @@ GALLIUM_AUXILIARIES = 
$(TOP)/src/gallium/auxiliary/libgallium.a
 GALLIUM_DRIVERS = $(foreach 
DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 
 # Driver specific build vars
-DRI_DIRS = @DRI_DIRS@ 
+DRI_DIRS = @DRI_DIRS@
+DRICORE_GLSL_LIBS = @DRICORE_GLSL_LIBS@
+DRICORE_LIBS = @DRICORE_LIBS@
+DRICORE_LIB_DEPS = @DRICORE_LIB_DEPS@
 EGL_PLATFORMS = @EGL_PLATFORMS@
 EGL_CLIENT_APIS = @EGL_CLIENT_APIS@
 
@@ -131,6 +136,7 @@ GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@
 VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@
 
 # DRI dependencies
+MESA_MODULES = @MESA_MODULES@
 DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
 LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
 LIBDRM_LIB = @LIBDRM_LIBS@
diff --git a/configs/default b/configs/default
index 0301345..1feeb97 100644
--- a/configs/default
+++ b/configs/default
@@ -85,6 +85,9 @@ VG_LIB_GLOB = $(VG_LIB_NAME)*
 TALLOC_LIBS = `pkg-config --libs talloc`
 TALLOC_CFLAGS = `pkg-config --cflags talloc`
 
+DRI_CFLAGS = $(CFLAGS)
+DRI_CXXFLAGS = $(CXXFLAGS)
+
 # Optional assembly language optimization files for libGL
 MESA_ASM_SOURCES = 
 
diff --git a/configs/freebsd-dri b/configs/freebsd-dri
index a4aa82e..23cf58a 100644
--- a/configs/freebsd-dri
+++ b/configs/freebsd-dri
@@ -30,9 +30,11 @@ ASM_SOURCES =
 MESA_ASM_SOURCES = 
 
 # Library/program dependencies
+MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
+
 LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 LIBDRM_LIB = `pkg-config --libs libdrm`
-DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB)
+DRI_LIB_DEPS = $(MESA_MODULES) -L/usr/local/lib -lm -pthread -lexpat 
$(LIBDRM_LIB)
 GL_LIB_DEPS = -L/usr/local/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
        -lm -pthread $(LIBDRM_LIB)
 
diff --git a/configs/linux-dri b/configs/linux-dri
index 64fc407..caf0406 100644
--- a/configs/linux-dri
+++ b/configs/linux-dri
@@ -43,9 +43,11 @@ MESA_ASM_SOURCES =
 # Library/program dependencies
 EXTRA_LIB_PATH=-L/usr/X11R6/lib
 
+MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
+
 LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 LIBDRM_LIB = $(shell pkg-config --libs libdrm)
-DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -ltalloc 
$(LIBDRM_LIB)
+DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl 
-ltalloc $(LIBDRM_LIB)
 GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
                -lm -lpthread -ldl $(LIBDRM_LIB)
 
diff --git a/configs/linux-dri-xcb b/configs/linux-dri-xcb
index 8092a04..7518080 100644
--- a/configs/linux-dri-xcb
+++ b/configs/linux-dri-xcb
@@ -41,9 +41,11 @@ MESA_ASM_SOURCES =
 # Library/program dependencies
 EXTRA_LIB_PATH=$(shell pkg-config --libs-only-L x11)
 
+MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
+
 LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 LIBDRM_LIB = $(shell pkg-config --libs libdrm)
-DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
+DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl 
$(LIBDRM_LIB)
 GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
                 $(LIBDRM_LIB) $(shell pkg-config --libs xcb) $(shell 
pkg-config --libs x11-xcb) $(shell pkg-config --libs xcb-glx)
 
diff --git a/configs/linux-egl b/configs/linux-egl
index 6393e94..216bcba 100644
--- a/configs/linux-egl
+++ b/configs/linux-egl
@@ -38,9 +38,11 @@ MESA_ASM_SOURCES =
 # Library/program dependencies
 EXTRA_LIB_PATH=-L/usr/X11R6/lib
 
+MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
+
 LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 LIBDRM_LIB = $(shell pkg-config --libs libdrm)
-DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
+DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl 
$(LIBDRM_LIB)
 GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
                -lm -lpthread -ldl \
                 $(LIBDRM_LIB)
diff --git a/configs/linux-indirect b/configs/linux-indirect
index 272d34e..507382a 100644
--- a/configs/linux-indirect
+++ b/configs/linux-indirect
@@ -42,7 +42,8 @@ MESA_ASM_SOURCES =
 # Library/program dependencies
 EXTRA_LIB_PATH=-L/usr/X11R6/lib
 
-DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
+MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
+DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
 GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
 
 
diff --git a/configure.ac b/configure.ac
index bd81775..028c548 100644
--- a/configure.ac
+++ b/configure.ac
@@ -796,6 +796,34 @@ AC_SUBST([GLESv2_LIB_DEPS])
 AC_SUBST([GLESv2_PC_LIB_PRIV])
 
 
+AC_ARG_ENABLE([shared-dricore],
+    [AS_HELP_STRING([--enable-shared-dricore],
+        [link DRI modules with shared core DRI routines 
@<:@default=disabled@:>@])],
+    [enable_dricore="$enableval"],
+    [enable_dricore=no])
+if test "$mesa_driver" = dri ; then
+   if test "$enable_dricore" = yes ; then
+      DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
+      DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
+      DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) 
-lglsl'
+      DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) 
-ldricore -lglsl'
+      DRI_CFLAGS='$(filter-out -fvisibility=hidden,$(CFLAGS)) -DUSE_DRICORE'
+      DRI_CXXFLAGS='$(filter-out -fvisibility=hidden,$(CXXFLAGS)) 
-DUSE_DRICORE'
+      MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
+   else
+      DRI_CFLAGS='$(CFLAGS)'
+      DRI_CXXFLAGS='$(CXXFLAGS)'
+      DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
+      MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
+   fi
+fi
+AC_SUBST([DRICORE_LIBS])
+AC_SUBST([DRICORE_GLSL_LIBS])
+AC_SUBST([DRICORE_LIB_DEPS])
+AC_SUBST([DRI_CXXFLAGS])
+AC_SUBST([DRI_CFLAGS])
+AC_SUBST([MESA_MODULES])
+
 AC_SUBST([HAVE_XF86VIDMODE])
 
 PKG_CHECK_MODULES([LIBDRM_RADEON],
@@ -963,8 +991,8 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
             [AC_MSG_ERROR([Expat required for DRI.])])
     fi
 
-    # put all the necessary libs together
-    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread 
$DLOPEN_LIBS $TALLOC_LIBS"
+    # put all the necessary libs together, including possibly libdricore
+    DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm 
-lpthread $DLOPEN_LIBS $TALLOC_LIBS"
 fi
 AC_SUBST([DRI_DIRS])
 AC_SUBST([EXPAT_INCLUDES])
diff --git a/src/glsl/Makefile b/src/glsl/Makefile
index 86a577e..f7162ff 100644
--- a/src/glsl/Makefile
+++ b/src/glsl/Makefile
@@ -112,6 +112,9 @@ OBJECTS = \
        $(C_SOURCES:.c=.o) \
        $(CXX_SOURCES:.cpp=.o)
 
+DRICORE_OBJ_DIR = obj-visible
+OBJECTS_DRICORE = $(addprefix $(DRICORE_OBJ_DIR)/,$(OBJECTS))
+
 INCLUDES = \
        $(TALLOC_CFLAGS) \
        -I. \
@@ -128,7 +131,14 @@ ALL_SOURCES = \
 
 ##### TARGETS #####
 
-default: depend lib$(LIBNAME).a $(APPS)
+default: depend lib$(LIBNAME).a $(APPS) $(DRICORE_GLSL_LIBS)
+
+libglsl.so : $(OBJECTS_DRICORE) Makefile
+       $(MKLIB) -cplusplus -noprefix -o $@ $(OBJECTS_DRICORE)
+
+$(TOP)/$(LIB_DIR)/libglsl.so: libglsl.so
+       $(INSTALL) -d $(TOP)/$(LIB_DIR)
+       $(INSTALL) -m 755 libglsl.so $(TOP)/$(LIB_DIR)
 
 lib$(LIBNAME).a: $(OBJECTS) Makefile $(TOP)/src/glsl/Makefile.template
        $(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS)
@@ -162,6 +172,14 @@ glcpp/glcpp: $(GLCPP_OBJECTS) libglsl.a
 .c.o:
        $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
 
+$(DRICORE_OBJ_DIR)/%.o : %.cpp
+       @mkdir -p $(dir $@)
+       $(CXX) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DEFINES) $< -o $@
+
+$(DRICORE_OBJ_DIR)/%.o : %.c
+       @mkdir -p $(dir $@)
+       $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DEFINES) $< -o $@
+
 glsl_lexer.cpp: glsl_lexer.lpp
        flex --nounistd -o$@  $<
 
diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index 8b0756b..0f33304 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -15,6 +15,7 @@ endif
 MESA_OBJ_DIR := .
 ES1_OBJ_DIR := objs-es1
 ES2_OBJ_DIR := objs-es2
+DRICORE_OBJ_DIR := objs-dricore
 
 
 include sources.mak
@@ -23,6 +24,7 @@ include sources.mak
 ES1_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_OBJECTS))
 ES2_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_OBJECTS))
 MESA_OBJECTS := $(addprefix $(MESA_OBJ_DIR)/, $(MESA_OBJECTS))
+DRICORE_OBJECTS := $(addprefix $(DRICORE_OBJ_DIR)/, $(MESA_OBJECTS))
 
 ES1_GALLIUM_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS))
 ES2_GALLIUM_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS))
@@ -32,6 +34,7 @@ MESA_GALLIUM_OBJECTS := $(addprefix $(MESA_OBJ_DIR)/, 
$(MESA_GALLIUM_OBJECTS))
 MESA_CPPFLAGS := $(API_DEFINES) $(DEFINES)
 ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES)
 ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES)
+DRICORE_CPPFLAGS = $(MESA_CPPFLAGS)
 
 # append include dirs
 MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
@@ -43,18 +46,24 @@ CFLAGS := $(filter-out $(DEFINES), $(CFLAGS))
 CXXFLAGS := $(filter-out $(DEFINES), $(CXXFLAGS))
 
 # LLVM is needed for the state tracker
-MESA_CFLAGS := $(LLVM_CFLAGS)
-ES1_CFLAGS := $(LLVM_CFLAGS)
-ES2_CFLAGS := $(LLVM_CFLAGS)
+MESA_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS)
+ES1_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS)
+ES2_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS)
+DRICORE_CFLAGS := $(LLVM_CFLAGS) $(DRI_CFLAGS)
+
+MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
+ES1_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
+ES2_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
+DRICORE_CXXFLAGS := $(LLVM_CFLAGS) $(DRI_CXXFLAGS)
 
 define mesa-cc-c
        @mkdir -p $(dir $@)
-       $(CC) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) $(CFLAGS)
+       $(CC) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS)
 endef
 
 define mesa-cxx-c
        @mkdir -p $(dir $@)
-       $(CXX) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) $(CXXFLAGS)
+       $(CXX) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS)
 endef
 
 $(MESA_OBJ_DIR)/%.o: %.c
@@ -84,11 +93,20 @@ $(ES2_OBJ_DIR)/%.o: %.cpp
 $(ES2_OBJ_DIR)/%.o: %.S
        $(call mesa-cc-c,ES2)
 
+$(DRICORE_OBJ_DIR)/%.o: %.c
+       $(call mesa-cc-c,DRICORE)
+
+$(DRICORE_OBJ_DIR)/%.o: %.cpp
+       $(call mesa-cxx-c,DRICORE)
+
+$(DRICORE_OBJ_DIR)/%.o: %.S
+       $(call mesa-cc-c,DRICORE)
+
 
 # Default: build dependencies, then asm_subdirs, GLSL built-in lib,
 # then convenience libs (.a) and finally the device drivers:
 default: $(DEPENDS) asm_subdirs \
-       $(MESA_LIBS) $(ES1_LIBS) $(ES2_LIBS) driver_subdirs
+       $(MESA_LIBS) $(ES1_LIBS) $(ES2_LIBS) $(DRICORE_LIBS) driver_subdirs
 
 main/api_exec_es1.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py 
main/APIspec.py
        $(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V 
GLES1.1 > $@
@@ -109,6 +127,15 @@ libes1.a: $(ES1_OBJECTS) $(GLSL_LIBS)
 libes2.a: $(ES2_OBJECTS) $(GLSL_LIBS)
        @$(MKLIB) -o es2 -static $(ES2_OBJECTS) $(GLSL_LIBS)
 
+# Shared dricore library for classic DRI drivers
+libdricore.so: $(DRICORE_OBJECTS) $(DRICORE_GLSL_LIBS)
+       @$(MKLIB) -o libdricore.so -noprefix -cplusplus \
+               $(DRICORE_LIB_DEPS) $(DRICORE_OBJECTS)
+
+$(TOP)/$(LIB_DIR)/libdricore.so: libdricore.so
+       @$(INSTALL) -d $(TOP)/$(LIB_DIR)
+       @$(INSTALL) -m 755 libdricore.so $(TOP)/$(LIB_DIR)
+
 # Make archive of subset of core mesa object files for gallium
 libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
        @ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
@@ -165,9 +192,12 @@ depend.es2: $(ALL_SOURCES)
 new_install:
        (cd drivers && $(MAKE) install)
 
+ifneq (,$(DRICORE_LIBS))
+DRICORE_INSTALL_TARGET = install-dricore
+endif
 
 # XXX replace this with new_install above someday
-install: default
+install: default $(DRICORE_INSTALL_TARGET)
        @for driver in $(DRIVER_DIRS) ; do \
          case "$$driver" in \
            osmesa) if [ "$(DRIVER_DIRS)" = osmesa ]; then \
@@ -229,6 +259,12 @@ install-dri: default
        cd drivers/dri && $(MAKE) install
 
 
+install-dricore: default
+       $(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+       $(INSTALL) -m 755 $(DRICORE_LIBS) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+       $(INSTALL) -m 755 $(DRICORE_GLSL_LIBS) 
$(DESTDIR)$(DRI_DRIVER_INSTALL_DIR$)
+
+
 
 # Emacs tags
 tags:
@@ -244,7 +280,12 @@ clean-es2:
        -rm -rf $(ES2_OBJ_DIR)
        -rm -f depend.es2 depend.es2.bak
 
-clean: clean-es1 clean-es2
+clean-dricore:
+       -rm -f libdricore.so
+       -rm -f $(DRICORE_LIBS)
+       -rm -rf $(DRICORE_OBJ_DIR)
+
+clean: clean-es1 clean-es2 clean-dricore
        -rm -f */*.o
        -rm -f */*/*.o
        -rm -f depend depend.bak libmesa.a libmesagallium.a
diff --git a/src/mesa/drivers/dri/Makefile.template 
b/src/mesa/drivers/dri/Makefile.template
index 4ecddbc..6ba4431 100644
--- a/src/mesa/drivers/dri/Makefile.template
+++ b/src/mesa/drivers/dri/Makefile.template
@@ -1,7 +1,5 @@
 # -*-makefile-*-
 
-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
-
 COMMON_GALLIUM_SOURCES = \
         ../common/utils.c \
         ../common/vblank.c \
@@ -39,13 +37,13 @@ CXXFLAGS += $(API_DEFINES)
 ##### RULES #####
 
 .c.o:
-       $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
+       $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
 
 .cpp.o:
-       $(CC) -c $(INCLUDES) $(CXXFLAGS) $(DRIVER_DEFINES) $< -o $@
+       $(CC) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DRIVER_DEFINES) $< -o $@
 
 .S.o:
-       $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
+       $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@
 
 
 ##### TARGETS #####
@@ -57,10 +55,10 @@ default: subdirs lib
 lib: symlinks subdirs depend
        @$(MAKE) $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
 
-$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(EXTRA_MODULES) Makefile \
+$(LIBNAME): $(OBJECTS) $(EXTRA_MODULES) $(MESA_MODULES) Makefile \
                $(TOP)/src/mesa/drivers/dri/Makefile.template 
$(TOP)/src/mesa/drivers/dri/common/dri_test.o
        $(MKLIB) -o $...@.tmp -noprefix -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
-               $(OBJECTS) $(MESA_MODULES) $(EXTRA_MODULES) $(DRI_LIB_DEPS)
+               $(OBJECTS) $(EXTRA_MODULES) $(DRI_LIB_DEPS)
        $(CXX) $(CFLAGS) -o $...@.test 
$(TOP)/src/mesa/drivers/dri/common/dri_test.o $...@.tmp $(DRI_LIB_DEPS)
        @rm -f $...@.test
        mv -f $...@.tmp $@
diff --git a/src/mesa/drivers/osmesa/Makefile b/src/mesa/drivers/osmesa/Makefile
index 50dd452..d65128c 100644
--- a/src/mesa/drivers/osmesa/Makefile
+++ b/src/mesa/drivers/osmesa/Makefile
@@ -40,7 +40,7 @@ $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OBJECTS) $(CORE_MESA)
                -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
                -install $(TOP)/$(LIB_DIR) -cplusplus $(MKLIB_OPTIONS) \
                -id $(INSTALL_LIB_DIR)/lib$(OSMESA_LIB).$(MESA_MAJOR).dylib \
-               $(OSMESA_LIB_DEPS) $(OBJECTS) $(CORE_MESA) $(TALLOC_LIBS)
+               $(OSMESA_LIB_DEPS) $(TALLOC_LIBS) $(OBJECTS) $(CORE_MESA)
 
 
 
diff --git a/src/mesa/x86/read_rgba_span_x86.S 
b/src/mesa/x86/read_rgba_span_x86.S
index 3886a51..90d7cc3 100644
--- a/src/mesa/x86/read_rgba_span_x86.S
+++ b/src/mesa/x86/read_rgba_span_x86.S
@@ -77,7 +77,9 @@
  */
 
 .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+#ifndef USE_DRICORE
 .hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+#endif
        .type   _generic_read_RGBA_span_BGRA8888_REV_MMX, @function
 _generic_read_RGBA_span_BGRA8888_REV_MMX:
        pushl   %ebx
@@ -172,7 +174,9 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX:
  */
 
 .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+#ifndef USE_DRICORE
 .hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+#endif
        .type   _generic_read_RGBA_span_BGRA8888_REV_SSE, @function
 _generic_read_RGBA_span_BGRA8888_REV_SSE:
        pushl   %esi
@@ -335,7 +339,9 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE:
 
        .text
 .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+#ifndef USE_DRICORE
 .hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+#endif
        .type   _generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
 _generic_read_RGBA_span_BGRA8888_REV_SSE2:
        pushl   %esi
@@ -494,7 +500,9 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
 
        .text
        .globl  _generic_read_RGBA_span_RGB565_MMX
+#ifndef USE_DRICORE
         .hidden _generic_read_RGBA_span_RGB565_MMX
+#endif
        .type   _generic_read_RGBA_span_RGB565_MMX, @function
 
 _generic_read_RGBA_span_RGB565_MMX:
-- 
1.7.2.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to