Hello community,

here is the log from the commit of package Mesa.1592 for openSUSE:12.2:Update 
checked in at 2013-06-06 13:52:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/Mesa.1592 (Old)
 and      /work/SRC/openSUSE:12.2:Update/.Mesa.1592.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Mesa.1592"

Changes:
--------
New Changes file:

--- /dev/null   2013-06-06 00:44:45.792030006 +0200
+++ /work/SRC/openSUSE:12.2:Update/.Mesa.1592.new/Mesa.changes  2013-06-06 
13:52:13.000000000 +0200
@@ -0,0 +1,1702 @@
+-------------------------------------------------------------------
+Tue May 28 13:08:46 UTC 2013 - [email protected]
+
+- u_0001_integer_overflow_in_XF86DRIOpenConnection_CVE-2013-1993.patch,
+  u_0002_integer_overflow_in_XF86DRIGetClientDriverName_CVE-2013-1993.patch
+  * fixes integer overflow in XF86DRIOpenConnection()/
+    XF86DRIGetClientDriverName() [CVE-2013-1993] (bnc#821855,
+    bnc#815451)
+
+-------------------------------------------------------------------
+Mon Feb  4 20:09:56 UTC 2013 - [email protected]
+
+- fix_glx_indirect_reply_bfo#59876.diff
+  * GLX replies are parsed incorrectly when using libxcb and AIGLX,
+    happens for most replies where data is embedded in the header.
+    (bfo#59876, bnc#802718)
+
+-------------------------------------------------------------------
+Tue Aug 28 11:43:57 UTC 2012 - [email protected]
+
+- U_glsl-linker-Avoid-buffer-over-run-in-parcel_out_unif.patch 
+  * Avoid buffer over-run in parcel_out_uniform_storage::visit_field
+    When too may uniforms are used, the error will be caught in
+    check_resources (src/glsl/linker.cpp). (CVE-2012-2864, bnc#777461)
+
+-------------------------------------------------------------------
+Thu Aug 23 15:29:34 UTC 2012 - [email protected]
+
+- Add u_mesa-8.0-llvmpipe-shmget.patch (Fedora): use shmget under
+  llvmpipe, if available (bnc#766498).
+- Update u_mesa-8.0.1-fix-16bpp.patch to work with shmget patch.
+
+-------------------------------------------------------------------
+Wed Aug  8 15:43:20 CEST 2012 - [email protected]
+
+- U_i965-gen7-Reduce-GT1-WM-thread-count-according-to-up.patch
+  * Fix GPU hang with IVB GT1 desktop (bnc#775048)
+
+-------------------------------------------------------------------
+Tue Jul 10 23:42:04 UTC 2012 - [email protected]
+
+- Update to Version 8.0.4 (minor bugfix release)
+- Back to bz2 tarballs
+
+-------------------------------------------------------------------
+Sat Jun 16 09:58:59 UTC 2012 - [email protected]
+
+- remove buildrequire on vim, it creates a pretty big cycle for
+  no (obvious) benefit
+
+-------------------------------------------------------------------
+Tue Jun 12 15:53:50 UTC 2012 - [email protected]
+
+- enabled build of XvMC/VDPAU state trackers for Nouveau, R300,
+  R600, Softpipe (Software implementation)
+
+-------------------------------------------------------------------
+Tue Jun 12 10:19:01 UTC 2012 - [email protected]
+
+- u_remove-os-abi-tag.patch 
+  * Remove OS ABI tag from libGL, so it is no longer preferred over
+    libGLs without OS ABI tag (bnc#765294, fdo#26663)
+
+-------------------------------------------------------------------
+Fri Jun  8 14:05:30 UTC 2012 - [email protected]
+
+- let libGL1-Mesa require Mesa, since that package includes the DRI
+  drivers (including the "swrast" DRI driver for software rendering)
+  (bnc#765241)
+
+-------------------------------------------------------------------
+Wed May 30 16:56:11 UTC 2012 - [email protected]
+
+- Add u_mesa-8.0.1-fix-16bpp.patch (Fedora): fix 16bpp mode under
+  llvmpipe.
+
+-------------------------------------------------------------------
+Sat May 26 22:29:41 UTC 2012 - [email protected]
+
+- added configure options "--enable-gbm --enable-glx-tls" (required
+  for glamor support)
+
+-------------------------------------------------------------------
+Fri May 25 15:57:25 UTC 2012 - [email protected]
+
+- libxatracker is also not built on ppc*.
+
+-------------------------------------------------------------------
+Mon May 21 12:32:23 UTC 2012 - [email protected]
+
+- Trivial change to Version 8.0.3; tarball from here:
+  http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-8.0.3.tar.gz 
+
+-------------------------------------------------------------------
+Wed May 16 10:28:30 UTC 2012 - [email protected]
+
+- fix build on platforms without gallium (s390 & arm)
+
+-------------------------------------------------------------------
+Wed Apr 25 14:14:35 UTC 2012 - [email protected]
+
+- Added patches from upstream Master to enable building with 
+  llvm 3.1
+
+-------------------------------------------------------------------
+Wed Apr 25 13:17:59 UTC 2012 - [email protected]
+
+- For full OpenGL 3.0 compliance, it is necessary to
+  have floating-point textures, so Mesa is now compiled with
+  "--enable-texture-float" parameter to have OpenGL 3.0 support.
+- disabling glut/glw no longer required since it's no longer
+  shipped with Mesa
+
+-------------------------------------------------------------------
+Mon Apr 23 15:09:29 UTC 2012 - [email protected]
+
+- Enable xa state tracker and svga gallium drivers (vmwgfx stack)
+
+-------------------------------------------------------------------
+Sun Apr 15 18:10:39 CEST 2012 - [email protected]
+
+- use same dri drivers on ia64 as on ppc (no drm_intel) 
+
+-------------------------------------------------------------------
+Wed Mar 21 23:21:24 UTC 2012 - [email protected]
+
+-- Updated software rasterizer to use llvmpipe the advanced,
+-  multithreaded,software rasterizer if availaible for that
+-  archetecture (ie. X86/X86-64).
+
+-------------------------------------------------------------------
+Wed Mar 21 18:06:27 UTC 2012 - [email protected]
+
+- Adjust baselibs.conf for OSMesa soname change
+
+-------------------------------------------------------------------
+Wed Mar 21 14:55:19 UTC 2012 - [email protected]
+
+- U_gallium-rtasm-properly-detect-SSE-and-SSE2.patch 
+  * gallium/rtasm: properly detect SSE and SSE2;  this should fix
+    crashes on ancient processors. (bnc#728737)
+
+-------------------------------------------------------------------
+Thu Mar  1 08:22:41 UTC 2012 - [email protected]
+
+- fix baselibs.conf after update of libOSMesa
+- do not put the date in generated code, this breaks build-compare
+  for little to no gain as we know the build date from rpm header
+
+-------------------------------------------------------------------
+Fri Feb 24 15:12:22 UTC 2012 - [email protected]
+
+- Switch software rasterizer to llvmpipe (gallium driver now)
+  * Performance improvement especially on multicore system.
+- minimal specfile cleanup
+
+-------------------------------------------------------------------
+Fri Feb 24 13:51:15 CET 2012 - [email protected]
+
+- only require drm_intel on intel.
+
+-------------------------------------------------------------------
+Thu Feb 23 10:57:09 UTC 2012 - [email protected]
+
+- Update to Mesa 8.0.1
+  * Removed all DRI drivers that did not support DRI2. 
+    Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and
+    unichrome were removed.
+  * Removed all remnants of paletted texture support. As required
+    by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded
+    to a color (e.g., RGBA) texture. However, the data cannot be
+    stored internally as color-index.
+  * Removed support for GL_APPLE_client_storage extension.
+  * Removed the classic Mesa r300 and r600 drivers, which are
+    superseded by the gallium drivers for this hardware.
+  * Removed the dead Gallium i965, cell and failover drivers,
+    which were either broken and with nobody in sight to fix
+    the situation or deprecated.
+- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
+  (git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16)
+- obsoletes U_Mesa-7.11-llvm3.patch
+- obsoletes Mesa-llvm-3.0.patch
+- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
+  for now (obsolete as well?)
+
+-------------------------------------------------------------------
+Wed Feb 22 14:27:44 UTC 2012 - [email protected]
+
+- use --enable-shared-dricore, saves ~33 MB
+
+-------------------------------------------------------------------
+Wed Feb 22 14:14:56 UTC 2012 - [email protected]
+
+- readded build of non-gallium nouveau driver ("nouveau_vieux") to
+  support again older NVIDIA GPUs
+
+-------------------------------------------------------------------
++++ 1505 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.Mesa.1592.new/Mesa.changes

New:
----
  Mesa-nodate.diff
  Mesa-rpmlintrc
  Mesa.changes
  Mesa.spec
  README.updates
  U_glsl-linker-Avoid-buffer-over-run-in-parcel_out_unif.patch
  U_i965-gen7-Reduce-GT1-WM-thread-count-according-to-up.patch
  baselibs.conf
  drirc
  fix_glx_indirect_reply_bfo#59876.diff
  manual-pages.tar.bz2
  mesa-8.0.4.tar.bz2
  u_0001_integer_overflow_in_XF86DRIOpenConnection_CVE-2013-1993.patch
  u_0002_integer_overflow_in_XF86DRIGetClientDriverName_CVE-2013-1993.patch
  u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
  u_mesa-8.0-llvmpipe-shmget.patch
  u_mesa-8.0.1-fix-16bpp.patch
  u_remove-os-abi-tag.patch
  upstream-llvm-patch.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Mesa.spec ++++++
++++ 781 lines (skipped)

++++++ Mesa-nodate.diff ++++++
>From da91936f74e4195fbb3ed4da0eaecb9f1ec66972 Mon Sep 17 00:00:00 2001
From: Tobias Johannes Klausmann <[email protected]>
Date: Fri, 20 Apr 2012 14:09:50 +0200
Subject: [PATCH] PATCH-FIX-OPENSUSE do not put dates in sources to fix
 build-compare

---
 src/mesa/main/es_generator.py |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/es_generator.py b/src/mesa/main/es_generator.py
index cad3dea..0dde6f7 100644
--- a/src/mesa/main/es_generator.py
+++ b/src/mesa/main/es_generator.py
@@ -182,9 +182,8 @@ print """/* DO NOT EDIT 
*************************************************
  * THIS FILE AUTOMATICALLY GENERATED BY THE %s SCRIPT
  * API specification file:   %s
  * GLES version:             %s
- * date:                     %s
  */
-""" % (program, functionList, version, time.strftime("%Y-%m-%d %H:%M:%S"))
+""" % (program, functionList, version)
 
 # The headers we choose are version-specific.
 print """
-- 
1.7.7

++++++ Mesa-rpmlintrc ++++++
# Want to allow for multiple vendors
addFilter("shlib-policy-name-error")
++++++ README.updates ++++++
DRI Driver update mechanism
---------------------------

If any corresponding DRI driver is found in "/usr/lib/dri/updates/"
it will be favored over the one in "/usr/lib/dri/" and will be used
for 32/64 bit applications.

On 32/64 bit biarch platforms additionally a corresponding DRI driver
in "/usr/lib64/dri/updates/" will be favored over the one in 
"/usr/lib64/dri/" and will be used for 64bit applications.
++++++ U_glsl-linker-Avoid-buffer-over-run-in-parcel_out_unif.patch ++++++
>From ff996cafce511dd8a6c4e066e409c23e147a670c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Marchesin?= <[email protected]>
Date: Tue, 14 Aug 2012 17:15:54 -0700
Subject: [PATCH] glsl/linker: Avoid buffer over-run in 
parcel_out_uniform_storage::visit_field
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When too may uniforms are used, the error will be caught in
check_resources (src/glsl/linker.cpp).

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Stéphane Marchesin <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Tested-by: Benoit Jacob <[email protected]>
---
 src/glsl/link_uniforms.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
index 25dc1d7..eef9025 100644
--- a/src/glsl/link_uniforms.cpp
+++ b/src/glsl/link_uniforms.cpp
@@ -313,7 +313,7 @@ private:
         const gl_texture_index target = base_type->sampler_index();
         const unsigned shadow = base_type->sampler_shadow;
         for (unsigned i = this->uniforms[id].sampler
-                ; i < this->next_sampler
+                ; i < MIN2(this->next_sampler, MAX_SAMPLERS)
                 ; i++) {
            this->targets[i] = target;
            this->shader_samplers_used |= 1U << i;
-- 
1.7.3.4

++++++ U_i965-gen7-Reduce-GT1-WM-thread-count-according-to-up.patch ++++++
>From 539a02b9a73276a6d012436e296cfab55d5257a3 Mon Sep 17 00:00:00 2001
From: Eric Anholt <[email protected]>
Date: Fri, 27 Jul 2012 11:34:07 -0700
Subject: [PATCH 03/11] i965/gen7: Reduce GT1 WM thread count according to
 updated BSpec.

Acked-by: Kenneth Graunke <[email protected]>

https://bugs.freedesktop.org/show_bug.cgi?id=52382
(cherry picked from commit fbf86c7f0f1f12e52b927e3870535073879d0a4d)
---
 src/mesa/drivers/dri/i965/brw_context.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_context.c 
b/src/mesa/drivers/dri/i965/brw_context.c
index a66ccc7..78bc6f9 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -240,7 +240,7 @@ brwCreateContext(int api,
    /* WM maximum threads is number of EUs times number of threads per EU. */
    if (intel->gen >= 7) {
       if (intel->gt == 1) {
-        brw->max_wm_threads = 86;
+        brw->max_wm_threads = 48;
         brw->max_vs_threads = 36;
         brw->max_gs_threads = 36;
         brw->urb.size = 128;
-- 
1.7.11.4

++++++ baselibs.conf ++++++
Mesa
        +/usr/X11R6/lib(64)?/modules/dri/updates/README.updates
        obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
        provides  "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
Mesa-devel
        #We need Mesa-<targettype>!, do not put requires -Mesa-<targettype>.
        requires "Mesa-libEGL-devel-<targettype> = <version>"
        requires "Mesa-libGL-devel-<targettype> = <version>"
        requires "Mesa-libGLESv1_CM-devel-<targettype> = <version>"
        requires "Mesa-libGLESv2-devel-<targettype> = <version>"
        requires "Mesa-libGLU-devel-<targettype> = <version>"
        requires "Mesa-libIndirectGL1-<targettype> = <version>"
        requires "libOSMesa8-<targettype> = <version>"
        requires "libgbm-devel-<targettype>"
        requires "Mesa-libglapi0-<targettype> = <version>"
        obsoletes "XFree86-Mesa-devel-<targettype> 
xorg-x11-Mesa-devel-<targettype>"
        provides  "XFree86-Mesa-devel-<targettype> 
xorg-x11-Mesa-devel-<targettype>"
Mesa-libEGL1
Mesa-libEGL-devel
        requires -Mesa-libEGL-<targettype>
        requires "Mesa-libEGL1-<targettype> = <version>"
Mesa-libGL1
Mesa-libGL-devel
        requires -Mesa-libGL-<targettype>
        requires "Mesa-libGL1-<targettype> = <version>"
Mesa-libGLESv1_CM1
Mesa-libGLESv1_CM-devel
        requires -Mesa-libGLESv1_CM-<targettype>
        requires "Mesa-libGLESv1_CM1-<targettype> = <version>"
Mesa-libGLESv2-2
Mesa-libGLESv2-devel
        requires -Mesa-libGLESv2-<targettype>
        requires "Mesa-libGLESv2-2-<targettype> = <version>"
Mesa-libGLU1
Mesa-libGLU-devel
        requires -Mesa-libGLU-<targettype>
        requires "Mesa-libGLU1-<targettype> = <version>"
Mesa-libIndirectGL1
libOSMesa8
libgbm1
libgbm-devel
        requires -libgbm-<targettype>
        requires "libgbm1-<targettype> = <version>"
Mesa-libglapi0
libXvMC_nouveau
libXvMC_r300
libXvMC_r600
libXvMC_softpipe
libvdpau_nouveau
libvdpau_r300
libvdpau_r600
libvdpau_softpipe
++++++ drirc ++++++
<driconf>
    <device screen="0" driver="i915">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    <device screen="0" driver="i965">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    <device screen="0" driver="r300">
        <application name="Default">
            <option name="vblank_mode" value="0" />
            <option name="force_s3tc_enable" value="false" />
            <option name="disable_lowimpact_fallback" value="true" />
        </application>
    </device>
</driconf>
++++++ fix_glx_indirect_reply_bfo#59876.diff ++++++
diff --git a/src/glx/indirect.c b/src/glx/indirect.c
index a6b0c0d..e07e656 100644
--- a/src/glx/indirect.c
+++ b/src/glx/indirect.c
@@ -3882,7 +3882,7 @@ __indirect_glGetLightfv(GLenum light, GLenum pname, 
GLfloat * params)
                                                           currentContextTag,
                                                           light, pname),
                                       NULL);
-        if (xcb_glx_get_lightfv_data_length(reply) == 0)
+        if (xcb_glx_get_lightfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_lightfv_data(reply),
@@ -3922,7 +3922,7 @@ __indirect_glGetLightiv(GLenum light, GLenum pname, GLint 
* params)
                                                           currentContextTag,
                                                           light, pname),
                                       NULL);
-        if (xcb_glx_get_lightiv_data_length(reply) == 0)
+        if (xcb_glx_get_lightiv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_lightiv_data(reply),
@@ -3960,7 +3960,7 @@ __indirect_glGetMapdv(GLenum target, GLenum query, 
GLdouble * v)
                                     xcb_glx_get_mapdv(c,
                                                       gc->currentContextTag,
                                                       target, query), NULL);
-        if (xcb_glx_get_mapdv_data_length(reply) == 0)
+        if (xcb_glx_get_mapdv_data_length(reply) == 1)
             (void) memcpy(v, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(v, xcb_glx_get_mapdv_data(reply),
@@ -3998,7 +3998,7 @@ __indirect_glGetMapfv(GLenum target, GLenum query, 
GLfloat * v)
                                     xcb_glx_get_mapfv(c,
                                                       gc->currentContextTag,
                                                       target, query), NULL);
-        if (xcb_glx_get_mapfv_data_length(reply) == 0)
+        if (xcb_glx_get_mapfv_data_length(reply) == 1)
             (void) memcpy(v, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(v, xcb_glx_get_mapfv_data(reply),
@@ -4036,7 +4036,7 @@ __indirect_glGetMapiv(GLenum target, GLenum query, GLint 
* v)
                                     xcb_glx_get_mapiv(c,
                                                       gc->currentContextTag,
                                                       target, query), NULL);
-        if (xcb_glx_get_mapiv_data_length(reply) == 0)
+        if (xcb_glx_get_mapiv_data_length(reply) == 1)
             (void) memcpy(v, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(v, xcb_glx_get_mapiv_data(reply),
@@ -4076,7 +4076,7 @@ __indirect_glGetMaterialfv(GLenum face, GLenum pname, 
GLfloat * params)
                                                                 
currentContextTag,
                                                                 face, pname),
                                          NULL);
-        if (xcb_glx_get_materialfv_data_length(reply) == 0)
+        if (xcb_glx_get_materialfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_materialfv_data(reply),
@@ -4116,7 +4116,7 @@ __indirect_glGetMaterialiv(GLenum face, GLenum pname, 
GLint * params)
                                                                 
currentContextTag,
                                                                 face, pname),
                                          NULL);
-        if (xcb_glx_get_materialiv_data_length(reply) == 0)
+        if (xcb_glx_get_materialiv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_materialiv_data(reply),
@@ -4155,7 +4155,7 @@ __indirect_glGetPixelMapfv(GLenum map, GLfloat * values)
                                                                   gc->
                                                                   
currentContextTag,
                                                                   map), NULL);
-        if (xcb_glx_get_pixel_mapfv_data_length(reply) == 0)
+        if (xcb_glx_get_pixel_mapfv_data_length(reply) == 1)
             (void) memcpy(values, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(values, xcb_glx_get_pixel_mapfv_data(reply),
@@ -4194,7 +4194,7 @@ __indirect_glGetPixelMapuiv(GLenum map, GLuint * values)
                                                                     
currentContextTag,
                                                                     map),
                                            NULL);
-        if (xcb_glx_get_pixel_mapuiv_data_length(reply) == 0)
+        if (xcb_glx_get_pixel_mapuiv_data_length(reply) == 1)
             (void) memcpy(values, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(values, xcb_glx_get_pixel_mapuiv_data(reply),
@@ -4233,7 +4233,7 @@ __indirect_glGetPixelMapusv(GLenum map, GLushort * values)
                                                                     
currentContextTag,
                                                                     map),
                                            NULL);
-        if (xcb_glx_get_pixel_mapusv_data_length(reply) == 0)
+        if (xcb_glx_get_pixel_mapusv_data_length(reply) == 1)
             (void) memcpy(values, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(values, xcb_glx_get_pixel_mapusv_data(reply),
@@ -4309,7 +4309,7 @@ __indirect_glGetTexEnvfv(GLenum target, GLenum pname, 
GLfloat * params)
                                                               
currentContextTag,
                                                               target, pname),
                                         NULL);
-        if (xcb_glx_get_tex_envfv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_envfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_envfv_data(reply),
@@ -4349,7 +4349,7 @@ __indirect_glGetTexEnviv(GLenum target, GLenum pname, 
GLint * params)
                                                               
currentContextTag,
                                                               target, pname),
                                         NULL);
-        if (xcb_glx_get_tex_enviv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_enviv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_enviv_data(reply),
@@ -4389,7 +4389,7 @@ __indirect_glGetTexGendv(GLenum coord, GLenum pname, 
GLdouble * params)
                                                               
currentContextTag,
                                                               coord, pname),
                                         NULL);
-        if (xcb_glx_get_tex_gendv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_gendv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_gendv_data(reply),
@@ -4429,7 +4429,7 @@ __indirect_glGetTexGenfv(GLenum coord, GLenum pname, 
GLfloat * params)
                                                               
currentContextTag,
                                                               coord, pname),
                                         NULL);
-        if (xcb_glx_get_tex_genfv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_genfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_genfv_data(reply),
@@ -4469,7 +4469,7 @@ __indirect_glGetTexGeniv(GLenum coord, GLenum pname, 
GLint * params)
                                                               
currentContextTag,
                                                               coord, pname),
                                         NULL);
-        if (xcb_glx_get_tex_geniv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_geniv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_geniv_data(reply),
@@ -4558,7 +4558,7 @@ __indirect_glGetTexParameterfv(GLenum target, GLenum 
pname, GLfloat * params)
                                                                           
target,
                                                                           
pname),
                                               NULL);
-        if (xcb_glx_get_tex_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_parameterfv_data(reply),
@@ -4599,7 +4599,7 @@ __indirect_glGetTexParameteriv(GLenum target, GLenum 
pname, GLint * params)
                                                                           
target,
                                                                           
pname),
                                               NULL);
-        if (xcb_glx_get_tex_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_tex_parameteriv_data(reply),
@@ -4639,7 +4639,7 @@ __indirect_glGetTexLevelParameterfv(GLenum target, GLint 
level, GLenum pname,
                                                     (c, gc->currentContextTag,
                                                      target, level, pname),
                                                     NULL);
-        if (xcb_glx_get_tex_level_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_level_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -4682,7 +4682,7 @@ __indirect_glGetTexLevelParameteriv(GLenum target, GLint 
level, GLenum pname,
                                                     (c, gc->currentContextTag,
                                                      target, level, pname),
                                                     NULL);
-        if (xcb_glx_get_tex_level_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_tex_level_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -5697,7 +5697,7 @@ __indirect_glGetColorTableParameterfv(GLenum target, 
GLenum pname,
                                                       (c,
                                                        gc->currentContextTag,
                                                        target, pname), NULL);
-        if (xcb_glx_get_color_table_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_color_table_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -5769,7 +5769,7 @@ __indirect_glGetColorTableParameteriv(GLenum target, 
GLenum pname,
                                                       (c,
                                                        gc->currentContextTag,
                                                        target, pname), NULL);
-        if (xcb_glx_get_color_table_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_color_table_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -6171,7 +6171,7 @@ __indirect_glGetConvolutionParameterfv(GLenum target, 
GLenum pname,
                                                       (c,
                                                        gc->currentContextTag,
                                                        target, pname), NULL);
-        if (xcb_glx_get_convolution_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_convolution_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -6243,7 +6243,7 @@ __indirect_glGetConvolutionParameteriv(GLenum target, 
GLenum pname,
                                                       (c,
                                                        gc->currentContextTag,
                                                        target, pname), NULL);
-        if (xcb_glx_get_convolution_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_convolution_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -6398,7 +6398,7 @@ __indirect_glGetHistogramParameterfv(GLenum target, 
GLenum pname,
                                                     
xcb_glx_get_histogram_parameterfv
                                                     (c, gc->currentContextTag,
                                                      target, pname), NULL);
-        if (xcb_glx_get_histogram_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_histogram_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -6469,7 +6469,7 @@ __indirect_glGetHistogramParameteriv(GLenum target, 
GLenum pname,
                                                     
xcb_glx_get_histogram_parameteriv
                                                     (c, gc->currentContextTag,
                                                      target, pname), NULL);
-        if (xcb_glx_get_histogram_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_histogram_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params,
@@ -6620,7 +6620,7 @@ __indirect_glGetMinmaxParameterfv(GLenum target, GLenum 
pname,
                                                  xcb_glx_get_minmax_parameterfv
                                                  (c, gc->currentContextTag,
                                                   target, pname), NULL);
-        if (xcb_glx_get_minmax_parameterfv_data_length(reply) == 0)
+        if (xcb_glx_get_minmax_parameterfv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_minmax_parameterfv_data(reply),
@@ -6688,7 +6688,7 @@ __indirect_glGetMinmaxParameteriv(GLenum target, GLenum 
pname, GLint * params)
                                                  xcb_glx_get_minmax_parameteriv
                                                  (c, gc->currentContextTag,
                                                   target, pname), NULL);
-        if (xcb_glx_get_minmax_parameteriv_data_length(reply) == 0)
+        if (xcb_glx_get_minmax_parameteriv_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_minmax_parameteriv_data(reply),
@@ -8430,7 +8430,7 @@ __indirect_glGetQueryObjectivARB(GLuint id, GLenum pname, 
GLint * params)
                                                  xcb_glx_get_query_objectiv_arb
                                                  (c, gc->currentContextTag,
                                                   id, pname), NULL);
-        if (xcb_glx_get_query_objectiv_arb_data_length(reply) == 0)
+        if (xcb_glx_get_query_objectiv_arb_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_query_objectiv_arb_data(reply),
@@ -8468,7 +8468,7 @@ __indirect_glGetQueryObjectuivARB(GLuint id, GLenum 
pname, GLuint * params)
                                                   
xcb_glx_get_query_objectuiv_arb
                                                   (c, gc->currentContextTag,
                                                    id, pname), NULL);
-        if (xcb_glx_get_query_objectuiv_arb_data_length(reply) == 0)
+        if (xcb_glx_get_query_objectuiv_arb_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_query_objectuiv_arb_data(reply),
@@ -8509,7 +8509,7 @@ __indirect_glGetQueryivARB(GLenum target, GLenum pname, 
GLint * params)
                                                                   target,
                                                                   pname),
                                           NULL);
-        if (xcb_glx_get_queryiv_arb_data_length(reply) == 0)
+        if (xcb_glx_get_queryiv_arb_data_length(reply) == 1)
             (void) memcpy(params, &reply->datum, sizeof(reply->datum));
         else
             (void) memcpy(params, xcb_glx_get_queryiv_arb_data(reply),
diff --git a/src/mapi/glapi/gen/glX_proto_send.py 
b/src/mapi/glapi/gen/glX_proto_send.py
index bec0222..20137df 100644
--- a/src/mapi/glapi/gen/glX_proto_send.py
+++ b/src/mapi/glapi/gen/glX_proto_send.py
@@ -683,7 +683,9 @@ generic_%u_byte( GLint rop, const void * ptr )
 
                                elif output and not f.reply_always_array:
                                        if not output.is_image():
-                                               print '        if 
(%s_data_length(reply) == 0)' % (xcb_name)
+                                               print '        // the 
XXX_data_length() xcb function name is misleading, it returns the number'
+                                               print '        // of elements, 
not the lenght of the data part. A single element is embedded.'
+                                               print '        if 
(%s_data_length(reply) == 1)' % (xcb_name)
                                                print '            
(void)memcpy(%s, &reply->datum, sizeof(reply->datum));' % (output.name)
                                                print '        else'
                                        print '        (void)memcpy(%s, 
%s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, 
xcb_name, output.get_base_type_string())
++++++ u_0001_integer_overflow_in_XF86DRIOpenConnection_CVE-2013-1993.patch 
++++++
[Mesa-dev] [PATCH:mesa 1/2] integer overflow in XF86DRIOpenConnection() 
[CVE-2013-1993 1/2]
Alan Coopersmith alan.coopersmith at oracle.com

busIdStringLength is a CARD32 and needs to be bounds checked before adding
one to it to come up with the total size to allocate, to avoid integer
overflow leading to underallocation and writing data from the network past
the end of the allocated buffer.

Reported-by: Ilja Van Sprundel <ivansprundel at ioactive.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 src/glx/XF86dri.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: mesa-8.0.4/src/glx/XF86dri.c
===================================================================
--- mesa-8.0.4.orig/src/glx/XF86dri.c
+++ mesa-8.0.4/src/glx/XF86dri.c
@@ -43,6 +43,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
 #include <X11/extensions/Xext.h>
 #include <X11/extensions/extutil.h>
 #include "xf86dristr.h"
+#include <limits.h>
 
 static XExtensionInfo _xf86dri_info_data;
 static XExtensionInfo *xf86dri_info = &_xf86dri_info_data;
@@ -201,7 +202,11 @@ XF86DRIOpenConnection(Display * dpy, int
    }
 
    if (rep.length) {
-      if (!(*busIdString = (char *) Xcalloc(rep.busIdStringLength + 1, 1))) {
+      if (rep.busIdStringLength < INT_MAX)
+         *busIdString = calloc(rep.busIdStringLength + 1, 1);
+      else
+         *busIdString = NULL;
+      if (*busIdString == NULL) {
          _XEatData(dpy, ((rep.busIdStringLength + 3) & ~3));
          UnlockDisplay(dpy);
          SyncHandle();
++++++ 
u_0002_integer_overflow_in_XF86DRIGetClientDriverName_CVE-2013-1993.patch ++++++
[Mesa-dev] [PATCH:mesa 2/2] integer overflow in XF86DRIGetClientDriverName() 
[CVE-2013-1993 2/2]
Alan Coopersmith alan.coopersmith at oracle.com

clientDriverNameLength is a CARD32 and needs to be bounds checked before
adding one to it to come up with the total size to allocate, to avoid
integer overflow leading to underallocation and writing data from the
network past the end of the allocated buffer.

Reported-by: Ilja Van Sprundel <ivansprundel at ioactive.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 src/glx/XF86dri.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Index: mesa-8.0.4/src/glx/XF86dri.c
===================================================================
--- mesa-8.0.4.orig/src/glx/XF86dri.c
+++ mesa-8.0.4/src/glx/XF86dri.c
@@ -300,9 +300,11 @@ XF86DRIGetClientDriverName(Display * dpy
    *ddxDriverPatchVersion = rep.ddxDriverPatchVersion;
 
    if (rep.length) {
-      if (!
-          (*clientDriverName =
-           (char *) Xcalloc(rep.clientDriverNameLength + 1, 1))) {
+      if (rep.clientDriverNameLength < INT_MAX)
+         *clientDriverName = calloc(rep.clientDriverNameLength + 1, 1);
+      else
+         *clientDriverName = NULL;
+      if (*clientDriverName == NULL) {
          _XEatData(dpy, ((rep.clientDriverNameLength + 3) & ~3));
          UnlockDisplay(dpy);
          SyncHandle();
++++++ u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch ++++++
>From 26de08de6f27a5fe5fc6aaeee0ebedf40626ab04 Mon Sep 17 00:00:00 2001
From: Tobias Johannes Klausmann <[email protected]>
Date: Fri, 20 Apr 2012 11:52:31 +0200
Subject: [PATCH] When glXBindTexImageEXT is called and SWrast is used there
 will be a crash when sPriv->swrast_loader->getImage() is
 called from swrastSetTexBuffer2(). Reason: no memory has
 been allocated for the destination thus texImage->Data is
 NULL. Call ctx->Driver.TexImage2D() to initialize this. If
 memory has been allocated in a previous call free it first.

Signed-off-by: Egbert Eich <[email protected]>

for 8.0.1

Ported to 8.0.2
---
 src/mesa/drivers/dri/swrast/swrast.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/swrast/swrast.c 
b/src/mesa/drivers/dri/swrast/swrast.c
index d18dd09..dd7d0c0 100644
--- a/src/mesa/drivers/dri/swrast/swrast.c
+++ b/src/mesa/drivers/dri/swrast/swrast.c
@@ -63,6 +63,7 @@
 static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
                                GLint texture_format, __DRIdrawable *dPriv)
 {
+    GET_CURRENT_CONTEXT(ctx);
     struct dri_context *dri_ctx;
     int x, y, w, h;
     __DRIscreen *sPriv = dPriv->driScreenPriv;
@@ -93,6 +94,13 @@ static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint 
target,
 
     _mesa_init_teximage_fields(&dri_ctx->Base, texImage,
                               w, h, 1, 0, internalFormat, texFormat);
+    
+    if (texImage->Data)
+       ctx->Driver.FreeTexImageData(ctx, texImage);
+    
+    ctx->Driver.TexImage2D(ctx, target, 0, internalFormat,
+                          w, h, 0, texture_format, GL_UNSIGNED_INT_8_8_8_8,
+                          NULL, &ctx->Unpack, texObj, texImage);
 
     sPriv->swrast_loader->getImage(dPriv, x, y, w, h, (char *)swImage->Buffer,
                                   dPriv->loaderPrivate);
-- 
1.7.7

++++++ u_mesa-8.0-llvmpipe-shmget.patch ++++++
diff -up mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx 
mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c
--- mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx  2012-04-24 
07:37:03.000000000 -0400
+++ mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c     2012-05-16 
13:30:36.596312047 -0400
@@ -252,8 +252,6 @@ drisw_update_tex_buffer(struct dri_drawa
    struct pipe_transfer *transfer;
    char *map;
    int x, y, w, h;
-   int ximage_stride, line;
-   int cpp = util_format_get_blocksize(res->format);
 
    get_drawable_info(dPriv, &x, &y, &w, &h);
 
@@ -266,14 +264,6 @@ drisw_update_tex_buffer(struct dri_drawa
    /* Copy the Drawable content to the mapped texture buffer */
    get_image(dPriv, x, y, w, h, map);
 
-   /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */
-   ximage_stride = w * cpp;
-   for (line = h-1; line; --line) {
-      memmove(&map[line * transfer->stride],
-              &map[line * ximage_stride],
-              ximage_stride);
-   }
-
    pipe_transfer_unmap(pipe, transfer);
    pipe_transfer_destroy(pipe, transfer);
 }
diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c
--- mesa-20120424/src/glx/drisw_glx.c.jx        2012-04-24 07:37:03.000000000 
-0400
+++ mesa-20120424/src/glx/drisw_glx.c   2012-05-16 13:29:25.087965268 -0400
@@ -24,6 +24,9 @@
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
 
 #include <X11/Xlib.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <X11/extensions/XShm.h>
 #include "glxclient.h"
 #include <dlfcn.h>
 #include "dri_common.h"
@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int
    ximage->data = NULL;
 }
 
+static int shm_error;
+
+static int
+shm_handler(Display *d, XErrorEvent *e)
+{
+    shm_error = 1;
+    return 0;
+}
+
+static int
+align(int value, int alignment)
+{
+   return (value + alignment - 1) & ~(alignment - 1);
+}
+
+/*
+ * Slight fast path.  Short of changing how texture memory is allocated, we
+ * have two options for getting the pixels out.  GetImage is clamped by the
+ * server's write buffer size, so you end up doing lots of relatively small
+ * requests (128k each or so), with two memcpys: down into the kernel, and
+ * then back up.  ShmGetImage is one big blit into the shm segment (which
+ * could be GPU DMA, in principle) and then another one here.
+ */
+static Bool
+swrastShmGetImage(__DRIdrawable *read, char *data, struct drisw_drawable *prp)
+{
+    __GLXDRIdrawable *pread = &(prp->base);
+    Display *dpy = pread->psc->dpy;
+    XImage *ximage = prp->ximage;
+    unsigned long image_size = ximage->height * ximage->bytes_per_line;
+    Bool ret = 0;
+    XShmSegmentInfo seg = { 0, -1, (void *)-1, 0 };
+    int (*old_handler)(Display *, XErrorEvent *);
+
+    if (!XShmQueryExtension(dpy))
+       goto out;
+
+    /* image setup */
+    seg.shmid = shmget(IPC_PRIVATE, image_size, IPC_CREAT | 0777);
+    if (seg.shmid < 0)
+       goto out;
+
+    seg.shmaddr = shmat(seg.shmid, NULL, 0);
+    if (seg.shmaddr == (void *)-1)
+       goto out;
+
+    XSync(dpy, 0);
+    old_handler = XSetErrorHandler(shm_handler);
+    XShmAttach(dpy, &seg);
+    XSync(dpy, 0);
+    XSetErrorHandler(old_handler);
+    if (shm_error)
+       goto out;
+
+    ximage->data = seg.shmaddr;
+    ximage->obdata = &seg;
+    if (!XShmGetImage(dpy, pread->xDrawable, ximage, 0, 0, -1))
+       goto out;
+
+    /*
+     * ShmGetImage doesn't actually pay attention to ->bytes_per_line.
+     * We have to compensate for this somewhere since llvmpipe's natural
+     * tile width is 64.  Do it here so we don't have to undo it with a
+     * bunch of memmove in the driver.
+     */
+    do {
+       int i;
+       char *src = ximage->data;
+       int dst_width = align(ximage->width * ximage->bits_per_pixel / 8, 256);
+
+       for (i = 0; i < ximage->height; i++) {
+           memcpy(data, src, ximage->bytes_per_line);
+           data += dst_width;
+           src += ximage->bytes_per_line;
+       }
+    } while (0);
+    ret = 1;
+
+out:
+    ximage->obdata = NULL;
+    ximage->data = NULL;
+    shm_error = 0;
+    XShmDetach(dpy, &seg);
+    if (seg.shmaddr != (void *)-1)
+       shmdt(seg.shmaddr);
+    if (seg.shmid > -1)
+       shmctl(seg.shmid, IPC_RMID, NULL);
+    return ret;
+}
+
 static void
 swrastGetImage(__DRIdrawable * read,
                int x, int y, int w, int h,
@@ -220,11 +313,17 @@ swrastGetImage(__DRIdrawable * read,
    readable = pread->xDrawable;
 
    ximage = prp->ximage;
-   ximage->data = data;
    ximage->width = w;
    ximage->height = h;
    ximage->bytes_per_line = bytes_per_line(w * ximage->bits_per_pixel, 32);
 
+   /* XXX check dimensions, if any caller ever sub-images */
+   if (swrastShmGetImage(read, data, prp))
+      return;
+
+   /* shm failed, fall back to protocol */
+   ximage->data = data;
+
    XGetSubImage(dpy, readable, x, y, w, h, ~0L, ZPixmap, ximage, 0, 0);
 
    ximage->data = NULL;
++++++ u_mesa-8.0.1-fix-16bpp.patch ++++++
diff -up Mesa-8.0.1/src/glx/drisw_glx.c.jx Mesa-8.0.1/src/glx/drisw_glx.c
--- Mesa-8.0.1/src/glx/drisw_glx.c.jx   2012-04-02 10:34:23.000000000 -0400
+++ Mesa-8.0.1/src/glx/drisw_glx.c      2012-04-02 11:44:19.296407735 -0400
@@ -274,7 +274,9 @@ swrastShmGetImage(__DRIdrawable *read, c
     do {
        int i;
        char *src = ximage->data;
-       int dst_width = align(ximage->width * ximage->bits_per_pixel / 8, 256);
+       int bytes_per_pixel = ((ximage->bits_per_pixel + 7) / 8);
+       int dst_width = align(ximage->width * bytes_per_pixel,
+                             64 * bytes_per_pixel);
 
        for (i = 0; i < ximage->height; i++) {
            memcpy(data, src, ximage->bytes_per_line);
diff -up Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx 
Mesa-8.0.1/src/mesa/state_tracker/st_manager.c
--- Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx   2012-02-14 
18:44:00.000000000 -0500
+++ Mesa-8.0.1/src/mesa/state_tracker/st_manager.c      2012-04-02 
12:02:14.613964417 -0400
@@ -528,6 +528,9 @@ st_context_teximage(struct st_context_if
       if (util_format_get_component_bits(internal_format,
                UTIL_FORMAT_COLORSPACE_RGB, 3) > 0)
          internalFormat = GL_RGBA;
+      else if (util_format_get_component_bits(internal_format,
+                 UTIL_FORMAT_COLORSPACE_RGB, 0) == 5)
+         internalFormat = GL_RGB5;
       else
          internalFormat = GL_RGB;
 
++++++ u_remove-os-abi-tag.patch ++++++
Author: Stefan Dirsch <[email protected]>
Subject: Remove OS ABI tag from libGL, so it is no longer preferred over libGLs 
without OS ABI tag
References: bnc#765294, fdo#26663

diff -u -r -p mesa-8.0.3.orig//src/mapi/glapi/gen/gl_x86-64_asm.py 
mesa-8.0.3/src/mapi/glapi/gen/gl_x86-64_asm.py
--- mesa-8.0.3.orig//src/mapi/glapi/gen/gl_x86-64_asm.py        2012-06-12 
12:07:39.000000000 +0200
+++ mesa-8.0.3/src/mapi/glapi/gen/gl_x86-64_asm.py      2012-06-12 
12:09:17.000000000 +0200
@@ -181,7 +181,7 @@ class PrintGenericStubs(gl_XML.gl_print_
 
        def printRealFooter(self):
                print ''
-               print '#if defined(GLX_USE_TLS) && defined(__linux__)'
+               print '#if 0 && defined(__linux__)'
                print ' .section ".note.ABI-tag", "a"'
                print ' .p2align 2'
                print ' .long   1f - 0f   /* name length */'
diff -u -r -p mesa-8.0.3.orig//src/mapi/glapi/gen/gl_x86_asm.py 
mesa-8.0.3/src/mapi/glapi/gen/gl_x86_asm.py
--- mesa-8.0.3.orig//src/mapi/glapi/gen/gl_x86_asm.py   2012-06-12 
12:07:39.000000000 +0200
+++ mesa-8.0.3/src/mapi/glapi/gen/gl_x86_asm.py 2012-06-12 12:09:29.000000000 
+0200
@@ -189,7 +189,7 @@ class PrintGenericStubs(gl_XML.gl_print_
                print '\t\tALIGNTEXT16'
                print 'GLNAME(gl_dispatch_functions_end):'
                print ''
-               print '#if defined(GLX_USE_TLS) && defined(__linux__)'
+               print '#if 0 && defined(__linux__)'
                print ' .section ".note.ABI-tag", "a"'
                print ' .p2align 2'
                print ' .long   1f - 0f   /* name length */'
diff -u -r -p mesa-8.0.3.orig//src/mapi/glapi/glapi_x86-64.S 
mesa-8.0.3/src/mapi/glapi/glapi_x86-64.S
--- mesa-8.0.3.orig//src/mapi/glapi/glapi_x86-64.S      2012-06-12 
12:07:39.000000000 +0200
+++ mesa-8.0.3/src/mapi/glapi/glapi_x86-64.S    2012-06-12 12:09:43.000000000 
+0200
@@ -37448,7 +37448,7 @@ GL_PREFIX(EGLImageTargetTexture2DOES):
        .globl GL_PREFIX(TransformFeedbackVaryings) ; .set 
GL_PREFIX(TransformFeedbackVaryings), GL_PREFIX(TransformFeedbackVaryingsEXT)
        .globl GL_PREFIX(ProvokingVertex) ; .set GL_PREFIX(ProvokingVertex), 
GL_PREFIX(ProvokingVertexEXT)
 
-#if defined(GLX_USE_TLS) && defined(__linux__)
+#if 0 && defined(__linux__)
        .section ".note.ABI-tag", "a"
        .p2align 2
        .long   1f - 0f   /* name length */
diff -u -r -p mesa-8.0.3.orig//src/mapi/glapi/glapi_x86.S 
mesa-8.0.3/src/mapi/glapi/glapi_x86.S
--- mesa-8.0.3.orig//src/mapi/glapi/glapi_x86.S 2012-06-12 12:07:39.000000000 
+0200
+++ mesa-8.0.3/src/mapi/glapi/glapi_x86.S       2012-06-12 12:09:01.000000000 
+0200
@@ -1504,7 +1504,7 @@ GLNAME(gl_dispatch_functions_start):
                ALIGNTEXT16
 GLNAME(gl_dispatch_functions_end):
 
-#if defined(GLX_USE_TLS) && defined(__linux__)
+#if 0 && defined(__linux__)
        .section ".note.ABI-tag", "a"
        .p2align 2
        .long   1f - 0f   /* name length */
diff -u -r -p mesa-8.0.3.orig//src/mapi/mapi/entry_x86-64_tls.h 
mesa-8.0.3/src/mapi/mapi/entry_x86-64_tls.h
--- mesa-8.0.3.orig//src/mapi/mapi/entry_x86-64_tls.h   2012-06-12 
12:07:39.000000000 +0200
+++ mesa-8.0.3/src/mapi/mapi/entry_x86-64_tls.h 2012-06-12 12:10:20.000000000 
+0200
@@ -28,7 +28,7 @@
 
 #include "u_macros.h"
 
-#ifdef __linux__
+#if 0
 __asm__(".section .note.ABI-tag, \"a\"\n\t"
         ".p2align 2\n\t"
         ".long 1f - 0f\n\t"      /* name length */
diff -u -r -p mesa-8.0.3.orig//src/mapi/mapi/entry_x86_tls.h 
mesa-8.0.3/src/mapi/mapi/entry_x86_tls.h
--- mesa-8.0.3.orig//src/mapi/mapi/entry_x86_tls.h      2012-06-12 
12:07:39.000000000 +0200
+++ mesa-8.0.3/src/mapi/mapi/entry_x86_tls.h    2012-06-12 12:10:32.000000000 
+0200
@@ -29,7 +29,7 @@
 #include <string.h>
 #include "u_macros.h"
 
-#ifdef __linux__
+#if 0
 __asm__(".section .note.ABI-tag, \"a\"\n\t"
         ".p2align 2\n\t"
         ".long 1f - 0f\n\t"      /* name length */
++++++ upstream-llvm-patch.diff ++++++
>From fe34006908f1ff99ada34d52c06fd80197e452ec Mon Sep 17 00:00:00 2001
From: Vinson Lee <[email protected]>
Date: Wed, 14 Mar 2012 05:40:52 +0000
Subject: gallivm: Fix createOProfileJITEventListener namespace with llvm-3.1.

llvm-3.1svn r152620 refactored the OProfile profiling code.
createOProfileJITEventListener was moved from the llvm namespace to the
llvm::JITEventListener namespace.

Signed-off-by: Vinson Lee <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
---
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index fe7616b..68f8808 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -62,7 +62,11 @@
 extern "C" void
 lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE)
 {
+#if HAVE_LLVM >= 0x0301
+   
llvm::unwrap(EE)->RegisterJITEventListener(llvm::JITEventListener::createOProfileJITEventListener());
+#else
    
llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener());
+#endif
 }
 
 
--
cgit v0.9.0.2-2-gbebe

>From 1633dcd890d97bd5e4d125d57f2f529f04d14477 Mon Sep 17 00:00:00 2001
From: Vinson Lee <[email protected]>
Date: Tue, 06 Mar 2012 06:00:40 +0000
Subject: gallivm: Pass in a MCRegisterInfo to MCInstPrinter on llvm-3.1.

llvm-3.1svn r152043 changes createMCInstPrinter to take an additional
MCRegisterInfo argument.

Signed-off-by: Vinson Lee <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
---
(limited to 'src/gallium/auxiliary/gallivm/lp_bld_debug.cpp')

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index 11209da..b6849cb 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -235,7 +235,18 @@ lp_disassemble(const void* func)
    int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
 #endif
 
-#if HAVE_LLVM >= 0x0300
+#if HAVE_LLVM >= 0x0301
+   OwningPtr<const MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
+   if (!MRI) {
+      debug_printf("error: no register info for target %s\n", Triple.c_str());
+      return;
+   }
+#endif
+
+#if HAVE_LLVM >= 0x0301
+   OwningPtr<MCInstPrinter> Printer(
+         T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MRI, *STI));
+#elif HAVE_LLVM == 0x0300
    OwningPtr<MCInstPrinter> Printer(
          T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
 #elif HAVE_LLVM >= 0x0208
--
cgit v0.9.0.2-2-gbebe

>From 4f513002f65c629576252b34efedf3c8c4531dfd Mon Sep 17 00:00:00 2001
From: Vinson Lee <[email protected]>
Date: Tue, 03 Apr 2012 05:14:15 +0000
Subject: gallivm: Pass in a MCInstrInfo to createMCInstPrinter on llvm-3.1.

llvm-3.1svn r153860 makes MCInstrInfo available to the MCInstPrinter.

Signed-off-by: Vinson Lee <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
---
(limited to 'src/gallium/auxiliary/gallivm/lp_bld_debug.cpp')

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index c5afff0..9cf2094 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -241,11 +241,17 @@ lp_disassemble(const void* func)
       debug_printf("error: no register info for target %s\n", Triple.c_str());
       return;
    }
+
+   OwningPtr<const MCInstrInfo> MII(T->createMCInstrInfo());
+   if (!MII) {
+      debug_printf("error: no instruction info for target %s\n", 
Triple.c_str());
+      return;
+   }
 #endif
 
 #if HAVE_LLVM >= 0x0301
    OwningPtr<MCInstPrinter> Printer(
-         T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MRI, *STI));
+         T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MII, *MRI, 
*STI));
 #elif HAVE_LLVM == 0x0300
    OwningPtr<MCInstPrinter> Printer(
          T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
--
cgit v0.9.0.2-2-gbebe
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to