ImageMagick's "modules" and __cxa_finalize
Mikhail Teterin
mi+kde at aldan.algebra.com
Mon Jul 30 03:58:08 UTC 2007
Has anyone had any luck using ImageMagick built with modules support?
If I try that, and follow-up with `gmake check' (in the ${WRKSRC}),
about a fifth of ImageMagick's own self-tests seg-fault -- all of
them inside __cxa_finalize (after main() has already returned):
mi at aldan:ImageMagick/work/ImageMagick-6.3.5 (1023) gdb tests/.libs/rwblob tests/rwblob.core
[...]
(gdb) where 5
#0 0x0000000804008cc0 in ?? ()
#1 0x00000008020079e2 in __cxa_finalize () from /lib/libc.so.6
#2 0x0000000802007637 in exit () from /lib/libc.so.6
#3 0x0000000000401135 in _start ()
#4 0x000000080052a000 in ?? ()
(More stack frames follow...)
(gdb)
mi at aldan:ImageMagick/work/ImageMagick-6.3.5 (1024) gdb tests/.libs/rwfile tests/rwfile.core
[...]
(gdb) where 5
#0 0x0000000803f04cc0 in ?? ()
#1 0x00000008020079e2 in __cxa_finalize () from /lib/libc.so.6
#2 0x0000000802007637 in exit () from /lib/libc.so.6
#3 0x0000000000401085 in _start ()
#4 0x000000080052a000 in ?? ()
(More stack frames follow...)
(gdb)
Full build/test log can be seen here:
http://aldan.algebra.com/~mi/IM-6.3.5-3.failure.log
Building without modules (as is the port's default) allows all self-tests to
pass smoothly.
According to ImageMagick and GraphicsMagick developers, these crashes are due
to some "reckless" calls to atexit() from inside the modules (or inside the
modules-loaded graphics librarires). By the time the program is exiting, the
libraries with the atexit-loaded functions may already be unloaded.
But I thought, FreeBSD had that case covered since 2003:
http://www.freebsd.org/cgi/query-pr.cgi?pr=59552
Can someone, please, comment?
-mi
More information about the freebsd-ports
mailing list