Commit dc752a9d authored by Chandler Carruth's avatar Chandler Carruth
Browse files

Add some minimal release notes for retpolines.

llvm-svn: 326540
parent 9b3f8b66
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -51,6 +51,12 @@ 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
-----------------------------------
@@ -138,6 +144,18 @@ 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
--------------------------