Rollup merge of #116593 - tgross35:no-jump-tables-docs, r=compiler-errors

Add unstable book page for the no-jump-tables codegen option

See tracking issue: https://github.com/rust-lang/rust/issues/116592
This commit is contained in:
Matthias Krüger 2023-10-12 18:36:43 +02:00 committed by GitHub
commit 54c528ee05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# `no-jump-tables`
The tracking issue for this feature is [#116592](https://github.com/rust-lang/rust/issues/116592)
---
This option enables the `-fno-jump-tables` flag for LLVM, which makes the
codegen backend avoid generating jump tables when lowering switches.
This option adds the LLVM `no-jump-tables=true` attribute to every function.
The option can be used to help provide protection against
jump-oriented-programming (JOP) attacks, such as with the linux kernel's [IBT].
```sh
RUSTFLAGS="-Zno-jump-tables" cargo +nightly build -Z build-std
```
[IBT]: https://www.phoronix.com/news/Linux-IBT-By-Default-Tip