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