Hi,
ctwm 3.7 crashes on startup on 64-bit sparcs. The backtrace is:
#0 0x000000004136a16c in _XData32 () from /usr/X11R6/lib/libX11.so.6
#1 0x0000000041390a84 in XChangeProperty () from /usr/X11R6/lib/libX11.so.6
#2 0x0000000000141ea8 in InitGnome () at gnome.c:70
#3 0x00000000001105cc in main (argc=<value optimized out>,
This is the because the variable `curws' that is passed to XChangeProperty()
is an int not a long. The X code deferences the variable as a long and on
a 64-bit sparc this must be aligned on an 8-byte boundary. Because it is
an int, it is aligned on a 4-byte boundary, causing a bus error.
Also, the manual page for XChangeProperty says:
"If the specified format is 32, the property data must be a long array."
The fix is trivial and is appended.
I haven't checked for any other similar errors.
Thanks,
J
- - 8< - - - - - - - - - - - - - Cut here - - - - - - - - - - - - - >8 - -
--- gnome.c.dist 2005-06-21 05:35:19.000000000 +0000
+++ gnome.c 2006-12-15 11:24:46.000000000 +0000
@@ -23,7 +23,7 @@
void InitGnome (void) {
- int curws = 1;
+ long curws = 1;
virtualScreen *vs;
Atom _XA_WIN_SUPPORTING_WM_CHECK, _XA_WIN_PROTOCOLS,
_XA_WIN_PROTOCOLS_LIST[PROTOCOLS_COUNT], _XA_WIN_DESKTOP_BUTTON_PROXY;
- - 8< - - - - - - - - - - - - - Cut here - - - - - - - - - - - - - >8 - -
--
My other computer also runs NetBSD / Sailing at Newbiggin
http://www.netbsd.org/ / http://www.newbigginsailingclub.org/