From 9806454fbcd9cbb195eb5ef17e0a1d36e06a64f9 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Wed, 23 Sep 2026 19:53:07 -0700 Subject: FreeBSD support via Linux compatibility mode this is done by setting the ABI version in the ELF header. many thanks to nortti for checking that things otherwise work, and validating that the approach makes sense in terms of FreeBSD's cultural expectations. Irenes don't have the ability to easily test this on our end, but this is an easy step that can improve compatibility. Force-Push: yes Change-Id: I3d55ed240c050839b8a11312f151d0809aef9031 --- elf.e | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'elf.e') diff --git a/elf.e b/elf.e index 1d2d7a0..2a67c54 100644 --- a/elf.e +++ b/elf.e @@ -24,7 +24,11 @@ ~ The program we're building should call this word as the first output it ~ generates. ~ -~ The only interesting thing here is the entry pointer. +~ The most interesting thing here is the entry pointer. +~ +~ It's also worth noticing that we set the ABI version to 3. An ABI version +~ of 0 (for the System V ABI) would work fine too, but 3 allows FreeBSD's +~ Linux compatibility features to kick in. : elf-file-header ~ : blank-line @@ -38,7 +42,7 @@ 2 pack8 ~ : -1 64-bit 1 pack8 ~ : -1 little-endian 1 pack8 ~ : -1 ELF header format v1 - 0 pack8 ~ : -1 System-V ABI + 3 pack8 ~ : -1 Linux ABI 0 pack64 ~ : -8 (padding) ~ : blank-line -- cgit 1.4.1