https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58142

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=52268

--- Comment #11 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #4)
> (In reply to Jonathan Wakely from comment #3)
> > I think it's still open because nobody has looked at it again recently, not
> > because of any conscious decision.
> > 
> > I'm changing the component to libstdc++ as the runtime library is
> > responsible for the cleanup.
> > 
> > Iain, what do you think? If comment 2 is right, then GCC 7.1 and later will
> > use __cxa_thread_atexit from libc and the destruction order will be correct.
> > I don't know when Darwin libc acquired that function, maybe it's in all
> > supported versions of Darwin but we just didn't use it until the PR 78968
> > change.
> 
> A quick look says that __cxa_thread_atexit exists in libc from Darwin13,
> macOS 10.9 / Mavericks onwards.
> 
> So it's not present in the system mentioned in the OP and Comment #1.
> .. it will not be present in Darwin9 and 10 which I still build and test
> for, but it's present in all versions "supported" by the vendor.
> 
> We have previously worked around such issues by having a version-specific
> CRT, but not sure if that's applicable in this case.
> 
> NOTE 1: Darwin uses GCC's emulatedTLS, and I have some concerns that there
> might be C++ issues with initialisers (and, thus possibly DTORs) anyway (see
> 84497).

and also bug 52268 

> 
> NOTE 2: (I don't think it's relevant, but just for completeness) Darwin's
> linker doesn't support ctor/dtor priorities.

Reply via email to