[PATCH] Fix quick_exit to match C++11 specification.
Carlos O'Donell
carlos@redhat.com
Tue Jun 7 13:17:00 GMT 2016
On 06/07/2016 08:02 AM, Adhemerval Zanella wrote:
>
>
> On 07/06/2016 06:56, Carlos O'Donell wrote:
>> On 06/07/2016 05:27 AM, Florian Weimer wrote:
>>> On 06/07/2016 09:50 AM, Carlos O'Donell wrote:
>>>
>>>>> I put âcorrectâ in scare quotes because I'm not convinced that we'd
>>>>> need a compat symbol at all for this (but if we do, it probably
>>>>> should be put on the registration, storing a flag along with callback
>>>>> registration data).
>>>>
>>>> What do we gain by this?
>>>
>>> I don't think it matters. I think the compat symbol is overkill.
>>
>> That is a fine opinion to have.
>>
>> Thanks for being open to explaining your position.
>>
>
> I also do not see compelling reason to provide a compat symbol this
> specific issue. The destruction handles are registered only with
> __cxa_thread_atexit_impl and it is used only for thread_local on
> C++. And C++ definition on quick_exit stated that it does not
> run the TLS destructors, so a program that relies on it is just
> expecting a non-conforming implementation behaviour.
The problem is that we've had a quick_exit that runs thread local
destructors since glibc 2.10 (2009), so that means 7 years of applications
having the wrong behaviour, testing with the wrong behaviour, and maybe
even relying on the wrong behaviour to shutdown certain objects in the
event of a quick_exit call.
Therefore to be conservative I versioned the interface for those old
binaries. It feels a bit like overkill, but I also think we've been a bit
cavalier lately and should version more often.
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list