pixman: Branch '0.32' - 4 commits

Matt Turner mattst88 at kemper.freedesktop.org
Sun Nov 17 17:49:45 PST 2013


 configure.ac        |    2 +-
 pixman/pixman-x86.c |    2 +-
 test/utils.c        |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit dae5a758e25157b7cb5c79b88ffc819343901dd7
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sun Nov 17 17:48:54 2013 -0800

    Post-release version bump to 0.32.5

diff --git a/configure.ac b/configure.ac
index e682dd2..5a059f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,7 +54,7 @@ AC_PREREQ([2.57])
 
 m4_define([pixman_major], 0)
 m4_define([pixman_minor], 32)
-m4_define([pixman_micro], 4)
+m4_define([pixman_micro], 5)
 
 m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro])
 
commit 4b3a66b05ed69507b297ed62574fc97eb9472e1e
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sun Nov 17 17:46:52 2013 -0800

    Pre-release version bump to 0.32.4

diff --git a/configure.ac b/configure.ac
index 8b1ab58..e682dd2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,7 +54,7 @@ AC_PREREQ([2.57])
 
 m4_define([pixman_major], 0)
 m4_define([pixman_minor], 32)
-m4_define([pixman_micro], 3)
+m4_define([pixman_micro], 4)
 
 m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro])
 
commit 97a655d5cafc07e9185155c885b2d4564986ef85
Author: Søren Sandmann <ssp at redhat.com>
Date:   Sat Nov 16 18:57:01 2013 -0500

    test/utils.c: Make the stack unaligned only on 32 bit Windows
    
    The call_test_function() contains some assembly that deliberately
    causes the stack to be aligned to 32 bits rather than 128 bits on
    x86-32. The intention is to catch bugs that surface when pixman is
    called from code that only uses a 32 bit alignment.
    
    However, recent versions of GCC apparently make the assumption (either
    accidentally or deliberately) that that the incoming stack is aligned
    to 128 bits, where older versions only seemed to make this assumption
    when compiling with -msse2. This causes the vector code in the PRNG to
    now segfault when called from call_test_function() on x86-32.
    
    This patch fixes that by only making the stack unaligned on 32 bit
    Windows, where it would definitely be incorrect for GCC to assume that
    the incoming stack is aligned to 128 bits.
    
    V2: Put "defined(...)" around __GNUC__
    
    Reviewed-and-Tested-by: Matt Turner <mattst88 at gmail.com>
    Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=491110
    (cherry picked from commit f473fd1e7553a4e92a0d72bea360f05d005c9a88)

diff --git a/test/utils.c b/test/utils.c
index 281f6b4..ebe0ccc 100644
--- a/test/utils.c
+++ b/test/utils.c
@@ -648,7 +648,7 @@ call_test_function (uint32_t    (*test_function)(int testnum, int verbose),
 {
     uint32_t retval;
 
-#if defined (__GNUC__) && (defined (__i386) || defined (__i386__))
+#if defined (__GNUC__) && defined (_WIN32) && (defined (__i386) || defined (__i386__))
     __asm__ (
 	/* Deliberately avoid aligning the stack to 16 bytes */
 	"pushl	%1\n\t"
commit 5a313af74e9afe7524909c019daebfded3bef1fa
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Nov 12 12:59:42 2013 -0800

    Fix the SSSE3 CPUID detection.
    
    SSSE3 is detected by bit 9 of ECX, but we were checking bit 9 of EDX
    which is APIC leading to SSSE3 routines being called on CPUs without
    SSSE3.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    (cherry picked from commit 8487dfbcd056eff066939dc253fcf361b391592a)

diff --git a/pixman/pixman-x86.c b/pixman/pixman-x86.c
index 6527760..05297c4 100644
--- a/pixman/pixman-x86.c
+++ b/pixman/pixman-x86.c
@@ -170,7 +170,7 @@ detect_cpu_features (void)
 	features |= X86_SSE;
     if (d & (1 << 26))
 	features |= X86_SSE2;
-    if (d & (1 << 9))
+    if (c & (1 << 9))
 	features |= X86_SSSE3;
 
     /* Check for AMD specific features */


More information about the xorg-commit mailing list