[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'ubuntu'



 debian/changelog                               |   15 
 debian/control                                 |    2 
 debian/libgl1-mesa-dri.install                 |    4 
 debian/patches/100_no_abi_tag.patch            |    8 
 debian/patches/101_ubuntu_hidden_glname.patch  |    4 
 debian/patches/105_use_shared_libdricore.patch |  460 +++++++++++++++++++++++++
 debian/patches/series                          |    1 
 debian/rules                                   |    3 
 8 files changed, 487 insertions(+), 10 deletions(-)

New commits:
commit 6799611cf7d8a207a5d20058528c2bc52d54e1c8
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Thu Nov 25 16:09:25 2010 +1100

    Finalise changelog

diff --git a/debian/changelog b/debian/changelog
index 0bfc44b..a64079f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (7.9+repack-1ubuntu1) UNRELEASED; urgency=low
+mesa (7.9+repack-1ubuntu1) natty; urgency=low
 
   * Merge from Debian experimental.  Remaining Ubuntu changes:
    - debian/control

commit f1928b757924579f38820d1b9b46e07c107b855c
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Thu Nov 25 16:07:57 2010 +1100

    Build classic nouveau_vieux driver in libgl1-mesa-dri

diff --git a/debian/changelog b/debian/changelog
index 5ae22c3..0bfc44b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -41,6 +41,9 @@ mesa (7.9+repack-1ubuntu1) UNRELEASED; urgency=low
   * debian/control:
     - Add libudev-dev to build-depends.  This is requried for the DRI2 EGL
       driver to work with a drm display.
+  * debian/control:
+    - Build classic nouveau_vieux DRI driver, and install in libgl1-mesa-dri.
+      this is no less stable than other DRI drivers we ship there.
 
  -- Christopher James Halse Rogers <raof@ubuntu.com>  Wed, 24 Nov 2010 11:46:17 +1100
 
diff --git a/debian/rules b/debian/rules
index 83bec88..550e9a9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -68,6 +68,8 @@ else
   ifeq ($(DEB_HOST_ARCH_OS), linux)
 # Gallium drivers require libdrm-{nouveau,radeon}, only available on Linux
 	GALLIUM_DRIVERS += nouveau radeon r600
+# Classic nouveau driver also requires libdrm-nouveau, only on Linux
+	DRI_DRIVERS += nouveau
 # Although the KMS egl drivers will probably build on kfreebsd & hurd
 # only linux actually has KMS drivers implemented at this point.
 	EGL_DISPLAYS += drm

commit 6283b3f38e085ecba23f3612a83fb444f6af7d3a
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Nov 24 16:03:08 2010 +1100

    Actually install libdricore and libglsl with DRI drivers.
    
    3D works much better when the drivers can find the code they need

diff --git a/debian/changelog b/debian/changelog
index 7e67615..5ae22c3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -35,6 +35,7 @@ mesa (7.9+repack-1ubuntu1) UNRELEASED; urgency=low
       The radeon DDX will get a patch to select between these appropriately.
   * debian/patches/105_use_shared_libdricore.patch:
   * debian/rules:
+  * debian/libgl1-mesa-dri.install
     - Build a shared library of common mesa routines and link DRI drivers
       against it.  Shaves about 30MiB of disc space off the DRI drivers.
   * debian/control:
diff --git a/debian/libgl1-mesa-dri.install b/debian/libgl1-mesa-dri.install
index dafbd2e..b39a733 100644
--- a/debian/libgl1-mesa-dri.install
+++ b/debian/libgl1-mesa-dri.install
@@ -1,3 +1,5 @@
 build/dri/lib/*_dri.so  usr/lib/dri
 build/dri/lib/gallium/r300_dri.so usr/lib/dri
 build/dri/lib/gallium/r600g_dri.so usr/lib/dri
+build/dri/lib/libglsl.so usr/lib/dri
+build/dri/lib/libdricore.so usr/lib/dri

commit 4dc5744d4812495e2d99d56ca9c1f535d044f75d
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Nov 24 14:10:19 2010 +1100

    Add libudev-dev to build-depends; makes DRI2 EGL driver useful

diff --git a/debian/changelog b/debian/changelog
index de39f5e..7e67615 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -37,6 +37,9 @@ mesa (7.9+repack-1ubuntu1) UNRELEASED; urgency=low
   * debian/rules:
     - Build a shared library of common mesa routines and link DRI drivers
       against it.  Shaves about 30MiB of disc space off the DRI drivers.
+  * debian/control:
+    - Add libudev-dev to build-depends.  This is requried for the DRI2 EGL
+      driver to work with a drm display.
 
  -- Christopher James Halse Rogers <raof@ubuntu.com>  Wed, 24 Nov 2010 11:46:17 +1100
 
diff --git a/debian/control b/debian/control
index 4d4087b..5969aee 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,7 @@ Build-Depends: debhelper (>= 7.2.7), quilt (>= 0.40), pkg-config,
  libxdamage-dev, libxext-dev, autoconf, automake, x11proto-dri2-dev (>= 2.1),
  linux-libc-dev (>= 2.6.31) [!hurd-i386 !kfreebsd-amd64 !kfreebsd-i386],
  libx11-xcb-dev, libxcb-dri2-0-dev, libxcb-xfixes0-dev, python-libxml2,
- libtalloc-dev,
+ libtalloc-dev, libudev-dev,
 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git
 Homepage: http://mesa3d.sourceforge.net/

commit 5504dc9c271ee31d0e32171602abf3ac093ff329
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Nov 24 14:08:03 2010 +1100

    Fix typo in libgl1-mesa-dri.install.
    
    It turns out that bulid ≠ build

diff --git a/debian/libgl1-mesa-dri.install b/debian/libgl1-mesa-dri.install
index 9b7ed27..dafbd2e 100644
--- a/debian/libgl1-mesa-dri.install
+++ b/debian/libgl1-mesa-dri.install
@@ -1,3 +1,3 @@
 build/dri/lib/*_dri.so  usr/lib/dri
 build/dri/lib/gallium/r300_dri.so usr/lib/dri
-bulid/dri/lib/gallium/r600g_dri.so usr/lib/dri
+build/dri/lib/gallium/r600g_dri.so usr/lib/dri

commit 784a3c349fd9f649126122a47ddf40399384ba6e
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Nov 24 11:47:49 2010 +1100

    Add libdricore patch.  Mesa might fit on the CDs now!

diff --git a/debian/changelog b/debian/changelog
index 19fd198..de39f5e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -33,8 +33,12 @@ mesa (7.9+repack-1ubuntu1) UNRELEASED; urgency=low
     - Install both r300c/r300g and r600c/r600g, renaming the non-default
       r300c to r300c_dri.so and r600g to r600g_dri.so to avoid conflicts.
       The radeon DDX will get a patch to select between these appropriately.
+  * debian/patches/105_use_shared_libdricore.patch:
+  * debian/rules:
+    - Build a shared library of common mesa routines and link DRI drivers
+      against it.  Shaves about 30MiB of disc space off the DRI drivers.
 
- -- Christopher James Halse Rogers <raof@ubuntu.com>  Tue, 23 Nov 2010 16:09:25 +1100
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Wed, 24 Nov 2010 11:46:17 +1100
 
 mesa (7.9+repack-1) experimental; urgency=low
 
diff --git a/debian/patches/105_use_shared_libdricore.patch b/debian/patches/105_use_shared_libdricore.patch
new file mode 100644
index 0000000..89c0fac
--- /dev/null
+++ b/debian/patches/105_use_shared_libdricore.patch
@@ -0,0 +1,460 @@
+commit 2bf2b08a97a65327bfb9d511f3cc6792aa560cbc
+Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
+Date:   Wed Nov 17 14:28:34 2010 +1100
+
+    mesa: Optionally build a dricore support library.
+    
+    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.
+
+Index: mesa/configs/autoconf.in
+===================================================================
+--- mesa.orig/configs/autoconf.in	2010-11-23 16:47:01.000000000 +1100
++++ mesa/configs/autoconf.in	2010-11-24 11:41:35.407021001 +1100
+@@ -33,6 +33,8 @@
+ 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_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 @@
+ 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@
+Index: mesa/configs/default
+===================================================================
+--- mesa.orig/configs/default	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/default	2010-11-24 11:41:35.407021001 +1100
+@@ -85,6 +85,9 @@
+ 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 = 
+ 
+Index: mesa/configs/freebsd-dri
+===================================================================
+--- mesa.orig/configs/freebsd-dri	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/freebsd-dri	2010-11-24 11:41:35.407021001 +1100
+@@ -30,9 +30,11 @@
+ 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)
+ 
+Index: mesa/configs/linux-dri
+===================================================================
+--- mesa.orig/configs/linux-dri	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/linux-dri	2010-11-24 11:41:35.407021001 +1100
+@@ -43,9 +43,11 @@
+ # 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)
+ 
+Index: mesa/configs/linux-dri-xcb
+===================================================================
+--- mesa.orig/configs/linux-dri-xcb	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/linux-dri-xcb	2010-11-24 11:41:35.407021001 +1100
+@@ -41,9 +41,11 @@
+ # 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)
+ 
+Index: mesa/configs/linux-egl
+===================================================================
+--- mesa.orig/configs/linux-egl	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/linux-egl	2010-11-24 11:41:35.407021001 +1100
+@@ -38,9 +38,11 @@
+ # 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)
+Index: mesa/configs/linux-indirect
+===================================================================
+--- mesa.orig/configs/linux-indirect	2010-11-23 16:47:02.000000000 +1100
++++ mesa/configs/linux-indirect	2010-11-24 11:41:35.407021001 +1100
+@@ -42,7 +42,8 @@
+ # 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
+ 
+ 
+Index: mesa/configure.ac
+===================================================================
+--- mesa.orig/configure.ac	2010-11-24 11:40:58.000000000 +1100
++++ mesa/configure.ac	2010-11-24 11:41:35.417021001 +1100
+@@ -699,6 +699,34 @@
+ 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],
+@@ -903,8 +931,8 @@
+     AC_CHECK_LIB([expat],[XML_ParserCreate],[],
+         [AC_MSG_ERROR([Expat required for DRI.])])
+ 
+-    # 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])
+Index: mesa/src/glsl/Makefile
+===================================================================
+--- mesa.orig/src/glsl/Makefile	2010-11-23 16:47:20.000000000 +1100
++++ mesa/src/glsl/Makefile	2010-11-24 11:41:35.417021001 +1100
+@@ -110,6 +110,9 @@
+ 	$(C_SOURCES:.c=.o) \
+ 	$(CXX_SOURCES:.cpp=.o)
+ 
++DRICORE_OBJ_DIR = obj-visible
++OBJECTS_DRICORE = $(addprefix $(DRICORE_OBJ_DIR)/,$(OBJECTS))
++
+ INCLUDES = \
+ 	$(TALLOC_CFLAGS) \
+ 	-I. \
+@@ -126,7 +129,14 @@
+ 
+ ##### 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)
+@@ -160,6 +170,14 @@
+ .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$@  $<
+ 
+Index: mesa/src/mesa/Makefile
+===================================================================
+--- mesa.orig/src/mesa/Makefile	2010-11-23 16:47:23.000000000 +1100
++++ mesa/src/mesa/Makefile	2010-11-24 11:41:35.417021001 +1100
+@@ -15,6 +15,7 @@
+ 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 @@
+ 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_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 @@
+ 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: %.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 @@
+ 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 @@
+ 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 @@
+ 	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 @@
+ 	-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
+Index: mesa/src/mesa/drivers/dri/Makefile.template
+===================================================================
+--- mesa.orig/src/mesa/drivers/dri/Makefile.template	2010-11-23 16:47:23.069203001 +1100
++++ mesa/src/mesa/drivers/dri/Makefile.template	2010-11-24 11:41:35.417021001 +1100
+@@ -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 @@
+ ##### 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 @@
+ 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 $@
+Index: mesa/src/mesa/x86/read_rgba_span_x86.S
+===================================================================
+--- mesa.orig/src/mesa/x86/read_rgba_span_x86.S	2010-11-23 16:43:46.000000000 +1100
++++ mesa/src/mesa/x86/read_rgba_span_x86.S	2010-11-24 11:41:35.427021001 +1100
+@@ -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 @@
+  */
+ 
+ .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 @@
+ 
+ 	.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 @@
+ 
+ 	.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:
diff --git a/debian/patches/series b/debian/patches/series
index c267c2b..cb9a4c5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,4 @@
 101_ubuntu_hidden_glname.patch
 103_savage-expose_fbmodes_with_nonzero_alpha.patch
 104_i915_fragment_shader_disable.patch
+105_use_shared_libdricore.patch
diff --git a/debian/rules b/debian/rules
index f6d2af8..83bec88 100755
--- a/debian/rules
+++ b/debian/rules
@@ -99,6 +99,7 @@ confflags-dri = \
 	--enable-gles-overlay \
 	--enable-gles1 \
 	--enable-gles2 \
+	--enable-shared-dricore \
 	$(DIRECT_RENDERING) \
 	$(confflags-common)
 

commit 962fbb0c0b81b0a6463043e832418f937abc8793
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Nov 24 11:15:00 2010 +1100

    Check out ubuntu ABI patches from ubuntu-maverick branch.
    
    These got mangled in the ubuntu/debian-experimental/ubuntu-maverick merge madness

diff --git a/debian/patches/100_no_abi_tag.patch b/debian/patches/100_no_abi_tag.patch
index 09ded51..a6ad56a 100644
--- a/debian/patches/100_no_abi_tag.patch
+++ b/debian/patches/100_no_abi_tag.patch
@@ -1,5 +1,5 @@
---- a/src/mesa/x86-64/glapi_x86-64.S
-+++ b/src/mesa/x86-64/glapi_x86-64.S
+--- a/src/mapi/glapi/glapi_x86-64.S
++++ b/src/mapi/glapi/glapi_x86-64.S
 @@ -30885,18 +30885,6 @@ GL_PREFIX(EGLImageTargetTexture2DOES):
  	.globl GL_PREFIX(FramebufferTextureLayer) ; .set GL_PREFIX(FramebufferTextureLayer), GL_PREFIX(FramebufferTextureLayerEXT)
  	.globl GL_PREFIX(ProvokingVertex) ; .set GL_PREFIX(ProvokingVertex), GL_PREFIX(ProvokingVertexEXT)
@@ -19,8 +19,8 @@
  
  #if defined (__ELF__) && defined (__linux__)
  	.section .note.GNU-stack,"",%progbits
---- a/src/mesa/x86/glapi_x86.S
-+++ b/src/mesa/x86/glapi_x86.S
+--- a/src/mapi/glapi/glapi_x86.S
++++ b/src/mapi/glapi/glapi_x86.S
 @@ -1279,18 +1279,6 @@ GLNAME(gl_dispatch_functions_start):
  		ALIGNTEXT16
  GLNAME(gl_dispatch_functions_end):
diff --git a/debian/patches/101_ubuntu_hidden_glname.patch b/debian/patches/101_ubuntu_hidden_glname.patch
index a04106c..25a5e66 100644
--- a/debian/patches/101_ubuntu_hidden_glname.patch
+++ b/debian/patches/101_ubuntu_hidden_glname.patch
@@ -1,7 +1,7 @@
 Index: mesa/src/mesa/x86/glapi_x86.S
 ===================================================================
---- mesa.orig/src/mesa/x86/glapi_x86.S	2009-06-29 14:43:07.000000000 +0300
-+++ mesa/src/mesa/x86/glapi_x86.S	2009-06-29 14:45:38.000000000 +0300
+--- mesa.orig/src/mapi/glapi/glapi_x86.S	2009-06-29 14:43:07.000000000 +0300
++++ mesa/src/mapi/glapi/glapi_x86.S	2009-06-29 14:45:38.000000000 +0300
 @@ -148,7 +148,6 @@
  
  		ALIGNTEXT16


Reply to: