Chapter 5. Changes in Clang and LLVM Toolset in Red Hat Developer Tools 2018.2

This chapter lists some notable changes in Clang and LLVM Toolset since its previous release.

5.1. LLVM

LLVM has been updated from version 4.0.1 to 5.0.1. Notable changes include:

  • The libFuzzer library has been added to the llvm-toolset-7-compiler-rt package. As a result, developers can use fuzzing techniques to discover bugs in source code.
  • Support for the AMD Radeon GFX9 GPU architecture has been added to the AMDGPU backend.
  • Support for retpoline generation based on the upstream LLVM release version 5.0.2 has been added. As a result, code generated by LLVM can mitigate the Spectre v2 attack. (BZ#1553518)
  • Fix introduced to reduce stack usage in Rust programs. Rust issue: https://github.com/rust-lang/rust/issues/40883

5.2. clang

clang has been updated from version 4.0.1 to 5.0.1. Notable changes include:

  • An implementation of the C++ coroutines Technical Specification has been added.
  • Support for the C++17 standard of the C++ language has been added.
  • A GNU extension for explicit vector to scalar conversion has been added.

Additionally, the following bugs have been fixed:

  • Previously, the clang(1) manual page was not included in the llvm-toolset-7-clang package and was not available to users. The manual page has been included and is now available with every installation of Clang and LLVM Toolset. To view this manual page:

    $ scl enable llvm-toolset-7 'man clang'

    (BZ#1493560)

5.3. Container Image

Notable changes include:

  • Source-to-Image (S2I) support has been added to the llvm-toolset-7-rhel7 container image. As a result, S2I can be used to build C and C++ application containers. (BZ#1535052)