Explore best practices for eBPF application development on Linux, including languages and toolchains for working across multiple kernels and environments.
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
Parallel programming isn't always parallel. This article examines examples of failed concurrency assumptions in the GNU C Library glibc.
This article describes the current state, recent improvements, and our plans for making truly statically linked applications.
This introduction to the Go programming language for C++ developers examines primary differences in development and program-building environments.
Explore how frame pointers can be used to unwind Linux kernel stack traces and examine different ways to obtain a backtrace, along with their pros and cons.
The realloc function in C is useful for memory management, but there are a few tricky cases to watch out for. See how Valgrind Memcheck helps find these issues.
Learn how the FORTIFY_SOURCE feature in the GNU C library improves C code security by detecting and preventing buffer overflow, and more.
Get an introduction to ISystemTap, a Jupyter kernel for Linux operating systems that helps you write and run SystemTap scripts.
Learn how to create custom stack unwinders for the GNU Project Debugger using GDB’s Python API with this in-depth tutorial.
The latest version of the GNU Compiler Collection, GCC 13, includes enhancements to -fanalyzer, a static analysis pass that can identify issues at compile-time.
Discover how to use the RHEL application compatibility guidelines to ensure your application remains compatible with future RHEL releases. (Part 1 of 3)
Discover the benefits of the Fedora 38 new feature for ppc64le. Now Clang uses the IEEE 128-bit long double by default.
The GNU Compiler Collection 13 release implemented a number of interesting features in its C front-end. This article summarizes the most interesting ones.
Learn how to use GDB to debug C++ lambda expressions and explore some of the challenges associated with debugging function objects.
Ranges and localization together can cause issues with regular expressions that are difficult to fully appreciate. Explore current and upcoming solutions.
Learn about an upcoming change in GCC 13's libstdc++ that reduces executable size and improves startup times for C++ programs that use the <iostream> header.
Discover how to improve application and library security at the source with _FORTIFY_SOURCE macro defined to 3 and how it impacts performance.
The GCC compiler is expanding range tracking in optimizations.
Learn how internal architectural changes in the new libabigail 2.2 release allow the framework to support multiple debugging formats in addition to DWARF.
Learn how and why we added restartable sequences support to the GNU C Library in Red Hat Enterprise Linux 9.
Members of the Red Hat Platform Tools team recently worked with other community members to implement a fix for odd behavior in glibc's implementation of pthread_atfork().
Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).
Learn about the new features from OpenMP 5.1 and OpenMP 5.2 which are implemented in GCC 12.
Could your perfectly running program blow up someday? Learn different types of behavior in the standard and what helps make a correct C or C++ program.