On Sun, 28 Nov 2010 19:33:54 -0500
I started this topic by saying:
I need to run X with the fvwm window manager, but the F14 X server
doesn't play nice with fvwm - or with twm. When fvwm or twm calls
XCreateFontSet(), the X server dies with a SIGSEGV.
To get around this, I have copied the F13 /usr/bin/Xorg server
and /usr/lib/xorg/modules directory contents to my F14 system, and
they work just fine with the F14 fvwm, F14 X libraries, and F14 fonts.
While this workaround works, it's not exactly a good long term fix.
Note that this workaround means the problem is with the F14 X server
or its loadable modules, not the F14 fvwm.
When twm is used, it calls XCreateFontSet() with a
argument different from that in the fvwm XCreateFontSet() call, and
the F14 server dies, so the problem is not the font asked for by fvwm.
This gets stranger and stranger ...
Before trying to dig into the X server code, I wanted some clues about
where to look, so I put this into root's .xserverrc:
exec /usr/bin/ltrace /usr/bin/Xorg :0
I deleted root's .xinitrc, .fvwmrc, and .fvwm directory and, as root
(only root can ltrace /usr/bin/Xorg) I ran:
xinit fvwm 2>/tmp/Xorg.out
The ltrace output in /tmp/Xorg.out has 176 calls to memmove(), all
with five arguments, like this example:
memmove(0xa352c50, 0xa3535e0, 1648, 0x806892f, 0x40001c)
Can anyone shed some light on what is going on here? The first three
arguments appear to be the usual three memmove() arguments: dest, src,
and count. The extra two aren't documented anywhere I can find, and
memmove() has always been a three-argument function.
To further confuse things, memmove() isn't the only call with too many
arguments. clock_gettime() is supposed to have two arguments, but
it's called 694 times with five arguments. There may well be other
calls with strange argument counts, but the output has 371800 lines,
and I'm not up to examining all of them.
Dick St. Peters, stpeters(a)NetHeaven.com
Gatekeeper, NetHeaven, Saratoga Springs, NY