RSSAmplifier

Blog

Dr. Brian Robert Callahan

academic, developer, with an eye towards a brighter techno-social life

briancallahan.netRSS feed ↗95 posts

Latest posts

2026-08-11: Cleaning costs, or, examining the OpenBSD -fret-clean flag

Examining whether an OpenBSD compiler-based anti-ROP mitigation is worth it

2026-07-13: I bootstrapped GDC with DMD

"Correcting" some GCC documentation

2026-06-09: An addendum I really didn't want to write

So I didn't

2026-03-22: Semi-retirement, or, really, changing my relationship with the BSDs

Evaluating some OpenBSD security measures

2025-12-16: Let's run FreeBSD 15.0-RELEASE on a Raspberry Pi Zero 2 W

Instructions to get a small embedded ARM64 device working with the latest FreeBSD operating system

2025-09-01: Let's write a peephole optimizer for QBE's arm64 backend

Learn how to cross-compile a native GCC toolchain

2025-08-17: Despite thoughts to the contrary, GNAT (Ada) is in fact fully supported on illumos

Learn how to cross-compile a native GCC toolchain

2025-08-13: The GNU D compiler has been broken on FreeBSD 14 for over a year and no one noticed, or, why operating system package maintainers matter

Discovery and diagnosis of a bug hiding in plain sight

2025-05-16: I revived pkgsrc on AIX

Step-by-step process to get pkgsrc working on modern AIX

2025-03-29: GCC 14.2.0 on PowerPC Mac OS X 10.4 Tiger

Step-by-step process to get a modern GCC on an old Mac OS X

2025-02-22: State of virtualizing the BSDs on Apple Silicon

Testing VMWare Fusion and the Apple virtualization framework with each *BSD

2025-01-12: Let's port the GNAT Ada compiler to macOS/aarch64

Getting a compiler written in its own langauge bootstrapped for a new platform

2024-12-16: Let's cross compile from FreeBSD/amd64 to macOS/aarch64

A quick tutorial for setting up a complete cross compiling envinroment using a FreeBSD/amd64 host and macOS/aarch64 target

2024-12-12: A GDC package for macOS/aarch64

A walkthrough to bootstrap GDC on macOS/aarch64

2024-06-09: A DMD package for OpenIndiana

A walkthrough to bootstrap DMD on OpenIndiana

2024-03-06: FreeBSD has a(nother) new C compiler: Intel oneAPI DPC++/C++

A walkthrough to get Intel oneAPI DPC++/C++ to output native binaries for FreeBSD

2024-01-22: Can GCC use Clang as its assembler?

How to use LLVM as the assembler for GCC, for FreeBSD and other systems

2024-01-01: FreeBSD has a new C compiler: Oracle Developer Studio 12.6

A walkthrough to get Oracle Developer Studio 12.6 to output native binaries for FreeBSD

2023-11-19: Enabling LLVM with m68k (and more) support on OpenBSD

Adding the experimental LLVM targets to the OpenBSD LLVM packages

2023-08-13: Can mold be used as the OpenBSD system linker?

My ordeal trying to get mold to be /usr/bin/ld on OpenBSD

2023-07-23: Using non-GNU assemblers with the Portable C Compiler

Can the Sun assembler and Yasm be used with PCC?

2023-07-05: Porting the Portable C Compiler (PCC) to Illumos

Teaching an old compiler new tricks.

2023-07-03: Installing Oracle Developer Studio 12.6 on Illumos

The (mis)adventures of installing Developer Studio on Illumos despite Oracle's many attempts to stop me.

2023-06-26: GCC --enable-languages=all on OpenBSD

Can we build all ten GCC langauge frontends on OpenBSD?

2022-12-19: GCC now includes Modula-2 and Rust. Do they work on OpenBSD?

Reviewing the state of the new Modula-2 and Rust frontends for GCC on OpenBSD.

2022-11-13: I took the CompTIA CySA+ CS1-003 beta exam for fun

Reflections on the new CySA+ exam I took today.

2022-07-04: Your next C compiler is a D compiler: Introducing DMD's ImportC

Demonstrating the C compiler that lives inside a D compiler.

2022-06-29: OpenBSD has two new C compilers: chibicc and kefir

Discussing porting chibicc and kefir to OpenBSD.

2022-04-27: I ported the new Hare compiler to OpenBSD

A walkthrough on porting a brand new language to OpenBSD.

2022-04-26: Let's try V on OpenBSD

My thoughts on trying out the V programming language and its first-party apps for the first time.

2022-04-18: Let's install OpenBSD/riscv64 on QEMU

Step-by-step instructions to get OpenBSD/riscv64 running on QEMU.

2022-04-17: I wrote a peephole optimizer (for QBE), part 3: Studying the LLVM and GCC optimizers

We study how LLVM and GCC optimize increments and decrements and teach those optimizations to our QBE optimizer.

2022-04-06: Hand-optimizing the TCC code generator

Let's teach the Tiny C Compiler to emit better code.

2022-04-02: I wrote a simple, explainable, peephole optimizer (for cproc and QBE), part 2

Finishing up our peephole optimizer from the previous blog post.

2022-03-30: I wrote a peephole optimizer (for QBE), part 1

Introducing O, a peephole optimizer to fix up missed opportunities in QBE.

2022-03-21: I built the new gcobol compiler on OpenBSD

Trying out the new GCC COBOL frontend on OpenBSD.

2022-02-22: I took the CompTIA Linux+ XK1-005 beta exam for fun

Reflections on the new Linux+ exam I took last week.

2022-02-20: I wrote the least-C C program I could

Abusing the C preprocessor for fun and profit.

2022-02-05: I took the CompTIA Project+ PK1-005 beta exam for fun

Reflections on the new Project+ exam I took today.

2021-12-04: Supporting a new C compiler for oksh and review of the vbcc C compiler

Learning how to get the vbcc C compiler up and runnin on OpenBSD and able to compile the oksh shell.

2021-10-31: More OpenBSD and D news

Quick post to keep everyone updated on the latest OpenBSD and D news from me.

2021-10-20: An LDC bootstrap compiler and LDC package for OpenBSD

A short post writing down how to create a bootstrap LDC compiler for the OpenBSD port.

2021-10-13: Packaging the DMD D compiler for OpenBSD

Previewing my DConf 2021 talk about D on OpenBSD by discussing how the new DMD package came to be.

2021-10-10: Benchmarking the oksh shell, or, let's look at a lot of C compilers

Getting inconclusive numbers about the definitively best Unix shell.

2021-09-11: I got the J language working on OpenBSD

A detailed write-up on porting J to OpenBSD.

2021-09-06: Let's write a self-hosting compiler, part 1: Reading in source code

Beginning a new compiler-writing adventure in which we will produce a self-hosting PL/0 compiler.

2021-08-29: Let's get hands-on with QBE

Learning the QBE Intermediate Language via writing a small Brainfuck compiler directly in QBE IR.

2021-08-26: Let's write a compiler, part 8: Strings, forward references, and conclusion

Adding the last few pieces needed for a finished PL/0 compiler.

2021-08-22: Let's write a compiler, part 7: Arrays

Adding array support to our PL/0 compiler.

2021-08-19: Let's write a compiler, part 6: Input and output

Adding basic input and output routines to our PL/0 compiler.