This is kind of unlikely, but I thought I'd ask and see.
I just started fooling around with SDL*. I've used openGL with glut before, so all I've done so far is get my OGL stuff to work with that instead. UNFORTUNATELY, I've run into this issue where when the program exits, it sometimes causes X to crash (the backtrace begins and ends in /usr/lib64/xorg/modules/extensions/libglx.so). This never happened with glut, BTW, and it does not happen with non-GL SDL stuff.
Now, this just happened this afternoon, so I have not really repeatedly tested this much, but it seems to me that by using stdlib.h and "exit()" (in main, instead of just return) that the chances of the fault occuring are much reduced. I did this because the SDL doc "example 2.8" which demos how to use OGL in SDL uses exit (because there is a seperate clean-up function) and it seemed to cause the fault less, so I went thru looking at how that code differs from mine, et. al.
Of course, the fact that it doesn't happen all the time means my statistical inferences here could be totally based on coincidence. Also, this is obviously a problem in libglx, and not in my program BUT is there any possible rational connection between the use of exit() instead of a main() return and the apparent decrease in X faults?
*I decided I wanna make a video game...like a FPS 3D version of "break out" or "win brick", ie, you are the paddle, you can move in x and y, the bricks are layered in all THREE dimensions, and you can angle the (square) paddle around the x and y axis -- anyone know if this has been done before? I thought a great networked version would be to start from 2 opposite sides of the brick-mass (maybe even all 6!), multiple balls (one per player, but they can end up anywhere), lost balls are replaced but you loose points for loosing them, and the goal is to destroy the most bricks before the whole mass is gone.