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]
