The state of toolchains in OpenBSD

For most of the 2010s, the OpenBSD base system has been stuck with GCC 4.2.1. It was released in July 2007, imported into the OpenBSD source tree in October 2009, and became the default compiler on the amd64, i386, hppa, sparc64, socppc and macppc platforms in OpenBSD 4.8, released in November 2010. As specified in the commit message during import, this is the last version released under the GPLv2 license....

May 19, 2021 · 5 min

Speedbuilding LLVM/Clang in 2 minutes on ARM

This post is the AArch64 counterpart of my “Speedbuilding LLVM/Clang in 5 minutes” article. After publishing and sharing the previous post URL with some friends on IRC, I was asked if I wanted to try doing the same on a 160 cores ARM machine. Finding out what my answer was is left as an exercise to the reader :-) The system I’m using for this experiment is a BM.Standard.A1.160 bare-metal machine from Oracle Cloud, which has a dual-socket motherboard with two 80 cores Ampere Altra CPUs, for a total 160 cores, and 1024 GB of RAM....

May 12, 2021 · 5 min

Speedbuilding LLVM/Clang in 5 minutes

This post is a spiritual successor to my “Building LLVM on OpenBSD/loongson” article, in which I retraced my attempts to build LLVM 3.7.1 on MIPS64 in a RAM constrained environment. After reading the excellent “Make LLVM fast again”, I wanted to revisit the topic, and see how fast I could build a recent version of LLVM and Clang on modern x86 server hardware. The system I’m using for this experiment is a CCX62 instance from Hetzner, which has 48 dedicated vCPUs and 192 GB of RAM....

May 11, 2021 · 4 min

The state of toolchains in NetBSD

While FreeBSD and OpenBSD both switched to using LLVM/Clang as their base system compiler, NetBSD picked a different path and remained with GCC and binutils regardless of the license change to GPLv3. However, it doesn’t mean that the NetBSD project endorses this license, and the NetBSD Foundation’s has issued a statement about its position on the subject. Realistically, NetBSD is more or less tied to GCC, as it supports more architectures than the other BSDs, some of which will likely never be supported in LLVM....

April 9, 2021 · 3 min

Building LLVM on OpenBSD/loongson

I’ve been attempting to build LLVM on the Lemote Yeeloong for some time now, starting with LLVM 3.7.1. Sadly, the port doesn’t build out of the box due to RAM constraints; the machine only has a 1GB RAM module, and while it’s easily accessible and removable, upgrading the RAM on this machine is borderline impossible, more on that in a later article. After a first full build fail, I decided to try the suggestions from pascal@ regarding LLVM on PowerPC, and started disabling additional architecture support first, then the static analyzer....

May 21, 2016 · 3 min