granite-rust/compiler
Ramon de C Valle 004aa15b47 Add cross-language LLVM CFI support to the Rust compiler
This commit adds cross-language LLVM Control Flow Integrity (CFI)
support to the Rust compiler by adding the
`-Zsanitizer-cfi-normalize-integers` option to be used with Clang
`-fsanitize-cfi-icall-normalize-integers` for normalizing integer types
(see https://reviews.llvm.org/D139395).

It provides 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). For more
information about LLVM CFI and cross-language LLVM CFI support for the
Rust compiler, see design document in the tracking issue #89653.

Cross-language LLVM CFI can be enabled with -Zsanitizer=cfi and
-Zsanitizer-cfi-normalize-integers, and requires proper (i.e.,
non-rustc) LTO (i.e., -Clinker-plugin-lto).
2023-05-03 22:41:29 +00:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi Store hashes in special types so they aren't accidentally encoded as numbers 2023-04-18 10:52:47 -04:00
rustc_apfloat compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_arena Allow clippy::from_mut_ref 2023-04-09 22:29:56 +02:00
rustc_ast Auto merge of #110393 - fee1-dead-contrib:rm-const-traits, r=oli-obk 2023-04-19 13:03:40 +00:00
rustc_ast_lowering Update comments in format args lowering. 2023-04-20 18:09:32 +02:00
rustc_ast_passes Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_ast_pretty Remove .. from return type notation 2023-04-10 22:19:46 +00:00
rustc_attr Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_builtin_macros Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_codegen_cranelift Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_codegen_gcc Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_codegen_llvm Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_codegen_ssa Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_const_eval Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_data_structures deny(unsafe_op_in_unsafe_fn) in rustc_data_structures 2023-04-19 18:00:48 +00:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_error_codes Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_error_messages Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_errors Rollup merge of #110578 - bvanjoi:fix-issue-110547, r=jackh726 2023-04-21 06:44:30 +02:00
rustc_expand Auto merge of #109002 - michaelvanstraten:master, r=petrochenkov 2023-04-21 10:47:27 +00:00
rustc_feature Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_fluent_macro Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_fs_util Add try_canonicalize to rustc_fs_util and use it over fs::canonicalize 2023-03-16 21:50:23 +01:00
rustc_graphviz Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_hir_analysis Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_hir_pretty Remove identity casts 2023-04-09 23:22:14 +02:00
rustc_hir_typeck Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_incremental Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_index Don't allocate it IndexVec::remove 2023-04-18 12:55:54 +00:00
rustc_infer Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_interface Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_lexer Revert "Don't recover lifetimes/labels containing emojis as character literals" 2023-04-10 06:52:41 +00:00
rustc_lint Rollup merge of #110545 - WaffleLapkin:generic_arg_as_x, r=cjgillot 2023-04-20 14:36:54 +02:00
rustc_lint_defs Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_llvm Recognize AIX style archive kind 2023-04-19 11:10:47 +08:00
rustc_log Stabilize IsTerminal 2023-04-10 17:24:23 +09:00
rustc_macros Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_metadata Auto merge of #110648 - Dylan-DPC:rollup-em3ovcq, r=Dylan-DPC 2023-04-21 19:43:11 +00:00
rustc_middle Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_mir_build Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_mir_dataflow Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_mir_transform Auto merge of #110569 - saethlin:mir-pass-cooperation, r=cjgillot 2023-04-21 15:08:02 +00:00
rustc_monomorphize Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_parse Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_parse_format Fix typos in compiler 2023-04-10 22:02:52 +02:00
rustc_passes Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_plugin_impl Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_privacy Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_query_impl Rollup merge of #110632 - saethlin:panic-if-dep-graph-too-big, r=lcnr 2023-04-21 20:35:29 +05:30
rustc_query_system Add info for no_hash panic. 2023-04-20 18:56:12 +00:00
rustc_resolve Auto merge of #110648 - Dylan-DPC:rollup-em3ovcq, r=Dylan-DPC 2023-04-21 19:43:11 +00:00
rustc_serialize Remove f32 & f64 from MemDecoder/MemEncoder 2023-04-06 00:54:07 -07:00
rustc_session Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_smir Add Call terminator to SMIR 2023-04-20 12:00:41 -03:00
rustc_span Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_symbol_mangling Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
rustc_target Rollup merge of #108795 - thomcc:x86_64h-target, r=wesleywiser 2023-04-20 17:59:53 +02:00
rustc_trait_selection Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_traits Don't transmute &List<GenericArg> <-> &List<Ty> 2023-04-18 17:42:30 +00:00
rustc_transmute Erase regions when confirming transmutability candidate 2023-04-16 19:12:34 +00:00
rustc_ty_utils Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_type_ir Rollup merge of #110386 - nnethercote:clean-up-traversal-macros, r=lcnr 2023-04-17 18:13:35 +02:00