MaskRay planned changes to this revision.
MaskRay added a comment.
@ostannard @nickdesaulniers @peter.smith Unfortunately we will have to get
buy-in from GCC before committing to do an incompatible design. A promise that
they will implement a new approach to overcome the disadvantages and an
agreement on the new option name is probably sufficient for us to move forward.
A list of deficiency:
- sh_addralign={4,8}
- --gc-sections/COMDAT does not work
- Using a PC-relative relocation type instead of a symbolic relocation type
(R_AARCH64_ABS64, R_X86_64_64, R_PPC64_ADDR64) avoids SHF_WRITE, RELRO, and
dynamic relocations (24 bytes*number of functions, not negligible).
- Incompatible with `BTI c`. `nop;nop;nop;bti c;nop nop` probably works. I hope
my CodeGen change does not make such interop harder.
- On i386/x86-64 they should use multi-byte NOPs.
Other issues can be fixed in a backward-compatible manner, but the relocation
type issue cannot. If you know the Linux kernel contacts, please make them
aware of https://gcc.gnu.org/ml/gcc/2020-01/msg00067.html and the design we'd
like to do in D72215 <https://reviews.llvm.org/D72215>.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72222/new/
https://reviews.llvm.org/D72222
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits