rust/library/core/src
Manish Goregaokar 38bbc39895
Rollup merge of #105452 - rcvalle:rust-cfi-3, r=bjorn3
Add cross-language LLVM CFI support to the Rust compiler

This PR 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).

Thank you again, ``@bjorn3,`` ``@nikic,`` ``@samitolvanen,`` and the Rust community for all the help!
2023-05-03 16:42:48 -07:00
..
alloc core is now compilable 2023-04-16 07:20:26 +00:00
array Make sure that signatures aren't accidental refinements 2023-04-28 17:36:49 +00:00
async_iter use consistent terminology 2022-10-29 09:23:12 +02:00
cell replace version placeholders 2023-04-28 08:47:55 -07:00
char Rollup merge of #105076 - mina86:a, r=scottmcm 2023-05-02 11:44:50 +05:30
cmp Merge two different equality specialization traits in core 2023-03-01 14:42:06 -08:00
convert rm const traits in libcore 2023-04-16 06:49:27 +00:00
ffi Rollup merge of #105452 - rcvalle:rust-cfi-3, r=bjorn3 2023-05-03 16:42:48 -07:00
fmt handle cfg(bootstrap) 2023-04-28 08:47:55 -07:00
future Rollup merge of #110823 - compiler-errors:tweak-await-span, r=b-naber 2023-05-01 01:09:47 +02:00
hash core is now compilable 2023-04-16 07:20:26 +00:00
intrinsics Rollup merge of #110154 - DaniPopes:library-typos, r=JohnTitor 2023-04-14 21:11:12 +02:00
iter Rollup merge of #110958 - compiler-errors:stdlib-refinement, r=cuviper 2023-04-29 11:27:55 +05:30
macros Spelling library/ 2023-04-26 02:10:22 -04:00
mem Add intrinsics::transmute_unchecked 2023-04-22 17:22:03 -07:00
net remove some unneeded imports 2023-04-12 19:27:18 +02:00
num replace version placeholders 2023-04-28 08:47:55 -07:00
ops Auto merge of #110393 - fee1-dead-contrib:rm-const-traits, r=oli-obk 2023-04-19 13:03:40 +00:00
panic Rollup merge of #110110 - lukas-code:display-panic-info, r=JohnTitor 2023-04-14 21:11:12 +02:00
prelude Revert "Remove #[alloc_error_handler] from the compiler and library" 2023-04-25 00:08:35 +02:00
ptr Codegen fewer instructions in mem::replace 2023-04-30 22:33:04 -07:00
slice Rollup merge of #110997 - scottmcm:slice-iter-comments, r=the8472 2023-04-30 01:14:59 +02:00
str core is now compilable 2023-04-16 07:20:26 +00:00
sync replace version placeholders 2023-04-28 08:47:55 -07:00
task rm const traits in libcore 2023-04-16 06:49:27 +00:00
unicode Use hex literal for INDEX_MASK 2023-03-21 09:59:47 +01:00
any.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
arch.rs move core::arch into separate file 2022-11-20 10:28:14 +01:00
ascii.rs Refactor core::char::EscapeDefault and co. structures 2023-04-05 19:09:55 +02:00
asserting.rs [RFC 2011] Library code 2022-05-22 07:18:32 -03:00
bool.rs core is now compilable 2023-04-16 07:20:26 +00:00
borrow.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
cell.rs replace version placeholders 2023-04-28 08:47:55 -07:00
clone.rs core is now compilable 2023-04-16 07:20:26 +00:00
cmp.rs inline(always) for lt/le/ge/gt on integers and floats 2023-04-27 23:44:45 -07:00
default.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
error.md Small round of typo fixes 2022-11-04 20:06:18 -07:00
error.rs Bump to latest beta 2023-03-15 08:55:22 -04:00
escape.rs a bit more usize::from 2023-04-30 15:40:54 +02:00
hint.rs Rollup merge of #108416 - pat-nel87:Issue-107957-black_box_docs, r=jyn514 2023-04-26 01:55:49 -05:00
internal_macros.rs rm const traits in libcore 2023-04-16 06:49:27 +00:00
intrinsics.rs Codegen fewer instructions in mem::replace 2023-04-30 22:33:04 -07:00
lib.rs Rollup merge of #108161 - WaffleLapkin:const_param_ty, r=BoxyUwU 2023-05-02 11:44:50 +05:30
marker.rs Rollup merge of #108161 - WaffleLapkin:const_param_ty, r=BoxyUwU 2023-05-02 11:44:50 +05:30
option.rs Remove unneeded function call in core::option. 2023-04-29 15:38:04 -07:00
panic.rs Replace libstd, libcore, liballoc in docs. 2022-12-30 14:00:40 +01:00
panicking.rs handle cfg(bootstrap) 2023-04-28 08:47:55 -07:00
pin.rs Beautify pin! docs 2023-03-16 18:03:23 +01:00
primitive.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
primitive_docs.rs Mention array<->tuple convs in docs 2023-05-03 20:34:47 +00:00
result.rs replace version placeholders 2023-04-28 08:47:55 -07:00
time.rs Use fmt::Alignment instead of fmt::rt::v1::Alignment. 2023-04-20 18:03:47 +02:00
tuple.rs Remove [] <-> () From convertions 2023-05-02 14:37:40 +00:00
unit.rs Use implicit capture syntax in format_args 2022-03-10 10:23:40 -05:00