Add make freebsd-amd64 cross-compilation target #56

Merged
ober merged 1 commit from freebsd-amd64-target into main 2026-09-17 19:04:47 -04:00
Owner

Summary

Adds make freebsd-amd64 (and make freebsd) cross-compilation target to jerboa-drive, following the established pattern from jerboa-code, jerboa-websearch, and jerboa-shell.

Changes

  • Makefile: New freebsd-amd64 target (line 310-353) that cross-compiles from macOS to FreeBSD amd64 via:
    • cross-cc-freebsd-amd64 wrapper (Apple clang + lld → FreeBSD ELF)
    • FreeBSD 15.1 sysroot at $(JERBOA_SRC)/.freebsd-sysroot/amd64
    • Cross Chez ta6fb kernel + xpatch
    • cargo build --target x86_64-unknown-freebsd for jerboa-native-rs
    • jerbuild build --config .jerbuild.release-freebsd with cross flags
  • Makefile: New cross-compilation variables (JERBOA_SRC, FREEBSD_AMD64_CC, FREEBSD_SYSROOT, CHEZ_CROSS_TA6FB, CHEZ_XPATCH_TA6FB)
  • Makefile: Added freebsd, freebsd-amd64, jdrive-bin-freebsd-amd64 to .PHONY and clean
  • VERSION: 2.0.10 → 2.0.11

Verification

Cross-built on macOS (ARM64) and smoke-tested on the FreeBSD 15.1 amd64 host biggus:

$ file jdrive-bin-freebsd-amd64
ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 15.1, FreeBSD-style, with debug_info, not stripped

$ ldd jdrive-bin-freebsd-amd64
libcrypto.so.35   => /lib/libcrypto.so.35
libutil.so.10     => /lib/libutil.so.10
libm.so.5         => /lib/libm.so.5
libthr.so.3       => /lib/libthr.so.3
libgcc_s.so.1     => /lib/libgcc_s.so.1
libc.so.7         => /lib/libc.so.7
libsys.so.7       => /lib/libsys.so.7

$ ./jdrive --help   # full usage output
$ ./jdrive version  # 2.0.10
## Summary Adds `make freebsd-amd64` (and `make freebsd`) cross-compilation target to jerboa-drive, following the established pattern from jerboa-code, jerboa-websearch, and jerboa-shell. ## Changes - **Makefile**: New `freebsd-amd64` target (line 310-353) that cross-compiles from macOS to FreeBSD amd64 via: - `cross-cc-freebsd-amd64` wrapper (Apple clang + lld → FreeBSD ELF) - FreeBSD 15.1 sysroot at `$(JERBOA_SRC)/.freebsd-sysroot/amd64` - Cross Chez `ta6fb` kernel + xpatch - `cargo build --target x86_64-unknown-freebsd` for jerboa-native-rs - `jerbuild build --config .jerbuild.release-freebsd` with cross flags - **Makefile**: New cross-compilation variables (`JERBOA_SRC`, `FREEBSD_AMD64_CC`, `FREEBSD_SYSROOT`, `CHEZ_CROSS_TA6FB`, `CHEZ_XPATCH_TA6FB`) - **Makefile**: Added `freebsd`, `freebsd-amd64`, `jdrive-bin-freebsd-amd64` to `.PHONY` and clean - **VERSION**: 2.0.10 → 2.0.11 ## Verification Cross-built on macOS (ARM64) and smoke-tested on the FreeBSD 15.1 amd64 host `biggus`: ``` $ file jdrive-bin-freebsd-amd64 ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 15.1, FreeBSD-style, with debug_info, not stripped $ ldd jdrive-bin-freebsd-amd64 libcrypto.so.35 => /lib/libcrypto.so.35 libutil.so.10 => /lib/libutil.so.10 libm.so.5 => /lib/libm.so.5 libthr.so.3 => /lib/libthr.so.3 libgcc_s.so.1 => /lib/libgcc_s.so.1 libc.so.7 => /lib/libc.so.7 libsys.so.7 => /lib/libsys.so.7 $ ./jdrive --help # full usage output $ ./jdrive version # 2.0.10 ```
Add make freebsd-amd64 cross-compilation target
All checks were successful
version-policy / required (pull_request) Successful in 3m42s
required-ci / required (pull_request) Successful in 4m43s
b8d1026de0
Cross-compiles jdrive from macOS to FreeBSD amd64, producing
jdrive-bin-freebsd-amd64. Follows the same pattern as jerboa-code,
jerboa-websearch, and jerboa-shell.

Requires: cross-cc-freebsd-amd64 wrapper, FreeBSD 15.1 sysroot,
cross Chez ta6fb, rustup target x86_64-unknown-freebsd.
ober scheduled this pull request to auto merge when all checks succeed 2026-09-17 19:04:34 -04:00
ober merged commit 20cf918cc9 into main 2026-09-17 19:04:47 -04:00
ober referenced this pull request from a commit 2026-09-17 19:04:48 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-drive!56
No description provided.