X Strike Force XFree86 SVN commit: r2244 - in trunk/debian: . patches
Author: branden
Date: 2005-05-06 01:40:38 -0500 (Fri, 06 May 2005)
New Revision: 2244
Modified:
trunk/debian/CHANGESETS
trunk/debian/TODO
trunk/debian/changelog
trunk/debian/patches/000_stolen_from_xorg.diff
trunk/debian/patches/071_nonexecutable_malloced_mem.diff
Log:
Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
make the XFree86's X servers ELF object loader ensure cache coherency on
IA64. Resync patch #071. (Closes: #303461)
Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS 2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/CHANGESETS 2005-05-06 06:40:38 UTC (rev 2244)
@@ -108,4 +108,9 @@
#099v. (Closes: #284448)
2243
+Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
+make the XFree86's X servers ELF object loader ensure cache coherency on
+IA64. Resync patch #071. (Closes: #303461)
+ 2244
+
vim:set ai et sts=4 sw=4 tw=80:
Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO 2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/TODO 2005-05-06 06:40:38 UTC (rev 2244)
@@ -22,7 +22,6 @@
#284561: awareness of /dev/input/mouse handling of PS/2 mice in Linux 2.6
+ Use /proc/hardware on m68k architecture to set a reasonable default mouse
port. See <URL: http://lists.debian.org/debian-68k/2004/08/msg00392.html>.
-* #303461: ensure cache coherency when using elfloader on IA64
Post 4.3.0-1
------------
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/changelog 2005-05-06 06:40:38 UTC (rev 2244)
@@ -88,8 +88,12 @@
on font metrics and avoid SEGVs in xfs and the X server. Resync patch
#099v. (Closes: #284448)
- -- Branden Robinson <branden@debian.org> Thu, 5 May 2005 21:28:32 -0500
+ * Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
+ make the XFree86's X servers ELF object loader ensure cache coherency on
+ IA64. Resync patch #071. (Closes: #303461)
+ -- Branden Robinson <branden@debian.org> Fri, 6 May 2005 00:53:51 -0500
+
xfree86 (4.3.0.dfsg.1-12) unstable; urgency=medium
* Urgency set to medium due to fix for release-critical bug #295175
Modified: trunk/debian/patches/000_stolen_from_xorg.diff
===================================================================
--- trunk/debian/patches/000_stolen_from_xorg.diff 2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/patches/000_stolen_from_xorg.diff 2005-05-06 06:40:38 UTC (rev 2244)
@@ -31,6 +31,12 @@
* Another fix for MiscPassMessage(): Initialize returned "status".
[Thomas Winischhofer]
+xc/programs/Xserver/hw/xfree86/common/compiler.h @ 1.5
+xc/programs/Xserver/hw/xfree86/loader/elfloader.c @ 1.5
+ When not using dlopen ia64 needs an extra cache
+ flush to ensure the icache is coherent when modules
+ are loaded (Alex Williamson). [Egbert Eich]
+
diff -Naurd xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h xc/programs/Xserver/hw/xfree86/common/xf86str.h
--- xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:05:46.000000000 +0000
+++ xc/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:14:05.000000000 +0000
@@ -448,3 +454,33 @@
return (client->noClientException);
}
+Index: xc/programs/Xserver/hw/xfree86/common/compiler.h
+--- xc/programs/Xserver/hw/xfree86~/common/compiler.h 2003-01-29 10:23:20.000000000 -0500
++++ xc/programs/Xserver/hw/xfree86/common/compiler.h 2005-05-05 22:37:43.127205367 -0500
+@@ -434,7 +434,7 @@
+ */
+ # define ia64_flush_cache(Addr) \
+ __asm__ __volatile__ ( \
+- "fc %0;;;" \
++ "fc.i %0;;;" \
+ "sync.i;;;" \
+ "mf;;;" \
+ "srlz.i;;;" \
+Index: xc/programs/Xserver/hw/xfree86/loader/elfloader.c
+--- xc/programs/Xserver/hw/xfree86~/loader/elfloader.c 2005-05-05 22:37:11.934228000 -0500
++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2005-05-05 22:39:02.164145742 -0500
+@@ -2732,6 +2732,14 @@
+ case SHT_PROGBITS:
+ mprotect(elffile->lsection[j].saddr, SecSize(i),
+ PROT_READ|PROT_WRITE|PROT_EXEC);
++#ifdef __ia64__
++ {
++ int k;
++ for (k = 0; k < SecSize(i); k += 32)
++ ia64_flush_cache(elffile->lsection[j].saddr+k);
++ ia64_flush_cache(elffile->lsection[j].saddr+SecSize(i)-1);
++ }
++#endif
+ break;
+ #endif
+ case SHT_SYMTAB:
Modified: trunk/debian/patches/071_nonexecutable_malloced_mem.diff
===================================================================
--- trunk/debian/patches/071_nonexecutable_malloced_mem.diff 2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/patches/071_nonexecutable_malloced_mem.diff 2005-05-06 06:40:38 UTC (rev 2244)
@@ -18,8 +18,12 @@
Not submitted to XFree86 or X.Org yet.
---- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2005-02-09 02:24:53.000000000 -0500
-+++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2005-02-09 02:30:43.000000000 -0500
+These changes are already present in freedesktop.org xorg CVS revision
+1.2.4.1 (tag XORG-6_8_2).
+
+Index: xc/programs/Xserver/hw/xfree86/loader/elfloader.c
+--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2005-05-05 22:49:22.881677475 -0500
++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2005-05-05 22:50:45.667615022 -0500
@@ -957,7 +957,7 @@
ErrorF( "ELFCreateGOT() Unable to reallocate memory!!!!\n" );
return FALSE;
@@ -29,7 +33,7 @@
{
unsigned long page_size = getpagesize();
unsigned long round;
-@@ -2728,10 +2728,16 @@
+@@ -2728,10 +2728,15 @@
elffile->lsection[j].size=SecSize(i);
elffile->lsection[j].flags=flags;
switch (SecType(i)) {
@@ -41,15 +45,14 @@
+ {
+ unsigned long page_size = getpagesize();
+ unsigned long round;
-+
+ round = (unsigned long)elffile->lsection[j].saddr & (page_size - 1);
+ mprotect( (char *)elffile->lsection[j].saddr - round,
+ SecSize(i) + round, PROT_READ|PROT_WRITE|PROT_EXEC);
+ }
- break;
- #endif
- case SHT_SYMTAB:
-@@ -2925,7 +2931,7 @@
+ #ifdef __ia64__
+ {
+ int k;
+@@ -2933,7 +2937,7 @@
ErrorF( "Unable to allocate ELF sections\n" );
return NULL;
}
Reply to: