| That seems to be the problem. H2/HG2/Q3A load either
| a refresh DLL that loads GL, or load GL. GL (in this
| case Mesa for Glide) installs an atexit() handler.
| The games later proceed to unload the DLL's (including
| GL) in an attempt to exit(int). At that point, the
| atexit handler of a DLL no longer available gets called,
| resulting in a segfault on exit(0) (user quits). I don't
| see how e.g. _fini() could remove an exit handler once
| installed?
you're right, i dreamed there was an unatexit :(.
|
| Consequently, these games use _exit(int), which circumvents
| the atexit() handlers (bad for profiling, dmalloc etc.).
| Might as well not have them.
| Certainly true. I am not sure how far along the LSB efforts
| are, though. If some requirement is put into the OpenGL ABI
| specs for now with the disclaimer that this to be replaced by
| generic LSB requirements when available, that would do fine.
| Even a bare recommendation would be good.
maybe a recommendation about being able to exit and unload
cleanly with no application intervention would be reasonable.