Chapter 6. Compilers and development tools


The following chapter contains the most notable changes to compilers and development tools between RHEL 9 and RHEL 10.

Initial versions available in RHEL 10.0 Beta

The following system toolchain components are available with RHEL 10.0 Beta:

  • GCC 14.2
  • glibc 2.39
  • Annobin 12.55
  • binutils 2.41

The following performance tools and debuggers are available with RHEL 10.0 Beta:

  • GDB 14.2
  • Valgrind 3.23.0
  • SystemTap 5.1
  • Dyninst 12.3.0
  • elfutils 0.191
  • libabigail 2.5

The following performance monitoring tools are available with RHEL 10.0 Beta:

  • PCP 6.3.0
  • Grafana 10.2.6

The following compiler toolsets are available with RHEL 10.0 Beta:

  • LLVM Toolset 18.1.8
  • Rust Toolset 1.79.0
  • Go Toolset 1.22

GCC 14 defaults to x86-64-v3

GCC 14 in RHEL 10 defaults to the x86-64-v3 microarchitecture level. This level enables certain capabilities by default, such as the AVX and AVX2 instruction sets and the fused multiply-add (FMA) instruction set. See the related article for more details.

Warnings changed to errors impacting C code compilation in GCC 14

Starting with GCC 14, several C warnings have been elevated to errors, such as implicit int types, implicit function declarations, and using pointers as integers. This update can disrupt application builds in cases where developers have been ignoring these warnings. Developers now must address these issues for successful compilation. For more information, see Porting to GCC 14.

GCC defaults to using the IEEE128 floating point format on IBM Power Systems

In RHEL10, GCC uses the IEEE128 floating point format by default for all long double floating point numbers on IBM Power Systems instead of the earlier software-only IBM-DOUBLE-DOUBLE code. As a result, you can notice performance improvements in C or C++ code that performs computations by using long double floating point numbers.

Note that this 128-bit long double floating point ABI is incompatible with the floating point ABI used in RHEL 8 and earlier versions. Support for hardware instructions to perform IEEE128 operations is available since IBM POWER9.

nscd replaced by systemd-resolved and sssd

The nscd caching daemon has been removed from RHEL 10. The GNU C Library (glibc) continues to work with the available replacements:

  • If you need DNS caching, install and enable the systemd-resolved service.
  • If you need caching for any other name services, install and configure the sssd service.

Grafana, PCP, and grafana-pcp now use Valkey to store data

In RHEL 10, the Valkey key-value store replaces Redis. As a result, Grafana, PCP, and the grafana-pcp plug-in now use Valkey to store data instead of Redis. The PCP Redis data source in the grafana-pcp plug-in is now named PCP Valkey.

The new version of TBB is incompatible

RHEL 10 includes the Threading Building Blocks (TBB) library version 2021.11.0, which is incompatible with the versions distributed with previous releases of RHEL. You must rebuild applications that use TBB to make them run on RHEL 10.

zlib-ng-compat replaces zlib in RHEL 10

The new zlib-ng-compat package provides a general-purpose lossless data compression library that is used by many different programs. This implementation provides various benefits over zlib distributed in RHEL 9. For example, zlib-ng-compat supports hardware acceleration when available and enhances compression efficiency and performance. zlib-ng-compat is built in API and ABI compatible mode to ensure a smooth transition from zlib.

Red Hat build of OpenJDK 21 is the default Java implementation in RHEL 10

The default RHEL 10 Java implementation is OpenJDK 21. Use the java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and the OpenJDK 21 Java Software Development Kit. For more information, see the OpenJDK documentation.

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.