Operating System

Tips for writing portable assembler with GNU Assembler (GAS)

Tips for writing portable assembler with GNU Assembler (GAS)

Writing assembly code is straightforward when you are familiar with the targeted architecture’s instruction set, but what if you need to write the code for more than one architecture? For example, you might want to test whether a particular assembler feature is available, or generate an object file for use with another tool. Writing assembly source code that can work on multiple architectures is not so simple.

Continue reading Tips for writing portable assembler with GNU Assembler (GAS)

Share
Debuginfod project update: New clients and metrics

Debuginfod project update: New clients and metrics

It’s been about a year since our last update about debuginfod, an HTTP file server that serves debugging resources to debugger-like tools. Since then, we’ve been busy integrating clients across a range of developer tools and improving the server’s available metrics. This article covers the features and improvements we’ve added to debuginfod since our last update.

Continue reading Debuginfod project update: New clients and metrics

Share
How Red Hat ported OpenJDK to 64-bit Arm: A community history

How Red Hat ported OpenJDK to 64-bit Arm: A community history

It has been quite a year for Arm Ltd., the firm that designs reduced instruction set computing (RISC) architectures for computer processors. The news that Arm-based computers will be important for the foreseeable future has even reached the mainstream media. At the end of 2019, Amazon Web Services announced Arm-based Graviton2 servers. In June 2020, Apple announced its plans to move Macintosh computers over to Apple silicon—which means Arm.

Continue reading How Red Hat ported OpenJDK to 64-bit Arm: A community history

Share
Static analysis updates in GCC 11

Static analysis updates in GCC 11

The GNU logo.
I work at Red Hat on the GNU Compiler Collection (GCC). In GCC 10, I added the new -fanalyzer option, a static analysis pass for identifying various problems at compile-time, rather than at runtime. The initial implementation was aimed at early adopters, who found a few bugs, including a security vulnerability: CVE-2020-1967. Bernd Edlinger, who discovered the issue, had to wade through many false positives accompanying the real issue. Other users also managed to get the analyzer to crash on their code.

I’ve been rewriting the analyzer to address these issues in the next major release, GCC 11. In this article, I describe the steps I’m taking to reduce the number of false positives and make this static analysis tool more robust.

Continue reading “Static analysis updates in GCC 11”

Share
Use vim in a production Red Hat OpenShift container in 6 easy steps

Use vim in a production Red Hat OpenShift container in 6 easy steps

Disclaimer: In most cases, we don’t recommend editing files in a container. However, in rare cases, you might need to reproduce and slightly modify a file in a production container, especially when debugging. (In this case, the vim method I’m using works on Fedora 32 on my laptop and it is the base of my Red Hat OpenShift container image.)

Continue reading Use vim in a production Red Hat OpenShift container in 6 easy steps

Share
Operator integration testing for Operator Lifecycle Manager

Operator integration testing for Operator Lifecycle Manager

Operators are one of the ways to package, deploy, and manage application distribution on Red Hat OpenShift. After a developer creates an Operator, the next step is to get the Operator published on OperatorHub.io. Doing this allows users to install and deploy the Operator in their OpenShift clusters. The Operator is installed, updated, and the management lifecycle is handled by the Operator Lifecycle Manager (OLM).

In this article, we explore the steps required to test the Operator’s OLM integration. For demonstration, we use a simple Operator that prints a test message to the shell. The Operator is packaged in the recently introduced Bundle Format.

Continue reading “Operator integration testing for Operator Lifecycle Manager”

Share