[PATCH] D59780: Support Intel Control-flow Enforcement Technology

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 29 10:20:09 PDT 2019


ruiu marked 10 inline comments as done.
ruiu added inline comments.


================
Comment at: lld/ELF/Arch/X86.cpp:415
+namespace {
+class IntelCET : public X86 {
+  void writeGotPlt(uint8_t *Buf, const Symbol &S) const override;
----------------
MaskRay wrote:
> `template <class ELFT> class IntelCET : public X86_64<ELFT> {`
> 
> `IBT-enabled PLT` can be used with the ILP32 programming model (x86-32 ABI). (If you don't like putting too much stuff in the initial commit, `class IntelCET : public X86_64<ELF64LE> {`.
Actually the template is gone, I removed it because no code depended on ELFT. (Also no one really uses x32 ABI I guess? I thought that I read an article that Linux kernel developers are discussing deprecating x32 ABI.)


================
Comment at: lld/ELF/InputFiles.cpp:594
 
+// If a source file is compiled with x86 hardware-assisted call flow control
+// enabled, the generated object file contains feature flags indicating that
----------------
MaskRay wrote:
> call flow control -> Control-Flow Enforcement ?
This is a general name and not specific to the Intel's implementation.


================
Comment at: lld/ELF/InputFiles.cpp:608
+static uint32_t readX86Features(ObjFile<ELFT> *Obj, ArrayRef<uint8_t> Data) {
+  typedef typename ELFT::Nhdr Elf_Nhdr;
+  typedef typename ELFT::Note Elf_Note;
----------------
MaskRay wrote:
> `using Elf_Nhdr = ...` is more common nowadays.
Yeah, but we should convert all of them in lld at once.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59780/new/

https://reviews.llvm.org/D59780





More information about the llvm-commits mailing list