https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95680

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-06-15

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Iain Buclaw from comment #1)
> (In reply to H.J. Lu from comment #0)
> > libdruntime manipulates user stack.  It doesn't support shadow stack from
> > Intel CET:
> > 
> > https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html
> > 
> > like the ucontext family functions in glibc.
> 
> If I understand the change in glibc correctly, core/thread.d (initStack)
> will need a few extra calls to push() to accommodate for the shadow stack,
> then implementation handled in fiber_switchContext.

It is much more than that.

> Though perhaps it may make more sense to ditch the custom Fiber
> implementation and always use ucontext to handle context switching if
> there's always going to thing kind of disconnect between the system and D
> runtime library.

Yes, it should work.

> Is there a specific test that fails because of this?

FAIL: libphobos.druntime/core/thread.d execution test
FAIL: libphobos.druntime_shared/core/thread.d execution test
FAIL: libphobos.phobos_shared/std/concurrency.d execution test
FAIL: libphobos.phobos/std/concurrency.d execution test

Reply via email to