summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-03-02 09:50:00 +0000
committerHans Wennborg <hans@hanshq.net>2018-03-02 09:50:00 +0000
commitff0c0d8ab3e316bb6e2741fedb3b545e198eab7a (patch)
treeb20e6845e0f50f6dbc67f34f27d98c4b0a5704e6
parentc2ed34952095ce41b30e6a615fbecc1e9a544f77 (diff)
ReleaseNotes: move the retpoline bullets higher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_60@326550 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--docs/ReleaseNotes.rst36
1 files changed, 18 insertions, 18 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 5ceb1a4b51..d817907e22 100644
--- a/docs/ReleaseNotes.rst
+++ b/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
--------------------------