std::call_once without TLS
Paolo Carlini
paolo.carlini@oracle.com
Sun May 3 16:52:00 GMT 2009
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.
More information about the Libstdc++
mailing list