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: