[Mesa-dev] [PATCH Resend] mesa: Optionally build a dricore support library.

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Mon Dec 20 20:34:54 PST 2010


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



More information about the mesa-dev mailing list