From: Peter Wang (tjaden@alphalink.com.au)
Date: Fri 30 Nov 2001 - 02:19:48 IST
Hello,
I'm writing on behalf of the Allegro developers. (Allegro is a game
programming library.)
In Allegro we use svgalib from a dynamically linked module. The
problem is that `vga_init' hooks `__vga_atexit' with `atexit', so if
we unload the module before the program terminates, the `atexit'
mechanism ends up pointing to invalid memory, and a segfault occurs
when the program ends.
We would like a way to initialise svgalib without it hooking
`__vga_atexit', and also have access to `__vga_atexit' ourselves, so
we can shut down svgalib before unloading the module.
The simplest way I can think of is probably to provide another init
function which takes a pointer to atexit. Then there are two options:
(1) If the pointer is NULL, don't hook `__vga_atexit'. Then you'd
need to expose the shutdown routine. This is what we do in
Allegro.
(2) If you don't want to expose the shutdown routine, we could pass a
dummy atexit function to the new init routine to trap the address
of `__vga_atexit'.
What do you think?
[Please Cc: me as I'm not subscribed to this list. Thanks.]
------------------------------------------------------------------
Unsubscribe: To: listbot@svgalib.org
Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:24 IST