NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
port-arm/50356: X server with wsfb broken on armeb environment
>Number: 50356
>Category: port-arm
>Synopsis: X server with wsfb broken on armeb environment
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: port-arm-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Oct 22 12:45:00 +0000 2015
>Originator: Rin Okuyama
>Release: 7.99.21
>Organization:
Department of Physics, Tohoku University
>Environment:
NetBSD cubietruck 7.99.21 NetBSD 7.99.21 (CT) #0: Thu Oct 22 21:27:06 JST 2015 root@XXX:XXX evbarm
>Description:
Display output of X server with wsfb is terribly corrupted on armeb
environments. For example, see a miserable xeyes below:
https://twitter.com/LabDrunker/status/657169238948360192
Output for external X servers is sanity, and an other application using
wsfb, namely, pkgsrc/x11/mlterm works fine. These suggest that X server
is broken.
>How-To-Repeat:
Run X server with wsfb driver on armeb environments.
>Fix:
Codes in X.org distribution assumes little endian for arm machines.
Check __ARMEB__ macro appropriately. Then, output gets sanity:
https://twitter.com/LabDrunker/status/657169452610400256
--- xsrc/external/mit/xorg-server/dist/include/servermd.h.orig 2015-10-22 18:53:27.000000000 +0900
+++ xsrc/external/mit/xorg-server/dist/include/servermd.h 2015-10-22 20:29:52.000000000 +0900
@@ -83,11 +83,15 @@
#endif /* __avr32__ */
-/* XXX arm is not always LE */
#if defined(__arm32__) || defined(__arm__)
+#ifdef __ARMEB__
+#define IMAGE_BYTE_ORDER MSBFirst
+#define BITMAP_BIT_ORDER MSBFirst
+#else
#define IMAGE_BYTE_ORDER LSBFirst
#define BITMAP_BIT_ORDER LSBFirst
+#endif
#define GLYPHPADBYTES 4
#endif /* __arm32__ */
Home |
Main Index |
Thread Index |
Old Index