This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: std::call_once without TLS
- From: Paolo Carlini <paolo dot carlini at oracle dot com>
- To: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Cc: Chris Fairles <chris dot fairles at gmail dot com>, libstdc++ <libstdc++ at gcc dot gnu dot org>
- Date: Sun, 03 May 2009 18:52:42 +0200
- Subject: Re: std::call_once without TLS
- References: <4348dea50904021638j4973b798v856bc8715cfa8068@mail.gmail.com> <4348dea50904251357v68476479t4a14260a1c7d283c@mail.gmail.com> <49F428B9.8070401@oracle.com> <4348dea50904260608w660f521bgbe579c0315a7181d@mail.gmail.com> <49F468D9.6070102@oracle.com> <4348dea50904260725pa6cda22t34d2f296627e1894@mail.gmail.com> <49F47352.8050700@oracle.com> <4348dea50904260812p2d70a1a4n969c657b7d6e9a5b@mail.gmail.com> <4348dea50904291147u6764ca2dlce1177ee0c7a04d8@mail.gmail.com> <fac6bb500904291817i146ba446p314a4b98bd57786@mail.gmail.com> <4348dea50905030355g475cdefal2d0b4fd57c0395c8@mail.gmail.com>
Hi,
> 2009/4/30 Chris Fairles:
>
>>> Here's an ABI-compatible patch to fix libstdc++/39909, it would be
>>> good if Chris or Benjamin could review it.
>>>
>>> Code using the new ABI will use a lock object on the caller's stack
>>> and provide a pointer to it, if the pointer is NULL then the caller is
>>> using the old ABI the global lock object.
>>>
>> Many apologize for being absent on this issue.
>>
>> This non-ABI breaking patch applies only to 4.4 right?
>>
> I don't know. Paolo?
>
It would apply to mainline and 4_4-branch.
> Preserving the ABI will be needed if users want to link objects
> compiled using call_once from 4.4.0 and 4.5.0 -- but IMHO trying to
> preserve ABI for the experimental C++0x stuff is too difficult and if
> someone uses those features they should be prepared to accept that
> they can't expect compatibility between major releases.
>
Really, we don't want to add / remove symbols from a version already
delivered to the users. I agree we can tolerate more in case of C++0x
but first we don't have a clean way to do without breaking abi-check and
delivering incomprehensible error messages to the users, second, as I
said already, we don't want to edit in the linker script versions
already delivered to the users (in this specific case 3.4.11 in 4.4.0)
Paolo.
Paolo.