rust/compiler/rustc_codegen_gcc/src
Matthias Krüger 947fe7e341
Rollup merge of #105109 - rcvalle:rust-kcfi, r=bjorn3
Add LLVM KCFI support to the Rust compiler

This PR adds LLVM Kernel Control Flow Integrity (KCFI) support to the Rust compiler. It initially provides forward-edge control flow protection for operating systems kernels for Rust-compiled code only by aggregating function pointers in groups identified by their return and parameter types. (See llvm/llvm-project@cff5bef.)

Forward-edge control flow protection for C or C++ and Rust -compiled code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code share the same virtual address space) will be provided in later work as part of this project by identifying C char and integer type uses at the time types are encoded (see Type metadata in the design document in the tracking issue #89653).

LLVM KCFI can be enabled with -Zsanitizer=kcfi.

Thank you again, `@bjorn3,` `@eddyb,` `@nagisa,` and `@ojeda,` for all the help!
2022-12-10 09:24:43 +01:00
..
back simplify a self-profiling activity call in the cg_gcc backend 2022-04-07 15:47:20 +02:00
intrinsic Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
abi.rs Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
allocator.rs Rewrite implementation of #[alloc_error_handler] 2022-10-31 16:32:57 +00:00
archive.rs Rewrite LLVM's archive writer in Rust 2022-11-26 19:35:32 +00:00
asm.rs Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
base.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
builder.rs Use &mut Bx more. 2022-11-16 15:46:39 +11:00
callee.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
common.rs Remove dead broken code from const zst handling in backends 2022-09-06 14:09:49 +00:00
consts.rs Move linkage type check to HIR analysis and fix semantics issues. 2022-12-05 15:05:43 -08:00
context.rs Prefer doc comments over //-comments in compiler 2022-11-27 11:19:04 +00:00
coverageinfo.rs Merge commit 'e228f0c16e' into libgccjit-codegen 2021-08-15 08:29:07 -04:00
debuginfo.rs Introduce composite debuginfo. 2022-11-15 17:53:50 +00:00
declare.rs Use custom entry name in gcc 2022-11-15 22:15:55 +05:30
errors.rs Move linkage type check to HIR analysis and fix semantics issues. 2022-12-05 15:05:43 -08:00
int.rs Merge commit 'e8dca3e87d' into sync_from_cg_gcc 2022-06-06 22:04:37 -04:00
lib.rs Allow actual AVX512-related feature names in the case of some misleading aliases 2022-11-12 18:46:21 -05:00
mono_item.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
type_.rs Add LLVM KCFI support to the Rust compiler 2022-12-08 17:24:39 -08:00
type_of.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00