This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix quick_exit to match C++11 specification.
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Florian Weimer <fweimer at redhat dot com>, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, GNU C Library <libc-alpha at sourceware dot org>
- Cc: Johan Karlsson <johan dot karlsson at enea dot com>
- Date: Wed, 8 Jun 2016 15:19:29 -0400
- Subject: Re: [PATCH] Fix quick_exit to match C++11 specification.
- Authentication-results: sourceware.org; auth=none
- References: <5751B292 dot 40109 at redhat dot com> <383b6001-e2ef-635a-4240-aa7fba826de3 at redhat dot com> <57525107 dot 5060500 at redhat dot com> <1c6e298e-ae7c-7e7a-d271-dfb75e874a04 at redhat dot com> <575613DA dot 3070209 at redhat dot com> <99119374-6dc7-42c2-451c-b4be759b7cc2 at redhat dot com> <57567CCE dot 2080207 at redhat dot com> <e0755a7a-f83a-423c-be4c-de7ba8e63c5c at redhat dot com> <57569A37 dot 3030002 at redhat dot com> <5756B7DC dot 4030805 at linaro dot org> <5756C971 dot 7010308 at redhat dot com> <17a6f214-14f6-f2de-c8b4-93691187d3c2 at redhat dot com>
On 06/07/2016 09:48 AM, Florian Weimer wrote:
> On 06/07/2016 03:17 PM, Carlos O'Donell wrote:
>
>>> 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),
>
> How so? You only changed behavior for the 2.18 TLS dtor support added here:
You are absolutely right.
In which case it's only 3 years of usage.
> commit ba384f6ed9275f3966505f2375b56d169e3dc588
> Author: Siddhesh Poyarekar <siddhesh@redhat.com>
> Date: Mon Feb 18 19:08:21 2013 +0530
>
> C++11 thread_local destructors support
>
> I don't see how your change makes a different for the libstdc++ approximation.
>
> What am I missing?
Nothing.
* Is 3 years enough usage to justify a compat symbol?
* Is the cost of the compat symbol and long term maintenance
worth the benefit to our users?
My feeling is that this is a "yes" in this particular case, and
I did the work to fix the interface and test the compat symbol.
Are there any other downsides that I missed?
--
Cheers,
Carlos.