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

From: Dan Li
Date: Wed Jul 19 2023 - 04:41:58 EST


Hi All,

Embarrassingly, due to personal reasons, I may not be able to complete
the series of patches on the forward side of GCC CFI for the time being.

Please forgive me for not realizing that I should have sent this help
email a long time ago :(

This topic has been delayed for a long time, and I would be very grateful
if someone can help complete this series of patches.

BTW, please let me know if there are more groups I can cc for help.

Thanks!
Dan.

On Sat, 25 Mar 2023 at 16:11, Dan Li <ashimida.1990@xxxxxxxxx> wrote:
>
> 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@xxxxxxxxxx/
> [2] https://clang.llvm.org/docs/ControlFlowIntegrity.html
> [3] https://reviews.llvm.org/D119296
>
> Signed-off-by: Dan Li <ashimida.1990@xxxxxxxxx>
>
> ---
> 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
>