This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: std::call_once without TLS


2009/4/26 Paolo Carlini:
> Jonathan Wakely wrote:
>> I proposed a fix as soon as I found the problem, three weeks before
>> 4.4.0 was released. ?I personally don't consider it important, as I
>> don't use any platforms without TLS.
>>
> Ok, I understand. I saw something around, in an interim form, was hoping
> people more knowledgeable than me in this area could provide you some
> feedback. Anyway, for the future, if you have changes which impact the
> exported symbols very close to the release, make sure to ping it
> properly and point out its urgency.

OK, will do.

> Thanks a lot. I added Chris in CC for the PR. In case, please, keep in
> contact. If I understand correctly, in case of no TLS of course we
> cannot do any "miracle", but we must minimally make sure that user code
> compiled with 4.4.0 still links with the 4.4.1 library (thus 3.4.11 vs
> 3.4.12).

Hmm, then a partial fix would be to retain the buggy
__get_once_functor_lock() and the global lock object, for existing
code which has inlined the current call_once().  That will work as
long as it's not called concurrently.

The rest of my patch could still be applied, so that new code compiled
with 4.4.1+ will get the fixed implementation.  Mixing objects
compiled with 4.4.0 and 4.4.1+ will still be buggy, but that's no
worse than the case today.

I'll see what I can do ...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]