On Tue, 7 Dec 2021 at 21:52, Florian Weimer wrote:
>
> * Jonathan Wakely:
>
> > 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.
>
> On the other hand, with separate versions, it's possible to reintroduce
> the old behavior at a later date, as a bugfix.  It's not strictly
> necessary to do that work upfront.  It's just nice to have this option.

Ah yes, a new symbol version gives us more flexibility in every direction.

> > 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.
>
> Ping me if you want to discuss options. 8->

Thanks. I'll try it and let you know how I get on.

> Out of curiosity—do you support building libstdc++ (the shared object)
> with a different compiler than the included GCC?

No. Even using a different GCC is unsupported. I know of two people
who've tried using clang, for reasons. But it's unsupported.

You can use the installed libstdc++ headers and libs with other
non-GCC compilers, but not other versions of GCC. But you can't build
it with anything except the GCC built from the same revision of the
source tree.

Reply via email to