Bug#319003: xserver-xorg: Trident and -3: libvgahw is still broken

2005-07-19 Thread Guillaume Melquiond
Package: xserver-xorg
Version: 6.8.2.dfsg.1-3
Severity: grave
Justification: renders package unusable

This bug-report is related to #318218, #318231, #318271, #318405. Feel 
free to merge it with them. I didn't, because part of the problem 
reported in these bug-reports was indeed fixed by the last version.

With the previous versions of xserver-xorg, because of the 
miscompilation in libvgahw, the screen was pure white in graphical mode, 
and completely garbled when switching to text VTs. Now, with the fix 
included in -3, the text consoles are usable again. But the screen is 
still pure white in graphical mode.

Installing the libvgahw.a file compiled by Ender fixes the problem. So 
it seems there is another miscompilation somewhere in the file.


-- Package-specific info:

VGA-compatible devices on PCI bus:
:01:00.0 VGA compatible controller: Trident Microsystems CyberBlade XPAi1 
(rev 82)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#319003: xserver-xorg: Trident and -3: libvgahw is still broken

2005-07-20 Thread Guillaume Melquiond
Le mercredi 20 juillet 2005 à 14:50 +0800, Eugene Konev a écrit :
> Can you please test if the problem still exists with the following
> libvgahw.a: http://www.imfi.kspu.ru/~ejka/libvgahw.a

This version of the library fixes the problem as well. Thanks.




Bug#319003: xserver-xorg: Trident and -3: libvgahw is still broken, Bug#318405: acknowledged by developer (Bug#318218: fixed in xorg-x11 6.8.2.dfsg.1-3)

2005-07-20 Thread Eugene Konev

Can you please test if the problem still exists with the following
libvgahw.a: http://www.imfi.kspu.ru/~ejka/libvgahw.a



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#318405: Bug#319003: xserver-xorg: Trident and -3: libvgahw is still broken, Bug#318405: acknowledged by developer (Bug#318218: fixed in xorg-x11 6.8.2.dfsg.1-3)

2005-07-20 Thread Reinhard Karcher
On Wed, Jul 20, 2005 at 02:50:21PM +0800, Eugene Konev wrote
> 
> Can you please test if the problem still exists with the following
> libvgahw.a: http://www.imfi.kspu.ru/~ejka/libvgahw.a
> 

Problem doesn't exit anymore. Thank you!

Reinhard



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#318405: Bug#319003: xserver-xorg: Trident and -3: libvgahw is still broken, Bug#318405: acknowledged by developer (Bug#318218: fixed in xorg-x11 6.8.2.dfsg.1-3)

2005-07-20 Thread Eugene Konev

Hello David.

On Wed, 20 Jul 2005 10:50:28 +0200
you wrote:

> What workaround have you tried to build that libvgahw.a? No
> optimization, or
> an enhanced version of the X.Org patch?

Enhanced version. Attached.

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

Index: xorg-x11-6.8.2.dfsg.1/programs/Xserver/hw/xfree86/vgahw/vgaHW.c
===
--- xc-old/programs/Xserver/hw/xfree86/vgahw/vgaHW.c2005-07-20 
10:32:26.0 +0800
+++ xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c2005-07-20 
10:33:42.0 +0800
@@ -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;
 }