about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTrevor Gross <tmgross@umich.edu>2023-10-10 02:40:26 -0400
committerTrevor Gross <tmgross@umich.edu>2023-10-10 02:41:07 -0400
commit51e8c807277580f3575df4bbd01ebf2bfde941ff (patch)
tree14dc654613ebe6b2a50aed825bd0e94fed9d5bb3
parentfa6d1e75125d9c94c21a58c2301492026031fcb8 (diff)
downloadrust-51e8c807277580f3575df4bbd01ebf2bfde941ff.tar.gz
rust-51e8c807277580f3575df4bbd01ebf2bfde941ff.zip
Add unstable book page for the no-jump-tables codegen option
-rw-r--r--src/doc/unstable-book/src/compiler-flags/no-jump-tables.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/doc/unstable-book/src/compiler-flags/no-jump-tables.md b/src/doc/unstable-book/src/compiler-flags/no-jump-tables.md
new file mode 100644
index 00000000000..f096c20f4bd
--- /dev/null
+++ b/src/doc/unstable-book/src/compiler-flags/no-jump-tables.md
@@ -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