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.rog...@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.rog...@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 <r...@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.rog...@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.rog...@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 <r...@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.rog...@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.rog...@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 <r...@ubuntu.com> Tue, 23 Nov 2010 16:09:25 +1100 + -- Christopher James Halse Rogers <r...@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.rog...@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.rog...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1plupt-0007ur...@alioth.debian.org