Global destructor order problems (was: Re: Are ports supposed to build and run on 10-CURRENT?)

Michael Gmelin freebsd at
Wed Jun 26 20:51:38 UTC 2013

On Wed, 26 Jun 2013 23:45:21 +0300
Konstantin Belousov <kostikbel at> wrote:

> On Wed, Jun 26, 2013 at 09:26:09PM +0200, Dimitry Andric wrote:
> > This revision is not in 9.1-RELEASE, but it is in 9-STABLE, so the
> > problem can also be reproduced there.
> ...
> > This is roughly gcc 4.3.0 and later.  For example, gcc 4.8
> > generates:
> I just tested the thing with gcc 4.8 on up to date stable/9 and HEAD.
> In both cases, major tom did not fail, at least not in the peculiar
> way. The gcc-generated code passed the PLT address of the
> corresponding destructor.

Could you replicate the problem using clang on stable/9 and HEAD? (I
didn't test gcc > 4.2.1 myself).

> The r211706 intent is indeed to prevent a situation when the libc
> calls the atexit(3)-registered termination function from dso which is
> already unloaded.  This is apparently epidemic with PHP and similar
> environments.

Michael Gmelin

More information about the freebsd-ports mailing list