Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Jul 2007 08:05:01 -0400
From:      Alexander Kabaev <kabaev@gmail.com>
Cc:        ports@FreeBSD.org, stable@FreeBSD.org
Subject:   Re: ImageMagick's "modules" and __cxa_finalize
Message-ID:  <20070731080501.65616627@kan.dnsalias.net>
In-Reply-To: <200707292331.10845@aldan>
References:  <200707292331.10845@aldan>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_YDkkS+HjyfdmMhxBIzTk_Kf
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Sun, 29 Jul 2007 23:31:10 -0400
Mikhail Teterin <mi+kde@aldan.algebra.com> wrote:

> Has anyone had any luck using ImageMagick built with modules support?
>=20
> 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):
>=20
> 	mi@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@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)=20
>=20
> Full build/test log can be seen here:
>=20
> 	http://aldan.algebra.com/~mi/IM-6.3.5-3.failure.log
>=20
> Building without modules (as is the port's default) allows all
> self-tests to pass smoothly.
>=20
> 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.
>=20
> But I thought, FreeBSD had that case covered since 2003:
>=20
> 	http://www.freebsd.org/cgi/query-pr.cgi?pr=3D59552
>=20
> Can someone, please, comment?
>=20
> 	-mi

You thought wrong.

Please read the PR again and try to understand what part it really does
cover and what doesn't. The comment was given to you before and it is
the right one:

<COMMENT>
atexit() cannot be used safely from the shared library.
</COMMENT>


That is the reason why __cxa_atexit was invented in the first place.

--
Alexander Kabaev

--Sig_YDkkS+HjyfdmMhxBIzTk_Kf
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFGryVtQ6z1jMm+XZYRApCtAJ9edgBUSYN9wbdfeEbAb+rSZA7TQwCfVoh5
w/zAMR9ZCz4BglLIKMgH7xU=
=KF31
-----END PGP SIGNATURE-----

--Sig_YDkkS+HjyfdmMhxBIzTk_Kf--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070731080501.65616627>