On Wed, Jul 31, 2019 at 4:20 PM Hendrik Boom wrote: > > There is, of course, also the question what would happen on nonintel or > older machines if they don't have those ENDBR64 or ENDBR32 > instructions in the hardware. > I read somewhere that those instructions look like no-ops on older machines. > > (Such as, perhaps, an actual AMD-manufactured AMD64? Like my > 10-year-old AMD server?) > > Do we now have two distinct platforms to support? > It could be a configure-time choice. I wouldn't call that two distinct platforms, more like two variants of the same platform. Just speculating here. All this needs to be discussed and agreed on, of course. - Xavier Leroy > -- hendrik > > > > > > > > > > > There's also some stuff with shadow stacks which looks a lot more > > > complicated and I didn't fully understand. The whole thing is > > > described in: > > > > > > > > > > https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf > > > https://lwn.net/Articles/758245/ > > > > > > > > I don't understand how these shadow stacks are supposed to interact with > > exception handling, either Caml-style or C++/Java style. > > > > Kind regards, > > > > - Xavier Leroy > > > > > > > Unfortunately (but for obvious reasons) every asm object in a program > > > must be compiled with CET in order to enable the feature for the > > > program as a whole. This means that any mixed OCaml/C program can't > > > benefit from CET even in the C parts, unless we also support this in > > > the OCaml parts. > > > > > > Has anyone looked into supporting this kind of thing in the amd64 > > > backend? > > > > > > (I looked at the OCaml trunk and couldn't see any relevant commits, > > > but maybe I missed something in my grepping). > > > > > > Rich. > > > >