This one fixes a problem that screws up virtual terminals whenever you
try to start X on certain video hardware (including Intel i810/i830,
which is what I have). I've been using Xorg with this patch for a while
and it's been working fine.
gcc4 has issues with libvgahw.a. This patch is a workaround stolen from
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161242 (by Olivier
Baudron). See also Debian #318218 and bugs merged to it
diff -ruN xc-old/programs/Xserver/hw/xfree86/vgahw/vgaHW.c
xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c
--- xc-old/programs/Xserver/hw/xfree86/vgahw/vgaHW.c 2005-05-08
23:23:09.000000000 -0400
+++ xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c 2005-07-15
15:09:29.000000000 -0400
@@ -428,12 +428,16 @@
static void
mmioWriteAttr(vgaHWPtr hwp, CARD8 index, CARD8 value)
{
+ volatile CARD8 tmp;
+
if (hwp->paletteEnabled)
index &= ~0x20;
else
index |= 0x20;
- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+ /* gcc-4.0 -O2 is broken : needs a volatile assignment */
+ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+
moutb(VGA_ATTR_INDEX, index);
moutb(VGA_ATTR_DATA_W, value);
}
@@ -441,12 +445,16 @@
static CARD8
mmioReadAttr(vgaHWPtr hwp, CARD8 index)
{
+ volatile CARD8 tmp;
+
if (hwp->paletteEnabled)
index &= ~0x20;
else
index |= 0x20;
- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+ /* gcc-4.0 -O2 is broken : needs a volatile assignment */
+ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+
moutb(VGA_ATTR_INDEX, index);
return minb(VGA_ATTR_DATA_R);
}
@@ -466,7 +474,11 @@
static void
mmioEnablePalette(vgaHWPtr hwp)
{
- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+ volatile CARD8 tmp;
+
+ /* gcc-4.0 -O2 is broken : needs a volatile assignment */
+ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+
moutb(VGA_ATTR_INDEX, 0x00);
hwp->paletteEnabled = TRUE;
}
@@ -474,7 +486,11 @@
static void
mmioDisablePalette(vgaHWPtr hwp)
{
- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+ volatile CARD8 tmp;
+
+ /* gcc-4.0 -O2 is broken : needs a volatile assignment */
+ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET);
+
moutb(VGA_ATTR_INDEX, 0x20);
hwp->paletteEnabled = FALSE;
}
--
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page