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

Is your C++ development team missing out? Developer Toolset: newer tools on and for multiple RHEL releases

January 23, 2013
Matt Newsome
Related topics:
Developer Tools
Related products:
Developer Tools

Share:

    Wouldn't it be nice if your software development team could use one common set of development tools based on the latest, stable upstream versions for your Red Hat Enterprise Linux development? Think of all the extra years of open source innovation - the features, optimizations and new standards support it would allow your team to build into your products. That would be great, wouldn't it?

    Fortunately, this is already available to you today, and in this blog post I'll explain how it works and how you can get it. Red Hat Developer Toolset provides a set of additional tools installed in parallel with those delivered as part of Red Hat Enterprise Linux itself. Currently featuring the GCC C/C++ compiler and GDB debugger and backed up by Red Hat's solid customer support, Red Hat Developer Toolset 1.0 is a great way to unlock performance in your team and your software very easily.

    And if you're already a Red Hat Developer Program subscriber, you can install the tools right now. The Red Hat Developer Toolset version 1.1 Beta, released in October 2012,
    showcased a good number of additional performance analysis tools. We're just getting started with this new offering and have plans to include other tools in the future.

    GCC and RHEL

    But let's pause a moment and zip back in time to June 2012. Last year, the GCC toolchain celebrated its 25th anniversary. A number of us from Red Hat, myself included, were there at the GNU Tools Cauldron celebration in Prague, Czech Republic where Red Hat co-sponsored a VT-100 cake, which was cut to mark the occasion. Red Hat's tools team employs a large number of the developers who work on GCC full-time and, both as Red Hat and Cygnus before that, we've had a leading role in the story of GCC. So we were delighted to be there with the whole community celebrating the success of free and open source software in general, and GCC in particular.

    25 years is an eon in software terms, so it's impressive that GCC continues to be so well respected in terms of stability, performance and target support. Of course, it's also an illustration of the power of the open source model. It's the compiler we rely on to build Red Hat Enterprise Linux and is the tool we pass on to our customers, partners and independent software vendors to build their own software on top of Red Hat Enterprise Linux.

    When we release a new major version of Red Hat Enterprise Linux, we typically include the latest stable compiler, assembler, linker, debugger and a number of supporting tools. While those tools are new and shiny for a while, the main commitment we make to our customers is to back that up with our world-class support. So for a full ten years, if you see a showstopper bug in that compiler, we'll be there to help get you back up and running. We'll pass along regular minor updates and in the rare event of a security vulnerability, we have an asynchronous update channel we can use to pass along updates before the next minor release.

    But, I hear you ask, ten years is a long time to go without updating the major version of the compiler, isn't it? We agree. And, while new major versions of Red Hat Enterprise Linux may come along during that time, your development on, say, Red Hat Enterprise Linux 6, will remain at the earlier compiler version when Red Hat Enterprise Linux 7 is released. Only Red Hat Enterprise Linux 7 will offer you all the benefits of the newer tools.

    Red Hat Developer Toolset

    The solution we landed on was to provide an additional set of development tools that can run on, and build applications for, multiple versions of Red Hat Enterprise Linux. Released at Red Hat Summit in June 2012, Red Hat Developer Toolset v1.0 was the first Red Hat software based around the idea of Software Collections. These install into /opt and are only activated by simple, but deliberate invocation, so there's no danger of you accidentally using the Red Hat Developer Toolset tools. The components in Red Hat Developer Toolset are the same sources as available upstream in the community GCC and GDB projects, with just slightly different packaging to support execution on multiple versions of Red Hat Enterprise Linux.

    And because there's one set of tools on both Red Hat Enterprise Linux 5 and 6, and applications built with Red Hat Developer Toolset can be run on supported minor versions of both Red Hat Enterprise Linux 5 and 6, your development workflow and the number of different branches of your application you need to maintain can be reduced significantly. You'll still need to test and qualify your application on each Red Hat Enterprise Linux version you want to support, but the task is greatly simplified.

    The Future of Developer Toolset

    We plan to release major updates to Red Hat Developer Toolset once per year. The upstream GCC community project generally releases a major new version annually in the spring. We expect to prove that compiler by putting it into the next Fedora release as the compiler for all packages and, once we're satisfied it's a stable, production-quality tool, we anticipate releasing it in a future major version of Red Hat Developer Toolset.

    In terms of updates, we expect there to be a minor release of Red Hat Developer Toolset around 6 months after each major release, where bugfixes and new components may be added, and we can push out bugfixes whenever they're required. As with Red Hat Enterprise Linux, we'll support the most recent minor release of Red Hat Developer Toolset with all errata applied and when a new major version of Red Hat Developer Toolset is released, we'll continue to provide support, including critical security and bugfixes on the previous major version of Red Hat Developer Toolset until two years after that previous major version's release. So effectively each major version of Red Hat Developer Toolset is supported for two years.

    Under the Hood

    Providing an extra toolchain may at first consideration seem like a relatively simple task. You build the toolchain, make an installer that places it in a different directory to the main compiler and pass that along to customers, right? True, but not the whole story.

    Security is of paramount importance to Red Hat, as we know it is to our customers and developers. We needed to find a way to provide great new features in the newer tools without resorting to statically building in lots of code that could then not be updated automatically via Red Hat Enterprise Linux updates. In a nutshell, we wanted to continue to dynamically link applications with the entirety of the C library (glibc) and as much of the C++ standard library as we could re-use. This was a significant engineering challenge, and we considered a number of potential answers before concluding that we would statically link just those newer features we needed, and everything else would continue to be linked dynamically from Red Hat Enterprise Linux itself. This avoids the need for special libraries to be carried around with the built applications.

    As a result, you can build with Red Hat Developer Toolset on, say, Red Hat Enterprise Linux 5.6 using the current GCC version (gcc-4.7) and deploy that application to any later, supported minor release, plus any supported minor release of the next major version. So in our example, that means (at the time of writing) Red Hat Enterprise Linux versions 5.6, 5.9, 6.1, 6.2, 6.3 and, when it's released, 6.4. That cuts your development and QA costs straight away. Spot a bug in the tools that causes this not to work, and we'll investigate it as a bug in the same way as any other Red Hat Enterprise Linux bug, so you can have confidence in this mechanism.

    Eclipse IDE

    Command line tools are great, but increasingly we're seeing C++ developers use the powerful Eclipse Integrated Development Environment - not just as an editor and builder, but also as a single interface to a large number of others tools in a workflow. Version control system integration with subversion and git, bugtracking database integration, project management and team code reviews build on top of great features like automated class refactoring and excellent code completion to make the overall development process more efficient. The good news is that you can use Red Hat Developer Toolset for C/C++ development on Red Hat Enterprise Linux 6 x86 and x86_64 out of the box. I'll explain the nuts and bolts of how to do this in a forthcoming blog post.

    Obtaining Red Hat Developer Toolset

    So, how do you get Red Hat Developer Toolset? C and C++ Red Hat Enterprise Linux developers can access Red Hat Developer Toolset v1.0 today to get the latest compiler (gcc-4.7) and corresponding debugger (gdb-7.4) for both Red Hat Enterprise Linux 5 and 6. Existing Red Hat Enterprise Linux subscribers can procure Red Hat Developer Workstation as an alternative to Red Hat Enterprise Linux Workstation. Contact your sales rep to purchase or convert an existing subscription. If you're not yet a Red Hat Enterprise Linux subscriber, you can procure Red Hat Developer Workstation, Red Hat Developer Subscriptions, Red Hat Developer Suite or Red Hat Enterprise Linux NFR, which will then allow you to subscribe to Red Hat Developer Toolset channels, from which Red Hat Developer Toolset can be installed. See the Red Hat Developer Toolset documentation for further information.

    Wrap-Up

    In future posts to this blog, I'll talk more about how Software Collections work, what you'll see in Red Hat Developer Toolset v1.1 and v2.0, practical hands-on tutorials on installing and using Developer Toolset as well as some more in-depth coverage of features of the tools themselves. I'd be interested to hear from you if you have any feedback for the team on Developer Toolset.

    Thanks!

    Last updated: January 9, 2023

    Recent Posts

    • More Essential AI tutorials for Node.js Developers

    • How to run a fraud detection AI model on RHEL CVMs

    • How we use software provenance at Red Hat

    • Alternatives to creating bootc images from scratch

    • How to update OpenStack Services on OpenShift

    What’s up next?

     

    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

    Red Hat legal and privacy links

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

    Report a website issue