On Thu, Feb 17, 2022 at 12:40:40PM +0100, Paolo Bonzini wrote:
> On 2/17/22 10:28, Stefan Hajnoczi wrote:
> >>But going against ABI and toolchain in this way is really no long-term
> >>solution.  You need to switch to stackless co-routines, or we need to
> >>provide proper ABI-level support for this.  Today it's the thread
> >>pointer, tomorrow it's the shadow stack pointer, and the day after that,
> >>it's the SafeStack pointer.  And further down the road, it's some thread
> >>state for garbage collection support.  Or something like that.
> >
> >Yes, understood :(. This does feel like solving an undefined behavior
> >problem by adding more undefined behavior on top!
> 
> Yes, this is the kind of thing that I generally despise when I see
> other programs do it...  it's easy to dig ourselves in the same
> hole.
> 
> >I took a quick look at C++20 coroutines since they are available in
> >compilers but the primitives look hard to use even from C++, let alone
> >from C.
> 
> They're C++ only in GCC, too.  I really think that QEMU should be
> compilable in C++, but I'm not sure how easy a sell it is.

It's perfectly fine to have one compilation unit written in C++ with a few
symbol in `extern "C"`. No need to touch the other part of the project.

Reply via email to