blaise/scripts
Graeme Geldenhuys 0ee32e51f5 ci(freebsd): run cross-compiled FreeBSD binaries under emulation (Step 8)
Host-side static ELF checks (EI_OSABI/ET_EXEC/no-PT_INTERP, already asserted by
TInternalLinkerE2ETests.TestCompile_FreeBSDTarget_EmitsStaticFreeBSDExe) cannot
catch a wrong FreeBSD struct-stat offset or syscall number — only running the
binary on a real FreeBSD kernel does.

Add a freebsd-crosscheck CI job (needs: bootstrap) that:
  * downloads the -pre binary the bootstrap job built,
  * cross-compiles the fixtures in compiler/src/it/freebsd (hello, fileio) with
    --target freebsd-x86_64 on the Linux runner via
    scripts/freebsd-crosscheck-build.sh (which also sanity-checks each emitted
    ELF is a FreeBSD ET_EXEC), and
  * boots a FreeBSD VM (vmactions/freebsd-vm, release 14.2 to match the
    struct-stat offsets in rtl.platform.layout.freebsd) and runs the binaries
    there, asserting hello prints 'Hello' and fileio round-trips a file
    (write/read/stat/delete) with 'file-io-ok'/'exists-ok'/'done'.

The FreeBSD output is a static, freestanding raw-syscall ET_EXEC, so the VM
needs no extra packages to run it.  fileio is the meaningful check: it exercises
open/write/read/stat/unlink through the FreeBSD leaf and layout, which the
static checks are blind to.
2026-07-01 17:28:07 +01:00
..
BOOTSTRAP.adoc tooling: rolling-bootstrap script for development-checkout builds 2026-06-03 08:05:16 +01:00
build-rtl-objects.sh rtl-unification: move E2E test helpers off blaise_rtl.a (source-built RTL) 2026-06-25 23:08:30 +01:00
fixpoint-native-internal.sh rtl-unification: dedup RTL objects by symbol, build race-free; move fixpoint scripts off the archive 2026-06-25 23:08:30 +01:00
fixpoint-native.sh rtl-unification: dedup RTL objects by symbol, build race-free; move fixpoint scripts off the archive 2026-06-25 23:08:30 +01:00
fixpoint-warmcache.sh rtl-unification: dedup RTL objects by symbol, build race-free; move fixpoint scripts off the archive 2026-06-25 23:08:30 +01:00
fixpoint.sh rtl-unification: dedup RTL objects by symbol, build race-free; move fixpoint scripts off the archive 2026-06-25 23:08:30 +01:00
freebsd-crosscheck-build.sh ci(freebsd): run cross-compiled FreeBSD binaries under emulation (Step 8) 2026-07-01 17:28:07 +01:00
rolling-bootstrap.sh fix(bootstrap): smoke_test provides RTL source for source-built-RTL commits 2026-06-25 23:15:57 +01:00