Compilers and Development Tools

The following features, enhancements, and changes related to compilers and development tools are introduced in this Oracle Linux 9 release.

Clang Resource Directory Moved

The Clang resource directory, where Clang stores its internal headers and libraries, has been moved from /usr/lib64/clang/17 to /usr/lib/clang/17.

elfutils Updated to Version 0.190

The elfutils 0.190 update instroduces the following changes:

  • libelf: This library now includes relative relocation (RELR).

  • libdw: This library now functions with the .debug_[ct]u_index sections.

  • -Ds, --use-dynamic --symbol: You can use these options with the eu-readelf tool to show symbols through the dynamic segment without using ELF sections.
  • eu-readelf: This tool now shows .gdb_index version 9.

  • eu-scrlines: This new tool generates a list of source files associated with a specified DWARF or ELF file.

  • debuginfod: This server schema now compresses file name representations. You must reindex before you can use this feature.

systemtap Updated to Version 5.0

The systemtap 5.0 update instroduces the following changes:

  • Improved kernel-user transport.

  • Extended DWARF5 debuginfo format handling.

grafana-selinux Package Added

A grafana-selinux package, which contains an SELinux policy for grafana-server, and which is installed by default with grafana-server is added to the release. This update ensures that the grafana-server runs as grafana_t SELinux type, rather than as an unconfined_service_t SELinux type.

maven-openjdk21 Package Added

The maven:3.8 module stream now includes the maven-openjdk21 subpackage, which provides the Maven JDK binding for OpenJDK 21 and configures Maven to use the system OpenJDK 21.

libzip-tools Package Added

A libzip-tools package, which provides tools such as zipcmp, zipmerge, and ziptool is included in the update release.

cmake Updated to Version 3.26

The cmake package is updated to version 3.26. Notable changes include:

  • Addition of the C17 and C18 language standards.

  • cmake can query the /etc/os-release file to identify the OS.

  • cmake can use CUDA 20 and nvtx3 libraries.

  • cmake can use the Python stable application binary interface.

  • Perl 5 can be used in the Simplified Wrapper and Interface Generator (SWIG) tool.

LLVM Toolset Updated to Version 17.0.6

The LLVM Toolset package is updated to version 17.0.6. Notable changes include:
  • opaque pointers migration: completed
  • legacy pass manager in middle-end optimization deprecated.
Notable Clang changes include:
  • C++20 coroutines now fully supported.
  • Improved code generation for the std::move function and also in unoptimized builds.
See the LLVM and Clang upstream release notes for more information.

Rust Toolset Updated to Version 1.75.0

Rust Toolset is now at version 1.75.0. Notable changes include:
  • Unlimitied Constant evaluation time
  • Panic messages are now printed on their own lines without surrounding quotes, making them easier to read.
  • Cargo registry authentication is enhanced so that authenticated registries require a credential provider.
  • Improved expressiveness of the Rust language and trait system by stabilizing the async fn and return_position_impl_trait_in_trait

Go Toolset Updated to Version 1.21.0

GoToolset is now at version 1.21.0. Notable changes include:
  • Added min, max, and clear built-ins.
  • Added official support for profile guided optimization.
  • Precisely defined package initialization order.
  • Improved type inferencing.
  • Improved backwards compatibility.

See the Go upstream release notes for more information.

GCC Toolset 13 is Updated

GCC Toolset 13 is a compiler toolset that provides recent versions of development tools. The toolset is available as an Application Stream in the form of a Software Collection in the AppStream repository.

The following tools and versions are available in the GCC Toolset 13:

  • GCC 13.2.1
  • GDB 12.1
  • binutils 2.40
  • dwz 0.14
  • annobin 12.32

To install the toolset, type:

sudo dnf install gcc-toolset-13

To run a tool from GCC Toolset 13, type:

$ scl enable gcc-toolset-13 tool

To run a shell session where tool versions from GCC Toolset 13 override system versions of these tools, type:

scl enable gcc-toolset-13 bash

pcp Updated to Version 6.2.0

The pcp package is updated to version 6.2.0. Notable changes include:

  • pcp-htop provides dynamic screens to include user-configurable tabs.
  • pcp-atop provides a new bar graph visualization mode.
  • pmdaopenmetrics is updated to reduce transient instance logs and improve labeling.
  • New tools are included:

    • pmlogredact: new command for archive anonymization.
    • pcp-buddyinfo: reports Linux buddyinfo statistics.
    • pcp-meminfo: reports Linux kernel memory statistics.
    • pcp-netstat: reports networking statistics.
    • pcp-slabinfo: reports Linux slabinfo kernel statistics.
    • pcp-zoneinfo: reports Linux zoneinfo kernel statistics.