Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

August 2016 GNU Toolchain Update Part 1

August 30, 2016
Nick Clifton
Related products:
Developer Tools

Share:

    The GNU Toolchain is a collection of  programming tools produced by the GNU Project. The tools are often packaged together due to their common use for developing software applications, operating systems, and low level software for embedded systems.

    This blog is part of a regular series covering the latest changes and improvements in the components that make up this Toolchain.  Apart from the announcement of new releases however, the features described here are at the very bleeding edge of software development in the tools.  This does mean that it may be a while before they make it into production releases, although interested parties can always build their own copies of the toolchain in order to try them out.

    New Releases

    It has been a long time since my last post, so there is lots to tell you about. First of all there have been major releases of most of the tools:

    GCC 6.2

    This is mostly a bug-fix release over gcc 6.1 of course, but it does also include a few enhancements for the SPARC target:

    • Support for --with-cpu-32 and --with-cpu-64 configure options has been added on bi-architecture platforms.
    • Support for the SPARC M7 (Niagara 7) processor has been added.
    • Support for the VIS 4.0 instruction set has been added.

    Binutils 2.27

    In addition to enhancements mentioned in previous postings, this release also includes:

    • A configure option --enable-relro={yes|no} to decide whether -z relro should be the default behaviour for the linker in ELF based targets. If this configure option is not specified then read-only relocations (relro) will be enabled automatically for all Linux based targets except FRV, HPPA, IA64 and MIPS.
    • Linux/x86 targets now default to enabling the compression of debug sections. This change can be reverted by using the --enable-compressed-debug-sections=no configure option.
    • The assembler now supports a --no-pad-sections command line option to prevent it from padding the end of each section up to its alignment boundary. This can be useful on systems with very tight memory constraints.
    • The ARC port of gas now accepts a --with-cpu=<type> configure option to specify the default cpu type.

    GDB 7.11.1

    This is just a big-fix release over 7.11.  The 7.12 release is almost ready however and when that comes out it will feature:

    • GDB and GDBserver are now built with a C++ compiler by default.  The configure option --disable-build-with-cxx can be used to build with a C compiler instead, although this option will soon be deprecated.
    • GDB now supports a negative repeat count in the 'x' command to examine memory backwards from the given address.
    • GDB now supports a new mechanism that allows front-ends to provide fully featured GDB console views, as a better alternative to building such views on top of the -interpreter-exec console command. Front-ends can now start GDB in the traditional command-line mode running in an embedded terminal emulator widget, and create a separate MI interpreter running on a specified I/O device. In this way, GDB handles line editing, history, tab completion, etc. in the console all by itself, and the GUI uses the separate MI interpreter for its own control and synchronization, invisible to the command line.

    Glibc 2.24

    This is a big release containing many new features and enhancements.  See https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html for the full details.  Of particular interest however may be the following:

    • A new NSS action is added to facilitate large distributed system administration. The action, MERGE, allows remote user stores like LDAPto be merged into local user stores like /etc/groups in order to provide easy to use, updated, and managed sets of merged credentials.
    • nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf have been added to libm.  The nextup functions return the next representable value in the direction of positive infinity and the nextdown functions return the next representable value in the direction of negative infinity.

    New Features

    In addition the development versions of these tools continue to add new features and abilities. For example:

    Compiler

    • G++ has a new command line option -fconstexpr-loop-limit=<n> which sets the maximum number of iterations for a loop in C++14 constexpr functions. A limit is needed to detect infinite loops during constant expression evaluation.
    • G++ now also supports -fstrong-eval-order which forces the evaluation of member access, array subscripting, and shift expressions in left-to-right order, and assignments in right-to-left order, as adopted for C++17. This option is enabled
      by default when -std=c++1z is used.
    • The compiler now supports a new command line option: -fdiagnostics-parseable-fixits  This option tells the compiler to extend the diagnostic messages that it displays by adding an extra line. This line is intended to be a machine parseable hint for consumption by an IDE. The hint starts with the text fix-it: and the rest gives information about the source code location involved. For example:

      fix-it:"test.c":{45:3-45:21}:"function_foo"

    • The compiler now supports a new optimization: -fcode-hoisting.  This tries to move the evaluation of expressions executed on all paths to as early as possible in the function. This is especially useful as a code size optimization, but it often helps for code speed as well.
    • GCC now has support for the _Float<N> and _Float<N>x types as defined by the ISO/IEC TS 18661-3:2015 standard.  The actual set of types supported depends upon the target architecture however.  So for example the _Float128 type is supported on all systems where __float128 is supported or where long double has the IEEE binary128 format. The _Float64x type is supported on all systems where __float128 is supported. The _Float32 type is supported on all systems supporting IEEE binary32. The _Float64 and _Float32x types are supported on all systems supporting IEEE binary64.  Currently there are no target architectures that would support the _Float16 or _Float128x types.
    • The ARM port of the toolchain now supports the ARMv8.2-A architecture extensions. In addition revisions older than ARMv4t are now deprecated.
    • The PowerPC port of the compiler now supports the use of built-in functions that allow direct access to the Hardware Transactional Memory (HTM) instructions that were added in version 2.07 of the PowerPC ISA.

    Linker

    • The linker has extended the --out-implib=<file> option, previously restricted to x86 PE targets, to any ELF based target. This allows the generation of an import library for an ELF executable, which can then be used by another application to link against the executable.
    • This feature is now used by the ARM port of the linker to create import libraries suitable for use in the generation of Secure Gateways, as per the ARMv8-M Security Extensions.

    Binary Utilities

    • The objdump program now supports the use of the -M option with ARC
      targets to specify the instruction class(es) that should be disassembled.
    • The objcopy and strip programs now accept section patterns starting with an exclamation point to indicate any section not matching the pattern. In addition a new option --remove-relocations=<section_pattern> can be used to remove sections containing relocations.

    Debugger

    • GDB has added support for thread names on MS-Windows. In addition it can now catch and handle the special exception that programs running on MS-Windows use to assign names to threads in the debugger.

    C Library

    • In Newlib the entire set of locale-specific functions from POSIX-1.2008 has now been implemented with one exception: strfmon_l. This means that any character handling function (eg isalnum, toascii, etc) and any string handling function (eg strtoll) now has a locale based equivalent (isalnum_l, toascii_l, strtoll_l, etc).

    That's all for now.  I'll post again in another couple of months.

    Last updated: February 6, 2024

    Recent Posts

    • AI meets containers: My first step into Podman AI Lab

    • Live migrating VMs with OpenShift Virtualization

    • Storage considerations for OpenShift Virtualization

    • Upgrade from OpenShift Service Mesh 2.6 to 3.0 with Kiali

    • EE Builder with Ansible Automation Platform on OpenShift

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue