diff --git a/ati-6.7.196-alloca.patch b/ati-6.7.196-alloca.patch new file mode 100644 index 0000000..b30e143 --- /dev/null +++ b/ati-6.7.196-alloca.patch @@ -0,0 +1,53 @@ +diff -up xf86-video-ati-6.7.196/src/atidri.c.jx xf86-video-ati-6.7.196/src/atidri.c +--- xf86-video-ati-6.7.196/src/atidri.c.jx 2007-10-05 18:52:55.000000000 -0400 ++++ xf86-video-ati-6.7.196/src/atidri.c 2007-12-17 19:17:36.000000000 -0500 +@@ -553,11 +553,11 @@ static void ATIDRIMoveBuffers( WindowPtr + + if (nbox > 1) { + /* Keep ordering in each band, reverse order of bands */ +- pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec)*nbox); ++ pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox); + if (!pboxNew1) return; +- pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec)*nbox); ++ pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox); + if (!pptNew1) { +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pboxNew1); + return; + } + pboxBase = pboxNext = pbox+nbox-1; +@@ -588,13 +588,13 @@ static void ATIDRIMoveBuffers( WindowPtr + + if (nbox > 1) { + /* reverse order of rects in each band */ +- pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec)*nbox); +- pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec)*nbox); ++ pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox); ++ pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox); + if (!pboxNew2 || !pptNew2) { +- DEALLOCATE_LOCAL(pptNew2); +- DEALLOCATE_LOCAL(pboxNew2); +- DEALLOCATE_LOCAL(pptNew1); +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pptNew2); ++ xfree(pboxNew2); ++ xfree(pptNew1); ++ xfree(pboxNew1); + return; + } + pboxBase = pboxNext = pbox; +@@ -665,10 +665,10 @@ static void ATIDRIMoveBuffers( WindowPtr + outf(SRC_OFF_PITCH, pATI->NewHW.dst_off_pitch); + outf(DST_OFF_PITCH, pATI->NewHW.src_off_pitch); + +- DEALLOCATE_LOCAL(pptNew2); +- DEALLOCATE_LOCAL(pboxNew2); +- DEALLOCATE_LOCAL(pptNew1); +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pptNew2); ++ xfree(pboxNew2); ++ xfree(pptNew1); ++ xfree(pboxNew1); + + ATIDRIMarkSyncInt(pScreenInfo); + #endif diff --git a/radeon-6.7.196-alloca.patch b/radeon-6.7.196-alloca.patch new file mode 100644 index 0000000..f218723 --- /dev/null +++ b/radeon-6.7.196-alloca.patch @@ -0,0 +1,55 @@ +diff -up xf86-video-ati-6.7.196/src/radeon_dri.c.jx xf86-video-ati-6.7.196/src/radeon_dri.c +--- xf86-video-ati-6.7.196/src/radeon_dri.c.jx 2007-10-05 18:52:55.000000000 -0400 ++++ xf86-video-ati-6.7.196/src/radeon_dri.c 2007-12-17 19:19:43.000000000 -0500 +@@ -559,12 +559,12 @@ static void RADEONDRIMoveBuffers(WindowP + + if (nbox > 1) { + /* Keep ordering in each band, reverse order of bands */ +- pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec)*nbox); ++ pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox); + if (!pboxNew1) return; + +- pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec)*nbox); ++ pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox); + if (!pptNew1) { +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pboxNew1); + return; + } + +@@ -601,14 +601,14 @@ static void RADEONDRIMoveBuffers(WindowP + + if (nbox > 1) { + /* reverse order of rects in each band */ +- pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec)*nbox); +- pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec)*nbox); ++ pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox); ++ pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox); + + if (!pboxNew2 || !pptNew2) { +- DEALLOCATE_LOCAL(pptNew2); +- DEALLOCATE_LOCAL(pboxNew2); +- DEALLOCATE_LOCAL(pptNew1); +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pptNew2); ++ xfree(pboxNew2); ++ xfree(pptNew1); ++ xfree(pboxNew1); + return; + } + +@@ -679,10 +679,10 @@ static void RADEONDRIMoveBuffers(WindowP + + info->dst_pitch_offset = info->frontPitchOffset;; + +- DEALLOCATE_LOCAL(pptNew2); +- DEALLOCATE_LOCAL(pboxNew2); +- DEALLOCATE_LOCAL(pptNew1); +- DEALLOCATE_LOCAL(pboxNew1); ++ xfree(pptNew2); ++ xfree(pboxNew2); ++ xfree(pptNew1); ++ xfree(pboxNew1); + + info->accel->NeedToSync = TRUE; + #endif /* USE_XAA */ diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec index 383f393..c1ffef4 100644 --- a/xorg-x11-drv-ati.spec +++ b/xorg-x11-drv-ati.spec @@ -5,7 +5,7 @@ Summary: Xorg X11 ati video driver Name: xorg-x11-drv-ati Version: 6.7.196 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X Hardware Support @@ -19,10 +19,12 @@ Source3: radeon.xinf # Radeon patches (0-99) Patch2: radeon-6.6.3-renderaccel-buglet.patch Patch4: radeon-6.7.196-faster-ddc.patch +Patch5: radeon-6.7.196-alloca.patch # Rage 128 patches (100-199) # mach64 patches (200-299) +Patch200: ati-6.7.196-alloca.patch # ati wrapperloader patches (300-399) @@ -43,6 +45,8 @@ X.Org X11 ati video driver. %patch2 -p1 -b .renderaccel %patch4 -p1 -b .ddc +%patch5 -p1 -b .alloca-radeon +%patch200 -p1 -b .alloca-ati %build %configure --disable-static @@ -84,6 +88,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man4/radeon.4* %changelog +* Mon Dec 17 2007 Adam Jackson 6.7.196-2 +- *-6.7.196-alloca.patch: Fix ALLOCATE_LOCAL failures. + * Wed Nov 14 2007 Adam Jackson 6.7.196-1 - xf86-video-ati 6.7.196