Uh oh!
There was an error while loading. Please reload this page.
Add LLVM CFI support to the Rust compiler - #89652
Conversation
rust-highfive
commented
Oct 7, 2021
r? @estebank (rust-highfive has picked a reviewer for you, use r? to override) |
rust-highfive
commented
Oct 7, 2021
|
rcvalle
commented
Oct 7, 2021
r? @eddyb |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
rcvalle
commented
Oct 8, 2021
FYI, I'll be looking into the CI build failures over the next days. |
This comment has been minimized.
This comment has been minimized.
eddyb
commented
Oct 8, 2021
nagisa
commented
Oct 8, 2021
Huh, there seem to be more caveats with |
eddyb
commented
Oct 8, 2021
Oh I had mistakenly thought the sanitizers were under |
nagisa
commented
Oct 8, 2021
Ah, my bad, sanitizers are in general still It hasn't yet. But we still need to make sure that we don't accidentally stabilize CFI alongside all other sanitizers at the same time. |
Sorry, the -C in the summary was a typo. Fixed. |
This comment has been minimized.
This comment has been minimized.
bors
commented
Oct 26, 2021
⌛ Testing commit 325cff7d964ca211f1e20256d9801ab932d01250 with merge 6502cfa028831805c3368093a0f1c520cb42ce37... |
This comment has been minimized.
This comment has been minimized.
bors
commented
Oct 26, 2021
💔 Test failed - checks-actions |
This commit adds initial documentation for LLVM Control Flow Integrity (CFI) support to the Rust compiler (see rust-lang/rust#89652 and rust-lang/rust#89653).
This comment has been minimized.
This comment has been minimized.
This commit adds initial documentation for LLVM Control Flow Integrity (CFI) support to the Rust compiler (see rust-lang#89652 and rust-lang#89653).
nagisa
commented
Oct 27, 2021
@bors r+ |
bors
commented
Oct 27, 2021
📌 Commit c5708ca has been approved by |
bors
commented
Oct 27, 2021
bors
commented
Oct 27, 2021
☀️ Test successful - checks-actions |
rust-timer
commented
Oct 27, 2021
Finished benchmarking commit (a8f6e61): comparison url. Summary: This benchmark run did not return any relevant changes. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
This PR adds LLVM Control Flow Integrity (CFI) support to the Rust compiler. It initially provides forward-edge control flow protection for Rust-compiled code only by aggregating function pointers in groups identified by their number of arguments.
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 defining and using compatible type identifiers (see Type metadata in the design document in the tracking issue #89653).
LLVM CFI can be enabled with -Zsanitizer=cfi and requires LTO (i.e., -Clto).
Thank you, @eddyb and @pcc, for all the help!