Ralf Habacker wrote:
Corinna Vinschen wrote: Ok, I don't know how that's implemented in cygipc so I think it might be necessary to mention that:
The implementation of the MSG, SEM and SHM functions in Cygwin are so that if the functions are not available (be it that CYGWIN doesn't contain the word "server" or Cygserver isn't running) not only set errno to ENOSYS, but they also raise a SIGSYS.
So it's crucial that your code handles that signal. At least, it should ignore it (signal(SISYS, SIG_IGN)).
Harold
for the Xserver that means, that the shm initialisation code has to be changed to the detecting code used by FreeBSD and friends (CheckForShmSyscall() in Xserver/Xext/shm.c and Xserver/Xext/xf86bigfont.c)
The cygipc-related stuff could then be removed in both files.
Actually, I solved the problem in the same manner that the *BSD platforms used. There is nothing specific to Cygwin in the code and we trap the signal just like they do (even though it wasn't thrown in our implementation until now).
Thus, nothing should need to be changed when we switch to cygserver.
Here is the version of shm.c that got committed:
<http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/Xext/shm.c\ ?rev=3.39&content-type=text/x-cvsweb-markup>
Harold
