[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#314905: New gcc-4.0 patch



It turns out that with my old patch, the package didn't get compiled
with -fno-strict-aliasing, and as a result any program using Xt
segfaulted at startup.  Here's a new patch which fixes this.
-- 
Daniel Schepler              "Please don't disillusion me.  I
schepler@math.berkeley.edu    haven't had breakfast yet."
                                 -- Orson Scott Card
diff -urN xfree86-4.3.0.dfsg.1.old/debian/patches/099za_gcc_4.0_compilation_fix.diff xfree86-4.3.0.dfsg.1/debian/patches/099za_gcc_4.0_compilation_fix.diff
--- xfree86-4.3.0.dfsg.1.old/debian/patches/099za_gcc_4.0_compilation_fix.diff	1970-01-01 00:00:00.000000000 +0000
+++ xfree86-4.3.0.dfsg.1/debian/patches/099za_gcc_4.0_compilation_fix.diff	2005-06-19 16:42:48.000000000 +0000
@@ -0,0 +1,44 @@
+diff -urN xc.old/config/cf/linux.cf xc/config/cf/linux.cf
+--- xc.old/config/cf/linux.cf	2005-06-19 16:26:15.000000000 +0000
++++ xc/config/cf/linux.cf	2005-06-19 16:37:29.000000000 +0000
+@@ -612,7 +612,7 @@
+ # endif
+ #endif
+ 
+-#if  (GccMajorVersion == 3) &&  (GccMinorVersion >= 1)
++#if  (GccMajorVersion > 3) || ((GccMajorVersion == 3) &&  (GccMinorVersion >= 1))
+ # define GccAliasingArgs      -fno-strict-aliasing
+ #else
+ # define GccAliasingArgs      /* */
+diff -urN xc.old/lib/GL/mesa/src/drv/tdfx/tdfx_span.c xc/lib/GL/mesa/src/drv/tdfx/tdfx_span.c
+--- xc.old/lib/GL/mesa/src/drv/tdfx/tdfx_span.c	2002-10-30 12:52:00.000000000 +0000
++++ xc/lib/GL/mesa/src/drv/tdfx/tdfx_span.c	2005-06-19 16:36:25.000000000 +0000
+@@ -588,12 +588,14 @@
+     (((type *)((ReadParamsp)->lfbWrapPtr))                          \
+                  [((y)) * ((ReadParamsp)->LFBStrideInElts)          \
+                    + ((x) - (ReadParamsp)->firstWrappedX)])
+-#define PUT_FB_DATA(ReadParamsp, type, x, y, value)                        \
+-    (GET_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
+ #define PUT_ORDINARY_FB_DATA(ReadParamsp, type, x, y, value)              \
+     (GET_ORDINARY_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
+ #define PUT_WRAPPED_FB_DATA(ReadParamsp, type, x, y, value)                \
+     (GET_WRAPPED_FB_DATA(ReadParamsp, type, x, y) = (type)(value))
++#define PUT_FB_DATA(ReadParamsp, type, x, y, value) \
++    (((x) < (ReadParamsp)->firstWrappedX) \
++        ? PUT_ORDINARY_FB_DATA(ReadParamsp, type, x, y, value) \
++        : PUT_WRAPPED_FB_DATA(ReadParamsp, type, x, y, value))
+ 
+ static void
+ tdfxDDWriteDepthSpan(GLcontext * ctx,
+diff -urN xc.old/programs/Xserver/hw/xfree86/xf86cfg/loader.h xc/programs/Xserver/hw/xfree86/xf86cfg/loader.h
+--- xc.old/programs/Xserver/hw/xfree86/xf86cfg/loader.h	2001-07-09 23:45:24.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/xf86cfg/loader.h	2005-06-19 16:36:25.000000000 +0000
+@@ -75,7 +75,7 @@
+     unsigned long       num;
+     char *              str;
+     double              realnum;
+-    Bool		bool;
++    Bool		boolval;
+     OptFrequency	freq;
+ } ValueUnion;
+ 

Reply to: