[RFC/RFT,V2 0/3] Add compiler support for Kernel Control Flow Integrity

Dan Li
2023-03-25T08:12:00Z

This series of patches is mainly used to support the control flow
integrity protection of the linux kernel [1], which is similar to
-fsanitize=kcfi in clang 16.0 [2,3].

Any suggestion please let me know :).

Thanks, Dan.

[1] https://lore.kernel.org/all/20220908215504.3686827-1-samitolvanen@google.com/
[2] https://clang.llvm.org/docs/ControlFlowIntegrity.html
[3] https://reviews.llvm.org/D119296

Signed-off-by: Dan Li <ashimida.1990@gmail.com>

---
Dan Li (3):
[PR102768] flag-types.h (enum sanitize_code): Extend sanitize_code to
64 bits to support more features
[PR102768] Support CFI: Add basic support for Kernel Control Flow
Integrity
[PR102768] aarch64: Add support for Kernel Control Flow Integrity

gcc/asan.h | 4 +-
gcc/c-family/c-attribs.cc | 10 +-
gcc/c-family/c-common.h | 2 +-
gcc/c/c-parser.cc | 4 +-
gcc/cfgexpand.cc | 26 ++++++
gcc/cgraphunit.cc | 34 +++++++
gcc/combine.cc | 1 +
gcc/common.opt | 4 +-
gcc/config/aarch64/aarch64.cc | 166 ++++++++++++++++++++++++++++++++++
gcc/cp/typeck.cc | 2 +-
gcc/doc/invoke.texi | 36 ++++++++
gcc/doc/tm.texi | 27 ++++++
gcc/doc/tm.texi.in | 8 ++
gcc/dwarf2asm.cc | 2 +-
gcc/emit-rtl.cc | 1 +
gcc/emit-rtl.h | 4 +
gcc/final.cc | 24 ++++-
gcc/flag-types.h | 67 +++++++-------
gcc/gimple.cc | 11 +++
gcc/gimple.h | 5 +-
gcc/opt-suggestions.cc | 2 +-
gcc/opts.cc | 26 +++---
gcc/opts.h | 8 +-
gcc/output.h | 3 +
gcc/reg-notes.def | 1 +
gcc/target.def | 38 ++++++++
gcc/toplev.cc | 4 +
gcc/tree-cfg.cc | 2 +-
gcc/tree.cc | 144 +++++++++++++++++++++++++++++
gcc/tree.h | 1 +
gcc/varasm.cc | 26 ++++++
31 files changed, 627 insertions(+), 66 deletions(-)

--
2.17.1