diff options
author | Hans Wennborg <hans@hanshq.net> | 2018-03-02 09:50:00 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2018-03-02 09:50:00 +0000 |
commit | e4f84abd37bf64bb18352fbef1fdcc88a2431a72 (patch) | |
tree | 9e7b261eae1e47f1fd3af68b997948efca72b905 /clang/docs/ReleaseNotes.rst | |
parent | e2f407be528448a49fa54c3ad66ed73276eec3fc (diff) | |
download | llvm-llvmorg-6.0.0.zip llvm-llvmorg-6.0.0.tar.gz llvm-llvmorg-6.0.0.tar.bz2 |
ReleaseNotes: move the retpoline bullets higherllvmorg-6.0.0
llvm-svn: 326550
Diffstat (limited to 'clang/docs/ReleaseNotes.rst')
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 5ceb1a4..d817907 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -35,6 +35,12 @@ sections with improvements to Clang's support for those languages. Non-comprehensive list of changes in this release ------------------------------------------------- +- Support for `retpolines <https://support.google.com/faqs/answer/7625886>`_ + was added to help mitigate "branch target injection" (variant #2) of the + "Spectre" speculative side channels described by `Project Zero + <https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html>`_ + and the `Spectre paper <https://spectreattack.com/spectre.pdf>`_. + - Bitrig OS was merged back into OpenBSD, so Bitrig support has been removed from Clang/LLVM. @@ -51,12 +57,6 @@ Non-comprehensive list of changes in this release ``__is_target_vendor``, ``__is_target_os``, and ``__is_target_environment`` can be used to to examine the individual components of the target triple. -- Support for `retpolines <https://support.google.com/faqs/answer/7625886>`_ - was added to help mitigate "branch target injection" (variant #2) of the - "Spectre" speculative side channels described by `Project Zero - <https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html>`_ - and the `Spectre paper <https://spectreattack.com/spectre.pdf>`_. - Improvements to Clang's diagnostics ----------------------------------- @@ -115,6 +115,18 @@ Improvements to Clang's diagnostics New Compiler Flags ------------------ +- Clang supports the ``-mretpoline`` flag to enable `retpolines + <https://support.google.com/faqs/answer/7625886>`_. Code compiled with this + flag will be hardened against variant #2 of the Spectre attack. Indirect + branches from switches or gotos removed from the code, and indirect calls + will be made through a "retpoline" thunk. The necessary thunks will + automatically be inserted into the generated code. Clang also supports + ``-mretpoline-external-thunk`` which works like ``-mretpoline`` but requires + the user to provide their own thunk definitions. The external thunk names + start with ``__x86_indirect_thunk_`` and end in a register name. For 64-bit + platforms, only an ``r11`` thunk is used, but for 32-bit platforms ``eax``, + ``ecx``, ``edx``, and ``edi`` thunks are used. + - Clang now supports configuration files. These are collections of driver options, which can be applied by specifying the configuration file, either using command line option ``--config foo.cfg`` or encoding it into executable @@ -144,18 +156,6 @@ New Compiler Flags - New ``-nostdlib++`` flag to disable linking the C++ standard library. Similar to using ``clang`` instead of ``clang++`` but doesn't disable ``-lm``. -- Clang supports the ``-mretpoline`` flag to enable `retpolines - <https://support.google.com/faqs/answer/7625886>`_. Code compiled with this - flag will be hardened against variant #2 of the Spectre attack. Indirect - branches from switches or gotos removed from the code, and indirect calls - will be made through a "retpoline" thunk. The necessary thunks will - automatically be inserted into the generated code. Clang also supports - ``-mretpoline-external-thunk`` which works like ``-mretpoline`` but requires - the user to provide their own thunk definitions. The external thunk names - start with ``__x86_indirect_thunk_`` and end in a register name. For 64-bit - platforms, only an ``r11`` thunk is used, but for 32-bit platforms ``eax``, - ``ecx``, ``edx``, and ``edi`` thunks are used. - Attribute Changes in Clang -------------------------- |