[docs] Update ControlFlowIntegrity.rst.

Expand the list of targets that support cfi-icall.
Add ThinLTO everywhere LTO is mentioned. AFAIK all CFI features are
supported with ThinLTO.

Differential Revision: https://reviews.llvm.org/D87717
This commit is contained in:
Evgenii Stepanov 2020-09-15 12:49:18 -07:00
parent 322519ee12
commit 66cf68ed46

View File

@ -76,8 +76,8 @@ For example, you can build your program with
to use all schemes except for non-virtual member function call and indirect call to use all schemes except for non-virtual member function call and indirect call
checking. checking.
Remember that you have to provide ``-flto`` if at least one CFI scheme is Remember that you have to provide ``-flto`` or ``-flto=thin`` if at
enabled. least one CFI scheme is enabled.
Trapping and Diagnostics Trapping and Diagnostics
======================== ========================
@ -217,7 +217,8 @@ statically linked into the program or shared library, and calls across
shared library boundaries are handled as if the callee was not compiled with shared library boundaries are handled as if the callee was not compiled with
``-fsanitize=cfi-icall``. ``-fsanitize=cfi-icall``.
This scheme is currently only supported on the x86 and x86_64 architectures. This scheme is currently supported on a limited set of targets: x86,
x86_64, arm, arch64 and wasm.
``-fsanitize-cfi-icall-generalize-pointers`` ``-fsanitize-cfi-icall-generalize-pointers``
-------------------------------------------- --------------------------------------------
@ -368,7 +369,7 @@ Shared library support
Use **-f[no-]sanitize-cfi-cross-dso** to enable the cross-DSO control Use **-f[no-]sanitize-cfi-cross-dso** to enable the cross-DSO control
flow integrity mode, which allows all CFI schemes listed above to flow integrity mode, which allows all CFI schemes listed above to
apply across DSO boundaries. As in the regular CFI, each DSO must be apply across DSO boundaries. As in the regular CFI, each DSO must be
built with ``-flto``. built with ``-flto`` or ``-flto=thin``.
Normally, CFI checks will only be performed for classes that have hidden LTO Normally, CFI checks will only be performed for classes that have hidden LTO
visibility. With this flag enabled, the compiler will emit cross-DSO CFI visibility. With this flag enabled, the compiler will emit cross-DSO CFI