Matt Newsome

Recent Posts

5 things you need to know about GCC 5 – Developer Toolset Beta

As always when we rebase GCC in Developer Toolset (as we announced yesterday) to a new major upstream release, there are  a huge number of bugfixes, performance improvements, quality of implementation enhancements – the list goes on. In this article, however, I’d like to focus on four headline features and one new way of using the tools. Let’s dive in.

Continue reading “5 things you need to know about GCC 5 – Developer Toolset Beta”


GCC 5 in Fedora

gnu logoFedora 22 will ship with GCC 5, which brings a whole host of enhancements, among which is a new default C++ ABI. In this article, we’ll cover how that ABI transition will work in Fedora.

Background – what’s an ABI, why is it changing, and what does this mean for developers?

Put simply, binary compatibility means applications that are compiled on a combination of an operating system and a particular hardware architecture will load and run similarly across different instances of the operating environment. Application binaries consist of executable files and Dynamic Shared Objects (DSOs – the formal name for shared libraries), and the level of compatibility is defined by a specific application binary interface (ABI).

Continue reading “GCC 5 in Fedora”


Red Hat at the ISO C++ Standards Meeting (November 2014): Core

The Red Hat toolchain team was well-represented at the Fall 2014 meeting of the standardization committee (JTC1/SC22/WG21) in Urbana-Champaign, IL, USA. In this article, Jason Merrill summarizes the main highlights and developments of interest to Red Hat Enterprise Linux developers. Stay tuned for separate articles summarizing the library and concurrency working group aspects.

gnu logoThe fall meeting of WG21 (the C++ standardization committee) this year was hosted by the CS department at the University of Illinois at Urbana-Champaign.  This was the first meeting after ratification of the C++14 standard, and we weren’t changing the working paper while C++14 was out for voting ISO doesn’t allow changes to the working paper while there’s an open ballot, so there was a lot of leftover business from the last few meetings that was waiting to be voted on.

As usual, I spent the week in the Core Language Working Group.  We spent the majority of the week reviewing papers for new language features.

Continue reading “Red Hat at the ISO C++ Standards Meeting (November 2014): Core”


Intelⓡ Threading Building Blocks in Red Hat Enterprise Linux 7

That the “free lunch is over” may have become something of a cliche in the IT industry, but the fact is that lately, the increase in cycles per second has been mostly realized by adding more processing units rather than by other techniques. While multiprocessor mainframes and supercomputers existed essentially since the dawn of computing, this may be the first time ever that the only machines without multicore processors may be those in USB fridges and electric toothbrushes.

parallel curves evolvent
Involute of a circle – parallel curves.

This changes the way that even ordinary programs need to be written. The parallelism inherent in the computation can no longer be extracted automatically from the instruction stream, but the programmer herself needs to make it explicit.

To that end, there were historically several approaches.

Continue reading “Intelⓡ Threading Building Blocks in Red Hat Enterprise Linux 7”


OpenMP 4.0 support in Developer Toolset 3 Beta — Parallel programming extensions for today’s architectures

In this article, we’ll take a look at the OpenMP parallel programming extensions to C, C++ and Fortran – OpenMP 4.0. These are available out of the box in GCC v4.9.1, available to Red Hat Enterprise Linux developers via Red Hat Developer Toolset v3.0 (currently at beta release).

For a thorough backgrounder in parallelism and concurrency programming concepts, see Torvald Riegel’s earlier articles (part 1 and part 2). In this article, we’ll instead dig into the nuts and bolts of what OpenMP v4 provides to developers, and how it works in practice in GCC.

Continue reading “OpenMP 4.0 support in Developer Toolset 3 Beta — Parallel programming extensions for today’s architectures”


Red Hat at the ISO C++ Standards Meeting (June 2014): Core and Library

In June, Red Hat engineers Jason Merrill, Torvald Riegel and Jonathan Wakely attended the ISO C++ standards committee meeting, held in Rapperswil, Switzerland. This post contains reports on the core language work by Jason, and the library work by Jonathan.  Torvald’s report out on Parallelism and Concurrency is here.

Continue reading “Red Hat at the ISO C++ Standards Meeting (June 2014): Core and Library”


ltrace for RHEL 6 and 7

Debugging software is something akin to an art form but, regardless of the approach you prefer, having good information on what’s happening in your application is key. ltrace is one tool you may wish to add to your belt – a debugging tool that attaches to a running process, and prints to the terminal or a log file the library calls and/or system calls made by that process. In both its mode of operation and command line interface, ltrace is similar to strace. While strace only works for system calls, however, ltrace has no such restriction.

Continue reading “ltrace for RHEL 6 and 7”