2026-08-11: Cleaning costs, or, examining the OpenBSD -fret-clean flag
https://briancallahan.net/blog/20260811.html
Published: August 11, 2026 00:00
Examining whether an OpenBSD compiler-based anti-ROP mitigation is worth it
@briancallahan.net.blog@rss-parrot.net
I'm an automated parrot! I relay a website's RSS feed to the Fediverse. Every time a new post appears in the feed, I toot about it. Follow me to get all new posts in your Mastodon timeline! Brought to you by the RSS Parrot.
---
academic, developer, with an eye towards a brighter techno-social life
Site URL: briancallahan.net/blog
Feed URL: briancallahan.net/blog/feed.xml
Posts: 95
Followers: 1
2026-08-11: Cleaning costs, or, examining the OpenBSD -fret-clean flag
https://briancallahan.net/blog/20260811.html
Published: August 11, 2026 00:00
Examining whether an OpenBSD compiler-based anti-ROP mitigation is worth it
2026-07-13: I bootstrapped GDC with DMD
https://briancallahan.net/blog/20260713.html
Published: July 10, 2026 00:00
"Correcting" some GCC documentation
2026-06-09: An addendum I really didn't want to write
https://briancallahan.net/blog/20260609.html
Published: June 9, 2026 00:00
So I didn't
2026-03-22: Semi-retirement, or, really, changing my relationship with the BSDs
https://briancallahan.net/blog/20260322.html
Published: March 22, 2026 00:00
Evaluating some OpenBSD security measures
2025-12-16: Let's run FreeBSD 15.0-RELEASE on a Raspberry Pi Zero 2 W
https://briancallahan.net/blog/20251216.html
Published: December 16, 2025 00:00
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
https://briancallahan.net/blog/20250901.html
Published: September 1, 2025 00:00
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
https://briancallahan.net/blog/20250817.html
Published: August 17, 2025 00:00
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
https://briancallahan.net/blog/20250813.html
Published: August 13, 2025 00:00
Discovery and diagnosis of a bug hiding in plain sight
2025-05-16: I revived pkgsrc on AIX
https://briancallahan.net/blog/20250516.html
Published: May 16, 2025 00:00
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
https://briancallahan.net/blog/20250329.html
Published: March 29, 2025 00:00
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
https://briancallahan.net/blog/20250222.html
Published: February 22, 2025 00:00
Testing VMWare Fusion and the Apple virtualization framework with each *BSD
2025-01-12: Let's port the GNAT Ada compiler to macOS/aarch64
https://briancallahan.net/blog/20250112.html
Published: January 12, 2025 00:00
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
https://briancallahan.net/blog/20241216.html
Published: December 16, 2024 00:00
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
https://briancallahan.net/blog/20241212.html
Published: December 12, 2024 00:00
A walkthrough to bootstrap GDC on macOS/aarch64
2024-06-09: A DMD package for OpenIndiana
https://briancallahan.net/blog/20240609.html
Published: June 9, 2024 00:00
A walkthrough to bootstrap DMD on OpenIndiana
2024-03-06: FreeBSD has a(nother) new C compiler: Intel oneAPI DPC++/C++
https://briancallahan.net/blog/20240306.html
Published: March 6, 2024 00:00
A walkthrough to get Intel oneAPI DPC++/C++ to output native binaries for FreeBSD
2024-01-22: Can GCC use Clang as its assembler?
https://briancallahan.net/blog/20240122.html
Published: January 22, 2024 00:00
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
https://briancallahan.net/blog/20240101.html
Published: January 1, 2024 00:00
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
https://briancallahan.net/blog/20231119.html
Published: November 11, 2023 00:00
Adding the experimental LLVM targets to the OpenBSD LLVM packages
2023-08-13: Can mold be used as the OpenBSD system linker?
https://briancallahan.net/blog/20230813.html
Published: August 13, 2023 00:00
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
https://briancallahan.net/blog/20230723.html
Published: July 23, 2023 00:00
Can the Sun assembler and Yasm be used with PCC?
2023-07-05: Porting the Portable C Compiler (PCC) to Illumos
https://briancallahan.net/blog/20230705.html
Published: July 5, 2023 00:00
Teaching an old compiler new tricks.
2023-07-03: Installing Oracle Developer Studio 12.6 on Illumos
https://briancallahan.net/blog/20230703.html
Published: July 3, 2023 00:00
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
https://briancallahan.net/blog/20230626.html
Published: June 26, 2023 00:00
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?
https://briancallahan.net/blog/20221219.html
Published: December 19, 2022 00:00
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
https://briancallahan.net/blog/20221113.html
Published: November 13, 2022 00:00
Reflections on the new CySA+ exam I took today.
2022-07-04: Your next C compiler is a D compiler: Introducing DMD's ImportC
https://briancallahan.net/blog/20220704.html
Published: July 4, 2022 00:00
Demonstrating the C compiler that lives inside a D compiler.
2022-06-29: OpenBSD has two new C compilers: chibicc and kefir
https://briancallahan.net/blog/20220629.html
Published: June 29, 2022 00:00
Discussing porting chibicc and kefir to OpenBSD.
2022-04-27: I ported the new Hare compiler to OpenBSD
https://briancallahan.net/blog/20220427.html
Published: April 27, 2022 00:00
A walkthrough on porting a brand new language to OpenBSD.
2022-04-26: Let's try V on OpenBSD
https://briancallahan.net/blog/20220426.html
Published: April 26, 2022 00:00
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
https://briancallahan.net/blog/20220418.html
Published: April 18, 2022 00:00
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
https://briancallahan.net/blog/20220417.html
Published: April 17, 2022 00:00
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
https://briancallahan.net/blog/20220406.html
Published: April 6, 2022 00:00
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
https://briancallahan.net/blog/20220402.html
Published: April 2, 2022 00:00
Finishing up our peephole optimizer from the previous blog post.
2022-03-30: I wrote a peephole optimizer (for QBE), part 1
https://briancallahan.net/blog/20220330.html
Published: March 30, 2022 00:00
Introducing O, a peephole optimizer to fix up missed opportunities in QBE.
2022-03-21: I built the new gcobol compiler on OpenBSD
https://briancallahan.net/blog/20220321.html
Published: March 21, 2022 00:00
Trying out the new GCC COBOL frontend on OpenBSD.
2022-02-22: I took the CompTIA Linux+ XK1-005 beta exam for fun
https://briancallahan.net/blog/20220222.html
Published: February 22, 2022 00:00
Reflections on the new Linux+ exam I took last week.
2022-02-20: I wrote the least-C C program I could
https://briancallahan.net/blog/20220220.html
Published: February 20, 2022 00:00
Abusing the C preprocessor for fun and profit.
2022-02-05: I took the CompTIA Project+ PK1-005 beta exam for fun
https://briancallahan.net/blog/20220205.html
Published: February 5, 2022 00:00
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
https://briancallahan.net/blog/20211204.html
Published: December 4, 2021 00:00
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
https://briancallahan.net/blog/20211031.html
Published: October 31, 2021 00:00
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
https://briancallahan.net/blog/20211020.html
Published: October 20, 2021 00:00
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
https://briancallahan.net/blog/20211013.html
Published: October 13, 2021 00:00
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
https://briancallahan.net/blog/20211010.html
Published: October 10, 2021 00:00
Getting inconclusive numbers about the definitively best Unix shell.
2021-09-11: I got the J language working on OpenBSD
https://briancallahan.net/blog/20210911.html
Published: September 11, 2021 00:00
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
https://briancallahan.net/blog/20210906.html
Published: September 6, 2021 00:00
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
https://briancallahan.net/blog/20210829.html
Published: August 29, 2021 00:00
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
https://briancallahan.net/blog/20210826.html
Published: August 26, 2021 00:00
Adding the last few pieces needed for a finished PL/0 compiler.
2021-08-22: Let's write a compiler, part 7: Arrays
https://briancallahan.net/blog/20210822.html
Published: August 22, 2021 00:00
Adding array support to our PL/0 compiler.
2021-08-19: Let's write a compiler, part 6: Input and output
https://briancallahan.net/blog/20210819.html
Published: August 19, 2021 00:00
Adding basic input and output routines to our PL/0 compiler.
2021-08-18: Let's write a compiler, part 5: A code generator
https://briancallahan.net/blog/20210818.html
Published: August 18, 2021 00:00
Writing a code generator for our PL/0 compiler.
2021-08-17: Let's write a compiler, part 4: Testing
https://briancallahan.net/blog/20210817.html
Published: August 17, 2021 00:00
Building a simple automated testing framework for our PL/0 compiler.
2021-08-16: Let's write a compiler, part 3: A parser
https://briancallahan.net/blog/20210816.html
Published: August 16, 2021 00:00
Writing a parser for our PL/0 compiler.
2021-08-15: Let's write a compiler, part 2: A lexer
https://briancallahan.net/blog/20210815.html
Published: August 15, 2021 00:00
Writing a complete lexer for our PL/0 compiler.
2021-08-14: Let's write a compiler, part 1: Introduction, selecting a language, and doing some planning
https://briancallahan.net/blog/20210814.html
Published: August 14, 2021 00:00
The beginning of a new series where we will write a simple PL/0 to C compiler from scratch.
2021-08-02: Reviewing my first OpenBSD port, and what I'd do differently 10 years later
https://briancallahan.net/blog/20210802.html
Published: August 2, 2021 00:00
Walking through my first OpenBSD port from ten years ago and revising it to today's standards.
2021-08-01: I write for QEX, and you should too
https://briancallahan.net/blog/20210801.html
Published: August 1, 2021 00:00
An amateur radio musing on how you can further the state of the art.
2021-07-10: I wrote a 231-byte Brainfuck compiler by abusing everything
https://briancallahan.net/blog/20210710.html
Published: July 10, 2021 00:00
Demonstrating lots of assembly language tricks to optimize for size.
2021-06-27: Write an OpenBSD port with me: The TIC-80 fantasy game console
https://briancallahan.net/blog/20210627.html
Published: June 27, 2021 00:00
Step-by-step how I thought through and wrote a moderately difficult OpenBSD port for the TIC-80.
2021-06-09: I wrote a linker everyone can understand!
https://briancallahan.net/blog/20210609.html
Published: June 9, 2021 00:00
A detailed tour of a CP/M and MS-DOS linker and object file format of our own creation.
2021-06-06: Introducing 8088ify: The CP/M to MS-DOS assembly translator
https://briancallahan.net/blog/20210606.html
Published: June 6, 2021 00:00
Discussing a new hit program developed 40 years too late.
2021-06-04: I participated in my first "game" jam
https://briancallahan.net/blog/20210604.html
Published: June 4, 2021 00:00
Porting a Unix program to MS-DOS for fun.
2021-05-29: Profiling our assembler with the DMD compiler
https://briancallahan.net/blog/20210529.html
Published: May 29, 2021 00:00
A how-to on basic profiler usage, improving the performance of our assembler.
2021-05-22: The GNU D Compiler on OpenBSD/armv7
https://briancallahan.net/blog/20210522.html
Published: May 22, 2021 00:00
Compiling the GNU D Compiler to OpenBSD/armv7.
2021-05-20: The GNU D Compiler on OpenBSD/arm64
https://briancallahan.net/blog/20210520.html
Published: May 20, 2021 00:00
Walking through how I ported the GNU D Compiler to OpenBSD/arm64.
2021-04-25: A multi-platform "compiler"
https://briancallahan.net/blog/20210425.html
Published: April 25, 2021 00:00
Building a Brainfuck compiler with backends for amd64, i386, Z80 and C.
2021-04-15: Demystifying programs that create programs, part 9: Pseudo-ops
https://briancallahan.net/blog/20210415.html
Published: April 15, 2021 00:00
Part 9, Finishing our assembler with some pseudo-ops.
2021-04-14: Demystifying programs that create programs, part 8: Finishing opcode processing
https://briancallahan.net/blog/20210414.html
Published: April 14, 2021 00:00
Part 8, teaching the assembler about logical shifts, incrementers and decrementers, and the lxi and mvi instructions.
2021-04-13: Demystifying programs that create programs, part 7: Further opcode processing
https://briancallahan.net/blog/20210413.html
Published: April 13, 2021 00:00
Part 7, teaching the assembler about push, pop, jump/call/ret instructions.
2021-04-12: Demystifying programs that create programs, part 6: Processing more opcodes
https://briancallahan.net/blog/20210412.html
Published: April 12, 2021 00:00
Part 6, teaching the assembler about mov and arithmetic instructions.
2021-04-11: Demystifying programs that create programs, part 5: Processing our first opcode
https://briancallahan.net/blog/20210411.html
Published: April 11, 2021 00:00
Part 5, translating nop assembly instructions into 0x00 bytes.
2021-04-10: Demystifying programs that create programs, part 4: Parsing
https://briancallahan.net/blog/20210410.html
Published: April 10, 2021 00:00
Part 4, turning lines of Intel 8080 assembly language into their individual tokens.
2021-04-09: Demystifying programs that create programs, part 3: Globals, passes, and error handling
https://briancallahan.net/blog/20210409.html
Published: April 9, 2021 00:00
Part 3, understanding assembler passes and setting up our error handler.
2021-04-08: Demystifying programs that create programs, part 2: Starting an sassembler
https://briancallahan.net/blog/20210408.html
Published: April 8, 2021 00:00
Part 2, planning the Z80 assembler.
2021-04-07: Demystifying programs that create programs, part 1: A disassembler
https://briancallahan.net/blog/20210407.html
Published: April 7, 2021 00:00
Part 1 of a new series in which we create an assembler and disassembler for the Z80 CPU.
2021-04-03: I got the GNU Modula-2 compiler working on OpenBSD
https://briancallahan.net/blog/20210403.html
Published: April 3, 2021 00:00
Discussing the process of getting a working gm2 on OpenBSD.
2021-03-27: My experiences writing my first real D program and using it to improve OpenBSD D support
https://briancallahan.net/blog/20210327.html
Published: March 27, 2021 00:00
A detailed demonstration of a D screenshot utility from zero to complete.
2021-03-20: A working D compiler on OpenBSD
https://briancallahan.net/blog/20210320.html
Published: March 20, 2021 00:00
The (condensed) story of how I got the GNU D Compiler working on OpenBSD.
2021-03-11: Quick shameless plug
https://briancallahan.net/blog/20210311.html
Published: March 11, 2021 00:00
Quick plug for my talk at BSidesROC 2021.
2021-02-15: All the C compilers that can produce working binaries on OpenBSD -current (that I know of)
https://briancallahan.net/blog/20210215.html
Published: February 15, 2021 00:00
Presented in a table.
2021-02-14: I donated a patch and got a free compiler!
https://briancallahan.net/blog/20210214.html
Published: February 14, 2021 00:00
The story of how the Tiny C Compiler got ported to OpenBSD, from my perspective.
2020-11-24: I wrote a pager that works on Unix and CP/M
https://briancallahan.net/blog/20201124.html
Published: November 24, 2020 00:00
Explore how to leverage standard interfaces to create truly portable programs.
2020-11-18: Comparing a new language for tiny machines
https://briancallahan.net/blog/20201118.html
Published: November 18, 2020 00:00
A look at a new programming language, Cowgol, designed for 8-bit CPUs.
2020-11-04: Why aren't new hams getting published?
https://briancallahan.net/blog/20201104.html
Published: November 4, 2020 00:00
A free article to inspire you to share your ham radio adventures.
2020-10-10: Where are all the protocols?
https://briancallahan.net/blog/20201010.html
Published: October 10, 2020 00:00
Sharing my dream with you.
2020-09-26: From new ham to QEX author in two months
https://briancallahan.net/blog/20200926.html
Published: September 26, 2020 00:00
How I managed to do the ham radio hobby "wrong."
2020-08-27: Let's create a protocol, part 1: Introducing the CW Record Protocol
https://briancallahan.net/blog/20200827.html
Published: August 27, 2020 00:00
Introducing a new series in which we will learn how to design and implement a data transmit and receive protocol.
2020-08-25: Why I got my amateur radio license in 2020
https://briancallahan.net/blog/20200825.html
Published: August 25, 2020 00:00
What I gained by shrinking my world.
2020-08-16: I wrote the world's worst text editor (so you don't have to)
https://briancallahan.net/blog/20200816.html
Published: August 16, 2020 00:00
I wrote the absolute minimum that could possibly be considered a text editor.
2020-08-12: Can we do better than our C compiler?
https://briancallahan.net/blog/20200812.html
Published: August 12, 2020 00:00
I hand-compiled some C code to see if I could do better than my C compiler.
2020-08-08: Where do argc and argv come from?
https://briancallahan.net/blog/20200808.html
Published: August 8, 2020 00:00
Have you ever wondered how Unix programs know what argc and argv are? Read on to find out.
2020-08-06: Compiler numbers, and why they don't matter
https://briancallahan.net/blog/20200806.html
Published: August 6, 2020 00:00
Comparing compiler numbers, then discarding them as a distraction.
2020-08-03: Extreme minimalism and constraints in game development (Code deep dive #1)
https://briancallahan.net/blog/20200803.html
Published: August 3, 2020 00:00
A very deep dive into a very small codebase.
2020-07-26: Introducing Free Bee
https://briancallahan.net/blog/20200726.html
Published: July 26, 2020 00:00
Explaining my motivations for writing my newest Free Software project.
2020-06-15: TryHackMe|Learn Linux
https://briancallahan.net/blog/20200615.html
Published: June 15, 2020 00:00
I decided to play the intro CTF to TryHackMe in order to begin to get a feel for how people think about cybersecurity pedagogy.