This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Async-signal-safe access to __thread variables from dlopen()ed libraries?
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Torvald Riegel <triegel at redhat dot com>, Rich Felker <dalias at aerifal dot cx>, Paul Pluzhnikov <ppluzhnikov at google dot com>, Roland McGrath <roland at hack dot frob dot com>, Richard Henderson <rth at twiddle dot net>, GNU C Library <libc-alpha at sourceware dot org>, Andrew Hunter <ahh at google dot com>, Alexandre Oliva <aoliva at redhat dot com>
- Date: Wed, 02 Oct 2013 10:54:05 -0400
- Subject: Re: Async-signal-safe access to __thread variables from dlopen()ed libraries?
- Authentication-results: sourceware.org; auth=none
- References: <20120613182826 dot 0CFAB2C0A3 at topped-with-meat dot com> <CALoOobMtXCw+oe7ZL0=my8YH5st8b1==CasS8i07z6G9DfaX-w at mail dot gmail dot com> <20120613210444 dot 659732C095 at topped-with-meat dot com> <mcr4nqebzok dot fsf at dhcp-172-18-216-180 dot mtv dot corp dot google dot com> <20120614002931 dot ABB762C08B at topped-with-meat dot com> <mcr1uliaeep dot fsf at dhcp-172-18-216-180 dot mtv dot corp dot google dot com> <CALoOobPJ7G7ciRfc2JwzHjsDTg4-_h-SXqeU1zR4WEzoyQhyNg at mail dot gmail dot com> <523BD470 dot 6090203 at redhat dot com> <CAKOQZ8y85QBkd97cEEmP-4OgE2KizCqknrVR_n44pwBGMs5uAw at mail dot gmail dot com> <523C88D1 dot 6090304 at redhat dot com> <20130920175246 dot GE20515 at brightrain dot aerifal dot cx> <1380705404 dot 8757 dot 1847 dot camel at triegel dot csb> <CAKOQZ8z82OXOCywL63=z84_2QaB-PDTSbro=MDdYoO8Y7izixg at mail dot gmail dot com>
On 10/02/2013 09:02 AM, Ian Lance Taylor wrote:
> On Wed, Oct 2, 2013 at 2:16 AM, Torvald Riegel <triegel@redhat.com> wrote:
>> On Fri, 2013-09-20 at 13:52 -0400, Rich Felker wrote:
>>> On Fri, Sep 20, 2013 at 01:41:37PM -0400, Carlos O'Donell wrote:
>>>> * Discuss the ISO C11 implications.
>>>>
>>>> ISO C11 wording in 7.14.1.1 p5:
>>>
>>> The ISO C text on signal handlers is rather irrelevant.
>>
>> While you can certainly target POSIX and treat what C defines as
>> secondary regarding signal handling, I don't agree that C's definitions
>> are irrelevant: If you want portable C11 code, you will rely on what ISO
>> C specifies.
>
> Yes. However, the C11 wording is irrelevant with regard to what glibc
> should provide. glibc is not a portable C11 library. It's a GNU
> library. At a bare minimum glibc needs to provide POSIX.1 support.
> And it's fine for a GNU library to provide more--e.g., glibc provides
> __thread variables long before they were in any standard.
I agree. The point of this discussion though is to make everyone aware of
the various issues, talk them out, and have answers for as many of them
as are relevant.
In the case of __thread it was clear you were using an implementation
namespace identifier which wasn't going to be portable.
Is there anything we could or should do to warn users about the potential
non-portability of a TLS variable use in a signal handler other than to
document this in the manual?
Cheers,
Carlos.