On Tue, 7 Dec 2021, 21:20 Florian Weimer via Libstdc++, < libstd...@gcc.gnu.org> wrote:
> * Jonathan Wakely via Libstdc: > > > If necessary we could keep the terminate-on-cancellation behaviour as > > _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11 > > and export the new behaviour as @@GLIBCXX_3.4.30, although this patch > > doesn't do that. > > Note that if this fix escapes into the wild and then you have to make > the symbol version change, you will break newer applications. In a few > cases in glibc, we proactively added aliases at a different symbol > version, but with the same implementation (at first). > To be safe, we probably should preserve the old behaviour for the old version of the symbol. If we decide that the new behaviour is always preferable, we could change that later by making the old symbol an alias for the new. If we don't decide that, we'll be glad we made it a separate symbol. I'll see if I can get it working with two versioned symbols. We don't actually do that in libstdc++ currently, we only have a single version of every symbol. Thanks for the input - you convinced me that the extra work is worthwhile.